// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: pokerth.proto

package de.pokerth.protocol;

public final class ProtoBuf {
  private ProtoBuf() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }

  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions(
        (com.google.protobuf.ExtensionRegistryLite) registry);
  }
  /**
   * Protobuf enum {@code NetGameMode}
   */
  public enum NetGameMode
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>netGameCreated = 1;</code>
     */
    netGameCreated(1),
    /**
     * <code>netGameStarted = 2;</code>
     */
    netGameStarted(2),
    /**
     * <code>netGameClosed = 3;</code>
     */
    netGameClosed(3),
    ;

    /**
     * <code>netGameCreated = 1;</code>
     */
    public static final int netGameCreated_VALUE = 1;
    /**
     * <code>netGameStarted = 2;</code>
     */
    public static final int netGameStarted_VALUE = 2;
    /**
     * <code>netGameClosed = 3;</code>
     */
    public static final int netGameClosed_VALUE = 3;


    public final int getNumber() {
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static NetGameMode valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static NetGameMode forNumber(int value) {
      switch (value) {
        case 1: return netGameCreated;
        case 2: return netGameStarted;
        case 3: return netGameClosed;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<NetGameMode>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        NetGameMode> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<NetGameMode>() {
            public NetGameMode findValueByNumber(int number) {
              return NetGameMode.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.getDescriptor().getEnumTypes().get(0);
    }

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

    public static NetGameMode 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 value;

    private NetGameMode(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:NetGameMode)
  }

  /**
   * Protobuf enum {@code NetGameState}
   */
  public enum NetGameState
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>netStatePreflop = 0;</code>
     */
    netStatePreflop(0),
    /**
     * <code>netStateFlop = 1;</code>
     */
    netStateFlop(1),
    /**
     * <code>netStateTurn = 2;</code>
     */
    netStateTurn(2),
    /**
     * <code>netStateRiver = 3;</code>
     */
    netStateRiver(3),
    /**
     * <code>netStatePreflopSmallBlind = 4;</code>
     */
    netStatePreflopSmallBlind(4),
    /**
     * <code>netStatePreflopBigBlind = 5;</code>
     */
    netStatePreflopBigBlind(5),
    ;

    /**
     * <code>netStatePreflop = 0;</code>
     */
    public static final int netStatePreflop_VALUE = 0;
    /**
     * <code>netStateFlop = 1;</code>
     */
    public static final int netStateFlop_VALUE = 1;
    /**
     * <code>netStateTurn = 2;</code>
     */
    public static final int netStateTurn_VALUE = 2;
    /**
     * <code>netStateRiver = 3;</code>
     */
    public static final int netStateRiver_VALUE = 3;
    /**
     * <code>netStatePreflopSmallBlind = 4;</code>
     */
    public static final int netStatePreflopSmallBlind_VALUE = 4;
    /**
     * <code>netStatePreflopBigBlind = 5;</code>
     */
    public static final int netStatePreflopBigBlind_VALUE = 5;


    public final int getNumber() {
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static NetGameState valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static NetGameState forNumber(int value) {
      switch (value) {
        case 0: return netStatePreflop;
        case 1: return netStateFlop;
        case 2: return netStateTurn;
        case 3: return netStateRiver;
        case 4: return netStatePreflopSmallBlind;
        case 5: return netStatePreflopBigBlind;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<NetGameState>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        NetGameState> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<NetGameState>() {
            public NetGameState findValueByNumber(int number) {
              return NetGameState.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.getDescriptor().getEnumTypes().get(1);
    }

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

    public static NetGameState 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 value;

    private NetGameState(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:NetGameState)
  }

  /**
   * Protobuf enum {@code NetPlayerAction}
   */
  public enum NetPlayerAction
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>netActionNone = 0;</code>
     */
    netActionNone(0),
    /**
     * <code>netActionFold = 1;</code>
     */
    netActionFold(1),
    /**
     * <code>netActionCheck = 2;</code>
     */
    netActionCheck(2),
    /**
     * <code>netActionCall = 3;</code>
     */
    netActionCall(3),
    /**
     * <code>netActionBet = 4;</code>
     */
    netActionBet(4),
    /**
     * <code>netActionRaise = 5;</code>
     */
    netActionRaise(5),
    /**
     * <code>netActionAllIn = 6;</code>
     */
    netActionAllIn(6),
    ;

    /**
     * <code>netActionNone = 0;</code>
     */
    public static final int netActionNone_VALUE = 0;
    /**
     * <code>netActionFold = 1;</code>
     */
    public static final int netActionFold_VALUE = 1;
    /**
     * <code>netActionCheck = 2;</code>
     */
    public static final int netActionCheck_VALUE = 2;
    /**
     * <code>netActionCall = 3;</code>
     */
    public static final int netActionCall_VALUE = 3;
    /**
     * <code>netActionBet = 4;</code>
     */
    public static final int netActionBet_VALUE = 4;
    /**
     * <code>netActionRaise = 5;</code>
     */
    public static final int netActionRaise_VALUE = 5;
    /**
     * <code>netActionAllIn = 6;</code>
     */
    public static final int netActionAllIn_VALUE = 6;


    public final int getNumber() {
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static NetPlayerAction valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static NetPlayerAction forNumber(int value) {
      switch (value) {
        case 0: return netActionNone;
        case 1: return netActionFold;
        case 2: return netActionCheck;
        case 3: return netActionCall;
        case 4: return netActionBet;
        case 5: return netActionRaise;
        case 6: return netActionAllIn;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<NetPlayerAction>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        NetPlayerAction> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<NetPlayerAction>() {
            public NetPlayerAction findValueByNumber(int number) {
              return NetPlayerAction.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.getDescriptor().getEnumTypes().get(2);
    }

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

    public static NetPlayerAction 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 value;

    private NetPlayerAction(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:NetPlayerAction)
  }

  /**
   * Protobuf enum {@code NetPlayerState}
   */
  public enum NetPlayerState
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>netPlayerStateNormal = 0;</code>
     */
    netPlayerStateNormal(0),
    /**
     * <code>netPlayerStateSessionInactive = 1;</code>
     */
    netPlayerStateSessionInactive(1),
    /**
     * <code>netPlayerStateNoMoney = 2;</code>
     */
    netPlayerStateNoMoney(2),
    ;

    /**
     * <code>netPlayerStateNormal = 0;</code>
     */
    public static final int netPlayerStateNormal_VALUE = 0;
    /**
     * <code>netPlayerStateSessionInactive = 1;</code>
     */
    public static final int netPlayerStateSessionInactive_VALUE = 1;
    /**
     * <code>netPlayerStateNoMoney = 2;</code>
     */
    public static final int netPlayerStateNoMoney_VALUE = 2;


    public final int getNumber() {
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static NetPlayerState valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static NetPlayerState forNumber(int value) {
      switch (value) {
        case 0: return netPlayerStateNormal;
        case 1: return netPlayerStateSessionInactive;
        case 2: return netPlayerStateNoMoney;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<NetPlayerState>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        NetPlayerState> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<NetPlayerState>() {
            public NetPlayerState findValueByNumber(int number) {
              return NetPlayerState.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.getDescriptor().getEnumTypes().get(3);
    }

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

    public static NetPlayerState 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 value;

    private NetPlayerState(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:NetPlayerState)
  }

  /**
   * Protobuf enum {@code NetPlayerInfoRights}
   */
  public enum NetPlayerInfoRights
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>netPlayerRightsGuest = 1;</code>
     */
    netPlayerRightsGuest(1),
    /**
     * <code>netPlayerRightsNormal = 2;</code>
     */
    netPlayerRightsNormal(2),
    /**
     * <code>netPlayerRightsAdmin = 3;</code>
     */
    netPlayerRightsAdmin(3),
    ;

    /**
     * <code>netPlayerRightsGuest = 1;</code>
     */
    public static final int netPlayerRightsGuest_VALUE = 1;
    /**
     * <code>netPlayerRightsNormal = 2;</code>
     */
    public static final int netPlayerRightsNormal_VALUE = 2;
    /**
     * <code>netPlayerRightsAdmin = 3;</code>
     */
    public static final int netPlayerRightsAdmin_VALUE = 3;


    public final int getNumber() {
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static NetPlayerInfoRights valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static NetPlayerInfoRights forNumber(int value) {
      switch (value) {
        case 1: return netPlayerRightsGuest;
        case 2: return netPlayerRightsNormal;
        case 3: return netPlayerRightsAdmin;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<NetPlayerInfoRights>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        NetPlayerInfoRights> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<NetPlayerInfoRights>() {
            public NetPlayerInfoRights findValueByNumber(int number) {
              return NetPlayerInfoRights.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.getDescriptor().getEnumTypes().get(4);
    }

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

    public static NetPlayerInfoRights 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 value;

    private NetPlayerInfoRights(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:NetPlayerInfoRights)
  }

  /**
   * Protobuf enum {@code NetAvatarType}
   */
  public enum NetAvatarType
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>netAvatarImagePng = 1;</code>
     */
    netAvatarImagePng(1),
    /**
     * <code>netAvatarImageJpg = 2;</code>
     */
    netAvatarImageJpg(2),
    /**
     * <code>netAvatarImageGif = 3;</code>
     */
    netAvatarImageGif(3),
    ;

    /**
     * <code>netAvatarImagePng = 1;</code>
     */
    public static final int netAvatarImagePng_VALUE = 1;
    /**
     * <code>netAvatarImageJpg = 2;</code>
     */
    public static final int netAvatarImageJpg_VALUE = 2;
    /**
     * <code>netAvatarImageGif = 3;</code>
     */
    public static final int netAvatarImageGif_VALUE = 3;


    public final int getNumber() {
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static NetAvatarType valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static NetAvatarType forNumber(int value) {
      switch (value) {
        case 1: return netAvatarImagePng;
        case 2: return netAvatarImageJpg;
        case 3: return netAvatarImageGif;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<NetAvatarType>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        NetAvatarType> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<NetAvatarType>() {
            public NetAvatarType findValueByNumber(int number) {
              return NetAvatarType.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.getDescriptor().getEnumTypes().get(5);
    }

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

    public static NetAvatarType 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 value;

    private NetAvatarType(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:NetAvatarType)
  }

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

    /**
     * <code>required string gameName = 1;</code>
     * @return Whether the gameName field is set.
     */
    boolean hasGameName();
    /**
     * <code>required string gameName = 1;</code>
     * @return The gameName.
     */
    java.lang.String getGameName();
    /**
     * <code>required string gameName = 1;</code>
     * @return The bytes for gameName.
     */
    com.google.protobuf.ByteString
        getGameNameBytes();

    /**
     * <code>required .NetGameInfo.NetGameType netGameType = 2;</code>
     * @return Whether the netGameType field is set.
     */
    boolean hasNetGameType();
    /**
     * <code>required .NetGameInfo.NetGameType netGameType = 2;</code>
     * @return The netGameType.
     */
    de.pokerth.protocol.ProtoBuf.NetGameInfo.NetGameType getNetGameType();

    /**
     * <code>required uint32 maxNumPlayers = 3;</code>
     * @return Whether the maxNumPlayers field is set.
     */
    boolean hasMaxNumPlayers();
    /**
     * <code>required uint32 maxNumPlayers = 3;</code>
     * @return The maxNumPlayers.
     */
    int getMaxNumPlayers();

    /**
     * <code>required .NetGameInfo.RaiseIntervalMode raiseIntervalMode = 4;</code>
     * @return Whether the raiseIntervalMode field is set.
     */
    boolean hasRaiseIntervalMode();
    /**
     * <code>required .NetGameInfo.RaiseIntervalMode raiseIntervalMode = 4;</code>
     * @return The raiseIntervalMode.
     */
    de.pokerth.protocol.ProtoBuf.NetGameInfo.RaiseIntervalMode getRaiseIntervalMode();

    /**
     * <code>optional uint32 raiseEveryHands = 5;</code>
     * @return Whether the raiseEveryHands field is set.
     */
    boolean hasRaiseEveryHands();
    /**
     * <code>optional uint32 raiseEveryHands = 5;</code>
     * @return The raiseEveryHands.
     */
    int getRaiseEveryHands();

    /**
     * <code>optional uint32 raiseEveryMinutes = 6;</code>
     * @return Whether the raiseEveryMinutes field is set.
     */
    boolean hasRaiseEveryMinutes();
    /**
     * <code>optional uint32 raiseEveryMinutes = 6;</code>
     * @return The raiseEveryMinutes.
     */
    int getRaiseEveryMinutes();

    /**
     * <code>required .NetGameInfo.EndRaiseMode endRaiseMode = 7;</code>
     * @return Whether the endRaiseMode field is set.
     */
    boolean hasEndRaiseMode();
    /**
     * <code>required .NetGameInfo.EndRaiseMode endRaiseMode = 7;</code>
     * @return The endRaiseMode.
     */
    de.pokerth.protocol.ProtoBuf.NetGameInfo.EndRaiseMode getEndRaiseMode();

    /**
     * <code>optional uint32 endRaiseSmallBlindValue = 8;</code>
     * @return Whether the endRaiseSmallBlindValue field is set.
     */
    boolean hasEndRaiseSmallBlindValue();
    /**
     * <code>optional uint32 endRaiseSmallBlindValue = 8;</code>
     * @return The endRaiseSmallBlindValue.
     */
    int getEndRaiseSmallBlindValue();

    /**
     * <code>required uint32 proposedGuiSpeed = 9;</code>
     * @return Whether the proposedGuiSpeed field is set.
     */
    boolean hasProposedGuiSpeed();
    /**
     * <code>required uint32 proposedGuiSpeed = 9;</code>
     * @return The proposedGuiSpeed.
     */
    int getProposedGuiSpeed();

    /**
     * <pre>
     * These are seconds
     * </pre>
     *
     * <code>required uint32 delayBetweenHands = 10;</code>
     * @return Whether the delayBetweenHands field is set.
     */
    boolean hasDelayBetweenHands();
    /**
     * <pre>
     * These are seconds
     * </pre>
     *
     * <code>required uint32 delayBetweenHands = 10;</code>
     * @return The delayBetweenHands.
     */
    int getDelayBetweenHands();

    /**
     * <pre>
     * These are seconds
     * </pre>
     *
     * <code>required uint32 playerActionTimeout = 11;</code>
     * @return Whether the playerActionTimeout field is set.
     */
    boolean hasPlayerActionTimeout();
    /**
     * <pre>
     * These are seconds
     * </pre>
     *
     * <code>required uint32 playerActionTimeout = 11;</code>
     * @return The playerActionTimeout.
     */
    int getPlayerActionTimeout();

    /**
     * <code>required uint32 firstSmallBlind = 12;</code>
     * @return Whether the firstSmallBlind field is set.
     */
    boolean hasFirstSmallBlind();
    /**
     * <code>required uint32 firstSmallBlind = 12;</code>
     * @return The firstSmallBlind.
     */
    int getFirstSmallBlind();

    /**
     * <code>required uint32 startMoney = 13;</code>
     * @return Whether the startMoney field is set.
     */
    boolean hasStartMoney();
    /**
     * <code>required uint32 startMoney = 13;</code>
     * @return The startMoney.
     */
    int getStartMoney();

    /**
     * <code>repeated uint32 manualBlinds = 14 [packed = true];</code>
     * @return A list containing the manualBlinds.
     */
    java.util.List<java.lang.Integer> getManualBlindsList();
    /**
     * <code>repeated uint32 manualBlinds = 14 [packed = true];</code>
     * @return The count of manualBlinds.
     */
    int getManualBlindsCount();
    /**
     * <code>repeated uint32 manualBlinds = 14 [packed = true];</code>
     * @param index The index of the element to return.
     * @return The manualBlinds at the given index.
     */
    int getManualBlinds(int index);

    /**
     * <code>optional bool allowSpectators = 15 [default = true];</code>
     * @return Whether the allowSpectators field is set.
     */
    boolean hasAllowSpectators();
    /**
     * <code>optional bool allowSpectators = 15 [default = true];</code>
     * @return The allowSpectators.
     */
    boolean getAllowSpectators();
  }
  /**
   * Protobuf type {@code NetGameInfo}
   */
  public static final class NetGameInfo extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:NetGameInfo)
      NetGameInfoOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use NetGameInfo.newBuilder() to construct.
    private NetGameInfo(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private NetGameInfo() {
      gameName_ = "";
      netGameType_ = 1;
      raiseIntervalMode_ = 1;
      endRaiseMode_ = 1;
      manualBlinds_ = emptyIntList();
      allowSpectators_ = true;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new NetGameInfo();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_NetGameInfo_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_NetGameInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.NetGameInfo.class, de.pokerth.protocol.ProtoBuf.NetGameInfo.Builder.class);
    }

    /**
     * Protobuf enum {@code NetGameInfo.NetGameType}
     */
    public enum NetGameType
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>normalGame = 1;</code>
       */
      normalGame(1),
      /**
       * <code>registeredOnlyGame = 2;</code>
       */
      registeredOnlyGame(2),
      /**
       * <code>inviteOnlyGame = 3;</code>
       */
      inviteOnlyGame(3),
      /**
       * <code>rankingGame = 4;</code>
       */
      rankingGame(4),
      ;

      /**
       * <code>normalGame = 1;</code>
       */
      public static final int normalGame_VALUE = 1;
      /**
       * <code>registeredOnlyGame = 2;</code>
       */
      public static final int registeredOnlyGame_VALUE = 2;
      /**
       * <code>inviteOnlyGame = 3;</code>
       */
      public static final int inviteOnlyGame_VALUE = 3;
      /**
       * <code>rankingGame = 4;</code>
       */
      public static final int rankingGame_VALUE = 4;


      public final int getNumber() {
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static NetGameType valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static NetGameType forNumber(int value) {
        switch (value) {
          case 1: return normalGame;
          case 2: return registeredOnlyGame;
          case 3: return inviteOnlyGame;
          case 4: return rankingGame;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<NetGameType>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          NetGameType> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<NetGameType>() {
              public NetGameType findValueByNumber(int number) {
                return NetGameType.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.NetGameInfo.getDescriptor().getEnumTypes().get(0);
      }

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

      public static NetGameType 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 value;

      private NetGameType(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:NetGameInfo.NetGameType)
    }

    /**
     * Protobuf enum {@code NetGameInfo.RaiseIntervalMode}
     */
    public enum RaiseIntervalMode
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>raiseOnHandNum = 1;</code>
       */
      raiseOnHandNum(1),
      /**
       * <code>raiseOnMinutes = 2;</code>
       */
      raiseOnMinutes(2),
      ;

      /**
       * <code>raiseOnHandNum = 1;</code>
       */
      public static final int raiseOnHandNum_VALUE = 1;
      /**
       * <code>raiseOnMinutes = 2;</code>
       */
      public static final int raiseOnMinutes_VALUE = 2;


      public final int getNumber() {
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static RaiseIntervalMode valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static RaiseIntervalMode forNumber(int value) {
        switch (value) {
          case 1: return raiseOnHandNum;
          case 2: return raiseOnMinutes;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<RaiseIntervalMode>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          RaiseIntervalMode> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<RaiseIntervalMode>() {
              public RaiseIntervalMode findValueByNumber(int number) {
                return RaiseIntervalMode.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.NetGameInfo.getDescriptor().getEnumTypes().get(1);
      }

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

      public static RaiseIntervalMode 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 value;

      private RaiseIntervalMode(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:NetGameInfo.RaiseIntervalMode)
    }

    /**
     * Protobuf enum {@code NetGameInfo.EndRaiseMode}
     */
    public enum EndRaiseMode
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>doubleBlinds = 1;</code>
       */
      doubleBlinds(1),
      /**
       * <code>raiseByEndValue = 2;</code>
       */
      raiseByEndValue(2),
      /**
       * <code>keepLastBlind = 3;</code>
       */
      keepLastBlind(3),
      ;

      /**
       * <code>doubleBlinds = 1;</code>
       */
      public static final int doubleBlinds_VALUE = 1;
      /**
       * <code>raiseByEndValue = 2;</code>
       */
      public static final int raiseByEndValue_VALUE = 2;
      /**
       * <code>keepLastBlind = 3;</code>
       */
      public static final int keepLastBlind_VALUE = 3;


      public final int getNumber() {
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static EndRaiseMode valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static EndRaiseMode forNumber(int value) {
        switch (value) {
          case 1: return doubleBlinds;
          case 2: return raiseByEndValue;
          case 3: return keepLastBlind;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<EndRaiseMode>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          EndRaiseMode> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<EndRaiseMode>() {
              public EndRaiseMode findValueByNumber(int number) {
                return EndRaiseMode.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.NetGameInfo.getDescriptor().getEnumTypes().get(2);
      }

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

      public static EndRaiseMode 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 value;

      private EndRaiseMode(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:NetGameInfo.EndRaiseMode)
    }

    private int bitField0_;
    public static final int GAMENAME_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object gameName_ = "";
    /**
     * <code>required string gameName = 1;</code>
     * @return Whether the gameName field is set.
     */
    @java.lang.Override
    public boolean hasGameName() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required string gameName = 1;</code>
     * @return The gameName.
     */
    @java.lang.Override
    public java.lang.String getGameName() {
      java.lang.Object ref = gameName_;
      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()) {
          gameName_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string gameName = 1;</code>
     * @return The bytes for gameName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getGameNameBytes() {
      java.lang.Object ref = gameName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        gameName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int NETGAMETYPE_FIELD_NUMBER = 2;
    private int netGameType_ = 1;
    /**
     * <code>required .NetGameInfo.NetGameType netGameType = 2;</code>
     * @return Whether the netGameType field is set.
     */
    @java.lang.Override public boolean hasNetGameType() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required .NetGameInfo.NetGameType netGameType = 2;</code>
     * @return The netGameType.
     */
    @java.lang.Override public de.pokerth.protocol.ProtoBuf.NetGameInfo.NetGameType getNetGameType() {
      de.pokerth.protocol.ProtoBuf.NetGameInfo.NetGameType result = de.pokerth.protocol.ProtoBuf.NetGameInfo.NetGameType.forNumber(netGameType_);
      return result == null ? de.pokerth.protocol.ProtoBuf.NetGameInfo.NetGameType.normalGame : result;
    }

    public static final int MAXNUMPLAYERS_FIELD_NUMBER = 3;
    private int maxNumPlayers_ = 0;
    /**
     * <code>required uint32 maxNumPlayers = 3;</code>
     * @return Whether the maxNumPlayers field is set.
     */
    @java.lang.Override
    public boolean hasMaxNumPlayers() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>required uint32 maxNumPlayers = 3;</code>
     * @return The maxNumPlayers.
     */
    @java.lang.Override
    public int getMaxNumPlayers() {
      return maxNumPlayers_;
    }

    public static final int RAISEINTERVALMODE_FIELD_NUMBER = 4;
    private int raiseIntervalMode_ = 1;
    /**
     * <code>required .NetGameInfo.RaiseIntervalMode raiseIntervalMode = 4;</code>
     * @return Whether the raiseIntervalMode field is set.
     */
    @java.lang.Override public boolean hasRaiseIntervalMode() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>required .NetGameInfo.RaiseIntervalMode raiseIntervalMode = 4;</code>
     * @return The raiseIntervalMode.
     */
    @java.lang.Override public de.pokerth.protocol.ProtoBuf.NetGameInfo.RaiseIntervalMode getRaiseIntervalMode() {
      de.pokerth.protocol.ProtoBuf.NetGameInfo.RaiseIntervalMode result = de.pokerth.protocol.ProtoBuf.NetGameInfo.RaiseIntervalMode.forNumber(raiseIntervalMode_);
      return result == null ? de.pokerth.protocol.ProtoBuf.NetGameInfo.RaiseIntervalMode.raiseOnHandNum : result;
    }

    public static final int RAISEEVERYHANDS_FIELD_NUMBER = 5;
    private int raiseEveryHands_ = 0;
    /**
     * <code>optional uint32 raiseEveryHands = 5;</code>
     * @return Whether the raiseEveryHands field is set.
     */
    @java.lang.Override
    public boolean hasRaiseEveryHands() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <code>optional uint32 raiseEveryHands = 5;</code>
     * @return The raiseEveryHands.
     */
    @java.lang.Override
    public int getRaiseEveryHands() {
      return raiseEveryHands_;
    }

    public static final int RAISEEVERYMINUTES_FIELD_NUMBER = 6;
    private int raiseEveryMinutes_ = 0;
    /**
     * <code>optional uint32 raiseEveryMinutes = 6;</code>
     * @return Whether the raiseEveryMinutes field is set.
     */
    @java.lang.Override
    public boolean hasRaiseEveryMinutes() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <code>optional uint32 raiseEveryMinutes = 6;</code>
     * @return The raiseEveryMinutes.
     */
    @java.lang.Override
    public int getRaiseEveryMinutes() {
      return raiseEveryMinutes_;
    }

    public static final int ENDRAISEMODE_FIELD_NUMBER = 7;
    private int endRaiseMode_ = 1;
    /**
     * <code>required .NetGameInfo.EndRaiseMode endRaiseMode = 7;</code>
     * @return Whether the endRaiseMode field is set.
     */
    @java.lang.Override public boolean hasEndRaiseMode() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <code>required .NetGameInfo.EndRaiseMode endRaiseMode = 7;</code>
     * @return The endRaiseMode.
     */
    @java.lang.Override public de.pokerth.protocol.ProtoBuf.NetGameInfo.EndRaiseMode getEndRaiseMode() {
      de.pokerth.protocol.ProtoBuf.NetGameInfo.EndRaiseMode result = de.pokerth.protocol.ProtoBuf.NetGameInfo.EndRaiseMode.forNumber(endRaiseMode_);
      return result == null ? de.pokerth.protocol.ProtoBuf.NetGameInfo.EndRaiseMode.doubleBlinds : result;
    }

    public static final int ENDRAISESMALLBLINDVALUE_FIELD_NUMBER = 8;
    private int endRaiseSmallBlindValue_ = 0;
    /**
     * <code>optional uint32 endRaiseSmallBlindValue = 8;</code>
     * @return Whether the endRaiseSmallBlindValue field is set.
     */
    @java.lang.Override
    public boolean hasEndRaiseSmallBlindValue() {
      return ((bitField0_ & 0x00000080) != 0);
    }
    /**
     * <code>optional uint32 endRaiseSmallBlindValue = 8;</code>
     * @return The endRaiseSmallBlindValue.
     */
    @java.lang.Override
    public int getEndRaiseSmallBlindValue() {
      return endRaiseSmallBlindValue_;
    }

    public static final int PROPOSEDGUISPEED_FIELD_NUMBER = 9;
    private int proposedGuiSpeed_ = 0;
    /**
     * <code>required uint32 proposedGuiSpeed = 9;</code>
     * @return Whether the proposedGuiSpeed field is set.
     */
    @java.lang.Override
    public boolean hasProposedGuiSpeed() {
      return ((bitField0_ & 0x00000100) != 0);
    }
    /**
     * <code>required uint32 proposedGuiSpeed = 9;</code>
     * @return The proposedGuiSpeed.
     */
    @java.lang.Override
    public int getProposedGuiSpeed() {
      return proposedGuiSpeed_;
    }

    public static final int DELAYBETWEENHANDS_FIELD_NUMBER = 10;
    private int delayBetweenHands_ = 0;
    /**
     * <pre>
     * These are seconds
     * </pre>
     *
     * <code>required uint32 delayBetweenHands = 10;</code>
     * @return Whether the delayBetweenHands field is set.
     */
    @java.lang.Override
    public boolean hasDelayBetweenHands() {
      return ((bitField0_ & 0x00000200) != 0);
    }
    /**
     * <pre>
     * These are seconds
     * </pre>
     *
     * <code>required uint32 delayBetweenHands = 10;</code>
     * @return The delayBetweenHands.
     */
    @java.lang.Override
    public int getDelayBetweenHands() {
      return delayBetweenHands_;
    }

    public static final int PLAYERACTIONTIMEOUT_FIELD_NUMBER = 11;
    private int playerActionTimeout_ = 0;
    /**
     * <pre>
     * These are seconds
     * </pre>
     *
     * <code>required uint32 playerActionTimeout = 11;</code>
     * @return Whether the playerActionTimeout field is set.
     */
    @java.lang.Override
    public boolean hasPlayerActionTimeout() {
      return ((bitField0_ & 0x00000400) != 0);
    }
    /**
     * <pre>
     * These are seconds
     * </pre>
     *
     * <code>required uint32 playerActionTimeout = 11;</code>
     * @return The playerActionTimeout.
     */
    @java.lang.Override
    public int getPlayerActionTimeout() {
      return playerActionTimeout_;
    }

    public static final int FIRSTSMALLBLIND_FIELD_NUMBER = 12;
    private int firstSmallBlind_ = 0;
    /**
     * <code>required uint32 firstSmallBlind = 12;</code>
     * @return Whether the firstSmallBlind field is set.
     */
    @java.lang.Override
    public boolean hasFirstSmallBlind() {
      return ((bitField0_ & 0x00000800) != 0);
    }
    /**
     * <code>required uint32 firstSmallBlind = 12;</code>
     * @return The firstSmallBlind.
     */
    @java.lang.Override
    public int getFirstSmallBlind() {
      return firstSmallBlind_;
    }

    public static final int STARTMONEY_FIELD_NUMBER = 13;
    private int startMoney_ = 0;
    /**
     * <code>required uint32 startMoney = 13;</code>
     * @return Whether the startMoney field is set.
     */
    @java.lang.Override
    public boolean hasStartMoney() {
      return ((bitField0_ & 0x00001000) != 0);
    }
    /**
     * <code>required uint32 startMoney = 13;</code>
     * @return The startMoney.
     */
    @java.lang.Override
    public int getStartMoney() {
      return startMoney_;
    }

    public static final int MANUALBLINDS_FIELD_NUMBER = 14;
    @SuppressWarnings("serial")
    private com.google.protobuf.Internal.IntList manualBlinds_;
    /**
     * <code>repeated uint32 manualBlinds = 14 [packed = true];</code>
     * @return A list containing the manualBlinds.
     */
    @java.lang.Override
    public java.util.List<java.lang.Integer>
        getManualBlindsList() {
      return manualBlinds_;
    }
    /**
     * <code>repeated uint32 manualBlinds = 14 [packed = true];</code>
     * @return The count of manualBlinds.
     */
    public int getManualBlindsCount() {
      return manualBlinds_.size();
    }
    /**
     * <code>repeated uint32 manualBlinds = 14 [packed = true];</code>
     * @param index The index of the element to return.
     * @return The manualBlinds at the given index.
     */
    public int getManualBlinds(int index) {
      return manualBlinds_.getInt(index);
    }
    private int manualBlindsMemoizedSerializedSize = -1;

    public static final int ALLOWSPECTATORS_FIELD_NUMBER = 15;
    private boolean allowSpectators_ = true;
    /**
     * <code>optional bool allowSpectators = 15 [default = true];</code>
     * @return Whether the allowSpectators field is set.
     */
    @java.lang.Override
    public boolean hasAllowSpectators() {
      return ((bitField0_ & 0x00002000) != 0);
    }
    /**
     * <code>optional bool allowSpectators = 15 [default = true];</code>
     * @return The allowSpectators.
     */
    @java.lang.Override
    public boolean getAllowSpectators() {
      return allowSpectators_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameName()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasNetGameType()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasMaxNumPlayers()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasRaiseIntervalMode()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasEndRaiseMode()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasProposedGuiSpeed()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasDelayBetweenHands()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerActionTimeout()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasFirstSmallBlind()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasStartMoney()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, gameName_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeEnum(2, netGameType_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeUInt32(3, maxNumPlayers_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeEnum(4, raiseIntervalMode_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeUInt32(5, raiseEveryHands_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        output.writeUInt32(6, raiseEveryMinutes_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        output.writeEnum(7, endRaiseMode_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        output.writeUInt32(8, endRaiseSmallBlindValue_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        output.writeUInt32(9, proposedGuiSpeed_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        output.writeUInt32(10, delayBetweenHands_);
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        output.writeUInt32(11, playerActionTimeout_);
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        output.writeUInt32(12, firstSmallBlind_);
      }
      if (((bitField0_ & 0x00001000) != 0)) {
        output.writeUInt32(13, startMoney_);
      }
      if (getManualBlindsList().size() > 0) {
        output.writeUInt32NoTag(114);
        output.writeUInt32NoTag(manualBlindsMemoizedSerializedSize);
      }
      for (int i = 0; i < manualBlinds_.size(); i++) {
        output.writeUInt32NoTag(manualBlinds_.getInt(i));
      }
      if (((bitField0_ & 0x00002000) != 0)) {
        output.writeBool(15, allowSpectators_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, gameName_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, netGameType_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, maxNumPlayers_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(4, raiseIntervalMode_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, raiseEveryHands_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(6, raiseEveryMinutes_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(7, endRaiseMode_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(8, endRaiseSmallBlindValue_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(9, proposedGuiSpeed_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(10, delayBetweenHands_);
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(11, playerActionTimeout_);
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(12, firstSmallBlind_);
      }
      if (((bitField0_ & 0x00001000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(13, startMoney_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < manualBlinds_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeUInt32SizeNoTag(manualBlinds_.getInt(i));
        }
        size += dataSize;
        if (!getManualBlindsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        manualBlindsMemoizedSerializedSize = dataSize;
      }
      if (((bitField0_ & 0x00002000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(15, allowSpectators_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.NetGameInfo)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.NetGameInfo other = (de.pokerth.protocol.ProtoBuf.NetGameInfo) obj;

      if (hasGameName() != other.hasGameName()) return false;
      if (hasGameName()) {
        if (!getGameName()
            .equals(other.getGameName())) return false;
      }
      if (hasNetGameType() != other.hasNetGameType()) return false;
      if (hasNetGameType()) {
        if (netGameType_ != other.netGameType_) return false;
      }
      if (hasMaxNumPlayers() != other.hasMaxNumPlayers()) return false;
      if (hasMaxNumPlayers()) {
        if (getMaxNumPlayers()
            != other.getMaxNumPlayers()) return false;
      }
      if (hasRaiseIntervalMode() != other.hasRaiseIntervalMode()) return false;
      if (hasRaiseIntervalMode()) {
        if (raiseIntervalMode_ != other.raiseIntervalMode_) return false;
      }
      if (hasRaiseEveryHands() != other.hasRaiseEveryHands()) return false;
      if (hasRaiseEveryHands()) {
        if (getRaiseEveryHands()
            != other.getRaiseEveryHands()) return false;
      }
      if (hasRaiseEveryMinutes() != other.hasRaiseEveryMinutes()) return false;
      if (hasRaiseEveryMinutes()) {
        if (getRaiseEveryMinutes()
            != other.getRaiseEveryMinutes()) return false;
      }
      if (hasEndRaiseMode() != other.hasEndRaiseMode()) return false;
      if (hasEndRaiseMode()) {
        if (endRaiseMode_ != other.endRaiseMode_) return false;
      }
      if (hasEndRaiseSmallBlindValue() != other.hasEndRaiseSmallBlindValue()) return false;
      if (hasEndRaiseSmallBlindValue()) {
        if (getEndRaiseSmallBlindValue()
            != other.getEndRaiseSmallBlindValue()) return false;
      }
      if (hasProposedGuiSpeed() != other.hasProposedGuiSpeed()) return false;
      if (hasProposedGuiSpeed()) {
        if (getProposedGuiSpeed()
            != other.getProposedGuiSpeed()) return false;
      }
      if (hasDelayBetweenHands() != other.hasDelayBetweenHands()) return false;
      if (hasDelayBetweenHands()) {
        if (getDelayBetweenHands()
            != other.getDelayBetweenHands()) return false;
      }
      if (hasPlayerActionTimeout() != other.hasPlayerActionTimeout()) return false;
      if (hasPlayerActionTimeout()) {
        if (getPlayerActionTimeout()
            != other.getPlayerActionTimeout()) return false;
      }
      if (hasFirstSmallBlind() != other.hasFirstSmallBlind()) return false;
      if (hasFirstSmallBlind()) {
        if (getFirstSmallBlind()
            != other.getFirstSmallBlind()) return false;
      }
      if (hasStartMoney() != other.hasStartMoney()) return false;
      if (hasStartMoney()) {
        if (getStartMoney()
            != other.getStartMoney()) return false;
      }
      if (!getManualBlindsList()
          .equals(other.getManualBlindsList())) return false;
      if (hasAllowSpectators() != other.hasAllowSpectators()) return false;
      if (hasAllowSpectators()) {
        if (getAllowSpectators()
            != other.getAllowSpectators()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasGameName()) {
        hash = (37 * hash) + GAMENAME_FIELD_NUMBER;
        hash = (53 * hash) + getGameName().hashCode();
      }
      if (hasNetGameType()) {
        hash = (37 * hash) + NETGAMETYPE_FIELD_NUMBER;
        hash = (53 * hash) + netGameType_;
      }
      if (hasMaxNumPlayers()) {
        hash = (37 * hash) + MAXNUMPLAYERS_FIELD_NUMBER;
        hash = (53 * hash) + getMaxNumPlayers();
      }
      if (hasRaiseIntervalMode()) {
        hash = (37 * hash) + RAISEINTERVALMODE_FIELD_NUMBER;
        hash = (53 * hash) + raiseIntervalMode_;
      }
      if (hasRaiseEveryHands()) {
        hash = (37 * hash) + RAISEEVERYHANDS_FIELD_NUMBER;
        hash = (53 * hash) + getRaiseEveryHands();
      }
      if (hasRaiseEveryMinutes()) {
        hash = (37 * hash) + RAISEEVERYMINUTES_FIELD_NUMBER;
        hash = (53 * hash) + getRaiseEveryMinutes();
      }
      if (hasEndRaiseMode()) {
        hash = (37 * hash) + ENDRAISEMODE_FIELD_NUMBER;
        hash = (53 * hash) + endRaiseMode_;
      }
      if (hasEndRaiseSmallBlindValue()) {
        hash = (37 * hash) + ENDRAISESMALLBLINDVALUE_FIELD_NUMBER;
        hash = (53 * hash) + getEndRaiseSmallBlindValue();
      }
      if (hasProposedGuiSpeed()) {
        hash = (37 * hash) + PROPOSEDGUISPEED_FIELD_NUMBER;
        hash = (53 * hash) + getProposedGuiSpeed();
      }
      if (hasDelayBetweenHands()) {
        hash = (37 * hash) + DELAYBETWEENHANDS_FIELD_NUMBER;
        hash = (53 * hash) + getDelayBetweenHands();
      }
      if (hasPlayerActionTimeout()) {
        hash = (37 * hash) + PLAYERACTIONTIMEOUT_FIELD_NUMBER;
        hash = (53 * hash) + getPlayerActionTimeout();
      }
      if (hasFirstSmallBlind()) {
        hash = (37 * hash) + FIRSTSMALLBLIND_FIELD_NUMBER;
        hash = (53 * hash) + getFirstSmallBlind();
      }
      if (hasStartMoney()) {
        hash = (37 * hash) + STARTMONEY_FIELD_NUMBER;
        hash = (53 * hash) + getStartMoney();
      }
      if (getManualBlindsCount() > 0) {
        hash = (37 * hash) + MANUALBLINDS_FIELD_NUMBER;
        hash = (53 * hash) + getManualBlindsList().hashCode();
      }
      if (hasAllowSpectators()) {
        hash = (37 * hash) + ALLOWSPECTATORS_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getAllowSpectators());
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.NetGameInfo parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.NetGameInfo parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.NetGameInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.NetGameInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.NetGameInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.NetGameInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.NetGameInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.NetGameInfo parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.NetGameInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.NetGameInfo parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.NetGameInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.NetGameInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.NetGameInfo prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code NetGameInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:NetGameInfo)
        de.pokerth.protocol.ProtoBuf.NetGameInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_NetGameInfo_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_NetGameInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.NetGameInfo.class, de.pokerth.protocol.ProtoBuf.NetGameInfo.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.NetGameInfo.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        gameName_ = "";
        netGameType_ = 1;
        maxNumPlayers_ = 0;
        raiseIntervalMode_ = 1;
        raiseEveryHands_ = 0;
        raiseEveryMinutes_ = 0;
        endRaiseMode_ = 1;
        endRaiseSmallBlindValue_ = 0;
        proposedGuiSpeed_ = 0;
        delayBetweenHands_ = 0;
        playerActionTimeout_ = 0;
        firstSmallBlind_ = 0;
        startMoney_ = 0;
        manualBlinds_ = emptyIntList();
        allowSpectators_ = true;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_NetGameInfo_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.NetGameInfo getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.NetGameInfo.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.NetGameInfo build() {
        de.pokerth.protocol.ProtoBuf.NetGameInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.NetGameInfo buildPartial() {
        de.pokerth.protocol.ProtoBuf.NetGameInfo result = new de.pokerth.protocol.ProtoBuf.NetGameInfo(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(de.pokerth.protocol.ProtoBuf.NetGameInfo result) {
        if (((bitField0_ & 0x00002000) != 0)) {
          manualBlinds_.makeImmutable();
          bitField0_ = (bitField0_ & ~0x00002000);
        }
        result.manualBlinds_ = manualBlinds_;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.NetGameInfo result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.gameName_ = gameName_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.netGameType_ = netGameType_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.maxNumPlayers_ = maxNumPlayers_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.raiseIntervalMode_ = raiseIntervalMode_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.raiseEveryHands_ = raiseEveryHands_;
          to_bitField0_ |= 0x00000010;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.raiseEveryMinutes_ = raiseEveryMinutes_;
          to_bitField0_ |= 0x00000020;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.endRaiseMode_ = endRaiseMode_;
          to_bitField0_ |= 0x00000040;
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.endRaiseSmallBlindValue_ = endRaiseSmallBlindValue_;
          to_bitField0_ |= 0x00000080;
        }
        if (((from_bitField0_ & 0x00000100) != 0)) {
          result.proposedGuiSpeed_ = proposedGuiSpeed_;
          to_bitField0_ |= 0x00000100;
        }
        if (((from_bitField0_ & 0x00000200) != 0)) {
          result.delayBetweenHands_ = delayBetweenHands_;
          to_bitField0_ |= 0x00000200;
        }
        if (((from_bitField0_ & 0x00000400) != 0)) {
          result.playerActionTimeout_ = playerActionTimeout_;
          to_bitField0_ |= 0x00000400;
        }
        if (((from_bitField0_ & 0x00000800) != 0)) {
          result.firstSmallBlind_ = firstSmallBlind_;
          to_bitField0_ |= 0x00000800;
        }
        if (((from_bitField0_ & 0x00001000) != 0)) {
          result.startMoney_ = startMoney_;
          to_bitField0_ |= 0x00001000;
        }
        if (((from_bitField0_ & 0x00004000) != 0)) {
          result.allowSpectators_ = allowSpectators_;
          to_bitField0_ |= 0x00002000;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.NetGameInfo) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.NetGameInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.NetGameInfo other) {
        if (other == de.pokerth.protocol.ProtoBuf.NetGameInfo.getDefaultInstance()) return this;
        if (other.hasGameName()) {
          gameName_ = other.gameName_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (other.hasNetGameType()) {
          setNetGameType(other.getNetGameType());
        }
        if (other.hasMaxNumPlayers()) {
          setMaxNumPlayers(other.getMaxNumPlayers());
        }
        if (other.hasRaiseIntervalMode()) {
          setRaiseIntervalMode(other.getRaiseIntervalMode());
        }
        if (other.hasRaiseEveryHands()) {
          setRaiseEveryHands(other.getRaiseEveryHands());
        }
        if (other.hasRaiseEveryMinutes()) {
          setRaiseEveryMinutes(other.getRaiseEveryMinutes());
        }
        if (other.hasEndRaiseMode()) {
          setEndRaiseMode(other.getEndRaiseMode());
        }
        if (other.hasEndRaiseSmallBlindValue()) {
          setEndRaiseSmallBlindValue(other.getEndRaiseSmallBlindValue());
        }
        if (other.hasProposedGuiSpeed()) {
          setProposedGuiSpeed(other.getProposedGuiSpeed());
        }
        if (other.hasDelayBetweenHands()) {
          setDelayBetweenHands(other.getDelayBetweenHands());
        }
        if (other.hasPlayerActionTimeout()) {
          setPlayerActionTimeout(other.getPlayerActionTimeout());
        }
        if (other.hasFirstSmallBlind()) {
          setFirstSmallBlind(other.getFirstSmallBlind());
        }
        if (other.hasStartMoney()) {
          setStartMoney(other.getStartMoney());
        }
        if (!other.manualBlinds_.isEmpty()) {
          if (manualBlinds_.isEmpty()) {
            manualBlinds_ = other.manualBlinds_;
            bitField0_ = (bitField0_ & ~0x00002000);
          } else {
            ensureManualBlindsIsMutable();
            manualBlinds_.addAll(other.manualBlinds_);
          }
          onChanged();
        }
        if (other.hasAllowSpectators()) {
          setAllowSpectators(other.getAllowSpectators());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasGameName()) {
          return false;
        }
        if (!hasNetGameType()) {
          return false;
        }
        if (!hasMaxNumPlayers()) {
          return false;
        }
        if (!hasRaiseIntervalMode()) {
          return false;
        }
        if (!hasEndRaiseMode()) {
          return false;
        }
        if (!hasProposedGuiSpeed()) {
          return false;
        }
        if (!hasDelayBetweenHands()) {
          return false;
        }
        if (!hasPlayerActionTimeout()) {
          return false;
        }
        if (!hasFirstSmallBlind()) {
          return false;
        }
        if (!hasStartMoney()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                gameName_ = input.readBytes();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 16: {
                int tmpRaw = input.readEnum();
                de.pokerth.protocol.ProtoBuf.NetGameInfo.NetGameType tmpValue =
                    de.pokerth.protocol.ProtoBuf.NetGameInfo.NetGameType.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(2, tmpRaw);
                } else {
                  netGameType_ = tmpRaw;
                  bitField0_ |= 0x00000002;
                }
                break;
              } // case 16
              case 24: {
                maxNumPlayers_ = input.readUInt32();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 32: {
                int tmpRaw = input.readEnum();
                de.pokerth.protocol.ProtoBuf.NetGameInfo.RaiseIntervalMode tmpValue =
                    de.pokerth.protocol.ProtoBuf.NetGameInfo.RaiseIntervalMode.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(4, tmpRaw);
                } else {
                  raiseIntervalMode_ = tmpRaw;
                  bitField0_ |= 0x00000008;
                }
                break;
              } // case 32
              case 40: {
                raiseEveryHands_ = input.readUInt32();
                bitField0_ |= 0x00000010;
                break;
              } // case 40
              case 48: {
                raiseEveryMinutes_ = input.readUInt32();
                bitField0_ |= 0x00000020;
                break;
              } // case 48
              case 56: {
                int tmpRaw = input.readEnum();
                de.pokerth.protocol.ProtoBuf.NetGameInfo.EndRaiseMode tmpValue =
                    de.pokerth.protocol.ProtoBuf.NetGameInfo.EndRaiseMode.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(7, tmpRaw);
                } else {
                  endRaiseMode_ = tmpRaw;
                  bitField0_ |= 0x00000040;
                }
                break;
              } // case 56
              case 64: {
                endRaiseSmallBlindValue_ = input.readUInt32();
                bitField0_ |= 0x00000080;
                break;
              } // case 64
              case 72: {
                proposedGuiSpeed_ = input.readUInt32();
                bitField0_ |= 0x00000100;
                break;
              } // case 72
              case 80: {
                delayBetweenHands_ = input.readUInt32();
                bitField0_ |= 0x00000200;
                break;
              } // case 80
              case 88: {
                playerActionTimeout_ = input.readUInt32();
                bitField0_ |= 0x00000400;
                break;
              } // case 88
              case 96: {
                firstSmallBlind_ = input.readUInt32();
                bitField0_ |= 0x00000800;
                break;
              } // case 96
              case 104: {
                startMoney_ = input.readUInt32();
                bitField0_ |= 0x00001000;
                break;
              } // case 104
              case 112: {
                int v = input.readUInt32();
                ensureManualBlindsIsMutable();
                manualBlinds_.addInt(v);
                break;
              } // case 112
              case 114: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                ensureManualBlindsIsMutable();
                while (input.getBytesUntilLimit() > 0) {
                  manualBlinds_.addInt(input.readUInt32());
                }
                input.popLimit(limit);
                break;
              } // case 114
              case 120: {
                allowSpectators_ = input.readBool();
                bitField0_ |= 0x00004000;
                break;
              } // case 120
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object gameName_ = "";
      /**
       * <code>required string gameName = 1;</code>
       * @return Whether the gameName field is set.
       */
      public boolean hasGameName() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required string gameName = 1;</code>
       * @return The gameName.
       */
      public java.lang.String getGameName() {
        java.lang.Object ref = gameName_;
        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()) {
            gameName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string gameName = 1;</code>
       * @return The bytes for gameName.
       */
      public com.google.protobuf.ByteString
          getGameNameBytes() {
        java.lang.Object ref = gameName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          gameName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>required string gameName = 1;</code>
       * @param value The gameName to set.
       * @return This builder for chaining.
       */
      public Builder setGameName(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        gameName_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required string gameName = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearGameName() {
        gameName_ = getDefaultInstance().getGameName();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <code>required string gameName = 1;</code>
       * @param value The bytes for gameName to set.
       * @return This builder for chaining.
       */
      public Builder setGameNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        gameName_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private int netGameType_ = 1;
      /**
       * <code>required .NetGameInfo.NetGameType netGameType = 2;</code>
       * @return Whether the netGameType field is set.
       */
      @java.lang.Override public boolean hasNetGameType() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required .NetGameInfo.NetGameType netGameType = 2;</code>
       * @return The netGameType.
       */
      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.NetGameInfo.NetGameType getNetGameType() {
        de.pokerth.protocol.ProtoBuf.NetGameInfo.NetGameType result = de.pokerth.protocol.ProtoBuf.NetGameInfo.NetGameType.forNumber(netGameType_);
        return result == null ? de.pokerth.protocol.ProtoBuf.NetGameInfo.NetGameType.normalGame : result;
      }
      /**
       * <code>required .NetGameInfo.NetGameType netGameType = 2;</code>
       * @param value The netGameType to set.
       * @return This builder for chaining.
       */
      public Builder setNetGameType(de.pokerth.protocol.ProtoBuf.NetGameInfo.NetGameType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        netGameType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>required .NetGameInfo.NetGameType netGameType = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearNetGameType() {
        bitField0_ = (bitField0_ & ~0x00000002);
        netGameType_ = 1;
        onChanged();
        return this;
      }

      private int maxNumPlayers_ ;
      /**
       * <code>required uint32 maxNumPlayers = 3;</code>
       * @return Whether the maxNumPlayers field is set.
       */
      @java.lang.Override
      public boolean hasMaxNumPlayers() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>required uint32 maxNumPlayers = 3;</code>
       * @return The maxNumPlayers.
       */
      @java.lang.Override
      public int getMaxNumPlayers() {
        return maxNumPlayers_;
      }
      /**
       * <code>required uint32 maxNumPlayers = 3;</code>
       * @param value The maxNumPlayers to set.
       * @return This builder for chaining.
       */
      public Builder setMaxNumPlayers(int value) {
        
        maxNumPlayers_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 maxNumPlayers = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearMaxNumPlayers() {
        bitField0_ = (bitField0_ & ~0x00000004);
        maxNumPlayers_ = 0;
        onChanged();
        return this;
      }

      private int raiseIntervalMode_ = 1;
      /**
       * <code>required .NetGameInfo.RaiseIntervalMode raiseIntervalMode = 4;</code>
       * @return Whether the raiseIntervalMode field is set.
       */
      @java.lang.Override public boolean hasRaiseIntervalMode() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>required .NetGameInfo.RaiseIntervalMode raiseIntervalMode = 4;</code>
       * @return The raiseIntervalMode.
       */
      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.NetGameInfo.RaiseIntervalMode getRaiseIntervalMode() {
        de.pokerth.protocol.ProtoBuf.NetGameInfo.RaiseIntervalMode result = de.pokerth.protocol.ProtoBuf.NetGameInfo.RaiseIntervalMode.forNumber(raiseIntervalMode_);
        return result == null ? de.pokerth.protocol.ProtoBuf.NetGameInfo.RaiseIntervalMode.raiseOnHandNum : result;
      }
      /**
       * <code>required .NetGameInfo.RaiseIntervalMode raiseIntervalMode = 4;</code>
       * @param value The raiseIntervalMode to set.
       * @return This builder for chaining.
       */
      public Builder setRaiseIntervalMode(de.pokerth.protocol.ProtoBuf.NetGameInfo.RaiseIntervalMode value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        raiseIntervalMode_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>required .NetGameInfo.RaiseIntervalMode raiseIntervalMode = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearRaiseIntervalMode() {
        bitField0_ = (bitField0_ & ~0x00000008);
        raiseIntervalMode_ = 1;
        onChanged();
        return this;
      }

      private int raiseEveryHands_ ;
      /**
       * <code>optional uint32 raiseEveryHands = 5;</code>
       * @return Whether the raiseEveryHands field is set.
       */
      @java.lang.Override
      public boolean hasRaiseEveryHands() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <code>optional uint32 raiseEveryHands = 5;</code>
       * @return The raiseEveryHands.
       */
      @java.lang.Override
      public int getRaiseEveryHands() {
        return raiseEveryHands_;
      }
      /**
       * <code>optional uint32 raiseEveryHands = 5;</code>
       * @param value The raiseEveryHands to set.
       * @return This builder for chaining.
       */
      public Builder setRaiseEveryHands(int value) {
        
        raiseEveryHands_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>optional uint32 raiseEveryHands = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearRaiseEveryHands() {
        bitField0_ = (bitField0_ & ~0x00000010);
        raiseEveryHands_ = 0;
        onChanged();
        return this;
      }

      private int raiseEveryMinutes_ ;
      /**
       * <code>optional uint32 raiseEveryMinutes = 6;</code>
       * @return Whether the raiseEveryMinutes field is set.
       */
      @java.lang.Override
      public boolean hasRaiseEveryMinutes() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <code>optional uint32 raiseEveryMinutes = 6;</code>
       * @return The raiseEveryMinutes.
       */
      @java.lang.Override
      public int getRaiseEveryMinutes() {
        return raiseEveryMinutes_;
      }
      /**
       * <code>optional uint32 raiseEveryMinutes = 6;</code>
       * @param value The raiseEveryMinutes to set.
       * @return This builder for chaining.
       */
      public Builder setRaiseEveryMinutes(int value) {
        
        raiseEveryMinutes_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>optional uint32 raiseEveryMinutes = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearRaiseEveryMinutes() {
        bitField0_ = (bitField0_ & ~0x00000020);
        raiseEveryMinutes_ = 0;
        onChanged();
        return this;
      }

      private int endRaiseMode_ = 1;
      /**
       * <code>required .NetGameInfo.EndRaiseMode endRaiseMode = 7;</code>
       * @return Whether the endRaiseMode field is set.
       */
      @java.lang.Override public boolean hasEndRaiseMode() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <code>required .NetGameInfo.EndRaiseMode endRaiseMode = 7;</code>
       * @return The endRaiseMode.
       */
      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.NetGameInfo.EndRaiseMode getEndRaiseMode() {
        de.pokerth.protocol.ProtoBuf.NetGameInfo.EndRaiseMode result = de.pokerth.protocol.ProtoBuf.NetGameInfo.EndRaiseMode.forNumber(endRaiseMode_);
        return result == null ? de.pokerth.protocol.ProtoBuf.NetGameInfo.EndRaiseMode.doubleBlinds : result;
      }
      /**
       * <code>required .NetGameInfo.EndRaiseMode endRaiseMode = 7;</code>
       * @param value The endRaiseMode to set.
       * @return This builder for chaining.
       */
      public Builder setEndRaiseMode(de.pokerth.protocol.ProtoBuf.NetGameInfo.EndRaiseMode value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000040;
        endRaiseMode_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>required .NetGameInfo.EndRaiseMode endRaiseMode = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearEndRaiseMode() {
        bitField0_ = (bitField0_ & ~0x00000040);
        endRaiseMode_ = 1;
        onChanged();
        return this;
      }

      private int endRaiseSmallBlindValue_ ;
      /**
       * <code>optional uint32 endRaiseSmallBlindValue = 8;</code>
       * @return Whether the endRaiseSmallBlindValue field is set.
       */
      @java.lang.Override
      public boolean hasEndRaiseSmallBlindValue() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * <code>optional uint32 endRaiseSmallBlindValue = 8;</code>
       * @return The endRaiseSmallBlindValue.
       */
      @java.lang.Override
      public int getEndRaiseSmallBlindValue() {
        return endRaiseSmallBlindValue_;
      }
      /**
       * <code>optional uint32 endRaiseSmallBlindValue = 8;</code>
       * @param value The endRaiseSmallBlindValue to set.
       * @return This builder for chaining.
       */
      public Builder setEndRaiseSmallBlindValue(int value) {
        
        endRaiseSmallBlindValue_ = value;
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <code>optional uint32 endRaiseSmallBlindValue = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearEndRaiseSmallBlindValue() {
        bitField0_ = (bitField0_ & ~0x00000080);
        endRaiseSmallBlindValue_ = 0;
        onChanged();
        return this;
      }

      private int proposedGuiSpeed_ ;
      /**
       * <code>required uint32 proposedGuiSpeed = 9;</code>
       * @return Whether the proposedGuiSpeed field is set.
       */
      @java.lang.Override
      public boolean hasProposedGuiSpeed() {
        return ((bitField0_ & 0x00000100) != 0);
      }
      /**
       * <code>required uint32 proposedGuiSpeed = 9;</code>
       * @return The proposedGuiSpeed.
       */
      @java.lang.Override
      public int getProposedGuiSpeed() {
        return proposedGuiSpeed_;
      }
      /**
       * <code>required uint32 proposedGuiSpeed = 9;</code>
       * @param value The proposedGuiSpeed to set.
       * @return This builder for chaining.
       */
      public Builder setProposedGuiSpeed(int value) {
        
        proposedGuiSpeed_ = value;
        bitField0_ |= 0x00000100;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 proposedGuiSpeed = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearProposedGuiSpeed() {
        bitField0_ = (bitField0_ & ~0x00000100);
        proposedGuiSpeed_ = 0;
        onChanged();
        return this;
      }

      private int delayBetweenHands_ ;
      /**
       * <pre>
       * These are seconds
       * </pre>
       *
       * <code>required uint32 delayBetweenHands = 10;</code>
       * @return Whether the delayBetweenHands field is set.
       */
      @java.lang.Override
      public boolean hasDelayBetweenHands() {
        return ((bitField0_ & 0x00000200) != 0);
      }
      /**
       * <pre>
       * These are seconds
       * </pre>
       *
       * <code>required uint32 delayBetweenHands = 10;</code>
       * @return The delayBetweenHands.
       */
      @java.lang.Override
      public int getDelayBetweenHands() {
        return delayBetweenHands_;
      }
      /**
       * <pre>
       * These are seconds
       * </pre>
       *
       * <code>required uint32 delayBetweenHands = 10;</code>
       * @param value The delayBetweenHands to set.
       * @return This builder for chaining.
       */
      public Builder setDelayBetweenHands(int value) {
        
        delayBetweenHands_ = value;
        bitField0_ |= 0x00000200;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * These are seconds
       * </pre>
       *
       * <code>required uint32 delayBetweenHands = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearDelayBetweenHands() {
        bitField0_ = (bitField0_ & ~0x00000200);
        delayBetweenHands_ = 0;
        onChanged();
        return this;
      }

      private int playerActionTimeout_ ;
      /**
       * <pre>
       * These are seconds
       * </pre>
       *
       * <code>required uint32 playerActionTimeout = 11;</code>
       * @return Whether the playerActionTimeout field is set.
       */
      @java.lang.Override
      public boolean hasPlayerActionTimeout() {
        return ((bitField0_ & 0x00000400) != 0);
      }
      /**
       * <pre>
       * These are seconds
       * </pre>
       *
       * <code>required uint32 playerActionTimeout = 11;</code>
       * @return The playerActionTimeout.
       */
      @java.lang.Override
      public int getPlayerActionTimeout() {
        return playerActionTimeout_;
      }
      /**
       * <pre>
       * These are seconds
       * </pre>
       *
       * <code>required uint32 playerActionTimeout = 11;</code>
       * @param value The playerActionTimeout to set.
       * @return This builder for chaining.
       */
      public Builder setPlayerActionTimeout(int value) {
        
        playerActionTimeout_ = value;
        bitField0_ |= 0x00000400;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * These are seconds
       * </pre>
       *
       * <code>required uint32 playerActionTimeout = 11;</code>
       * @return This builder for chaining.
       */
      public Builder clearPlayerActionTimeout() {
        bitField0_ = (bitField0_ & ~0x00000400);
        playerActionTimeout_ = 0;
        onChanged();
        return this;
      }

      private int firstSmallBlind_ ;
      /**
       * <code>required uint32 firstSmallBlind = 12;</code>
       * @return Whether the firstSmallBlind field is set.
       */
      @java.lang.Override
      public boolean hasFirstSmallBlind() {
        return ((bitField0_ & 0x00000800) != 0);
      }
      /**
       * <code>required uint32 firstSmallBlind = 12;</code>
       * @return The firstSmallBlind.
       */
      @java.lang.Override
      public int getFirstSmallBlind() {
        return firstSmallBlind_;
      }
      /**
       * <code>required uint32 firstSmallBlind = 12;</code>
       * @param value The firstSmallBlind to set.
       * @return This builder for chaining.
       */
      public Builder setFirstSmallBlind(int value) {
        
        firstSmallBlind_ = value;
        bitField0_ |= 0x00000800;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 firstSmallBlind = 12;</code>
       * @return This builder for chaining.
       */
      public Builder clearFirstSmallBlind() {
        bitField0_ = (bitField0_ & ~0x00000800);
        firstSmallBlind_ = 0;
        onChanged();
        return this;
      }

      private int startMoney_ ;
      /**
       * <code>required uint32 startMoney = 13;</code>
       * @return Whether the startMoney field is set.
       */
      @java.lang.Override
      public boolean hasStartMoney() {
        return ((bitField0_ & 0x00001000) != 0);
      }
      /**
       * <code>required uint32 startMoney = 13;</code>
       * @return The startMoney.
       */
      @java.lang.Override
      public int getStartMoney() {
        return startMoney_;
      }
      /**
       * <code>required uint32 startMoney = 13;</code>
       * @param value The startMoney to set.
       * @return This builder for chaining.
       */
      public Builder setStartMoney(int value) {
        
        startMoney_ = value;
        bitField0_ |= 0x00001000;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 startMoney = 13;</code>
       * @return This builder for chaining.
       */
      public Builder clearStartMoney() {
        bitField0_ = (bitField0_ & ~0x00001000);
        startMoney_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.IntList manualBlinds_ = emptyIntList();
      private void ensureManualBlindsIsMutable() {
        if (!((bitField0_ & 0x00002000) != 0)) {
          manualBlinds_ = mutableCopy(manualBlinds_);
          bitField0_ |= 0x00002000;
        }
      }
      /**
       * <code>repeated uint32 manualBlinds = 14 [packed = true];</code>
       * @return A list containing the manualBlinds.
       */
      public java.util.List<java.lang.Integer>
          getManualBlindsList() {
        return ((bitField0_ & 0x00002000) != 0) ?
                 java.util.Collections.unmodifiableList(manualBlinds_) : manualBlinds_;
      }
      /**
       * <code>repeated uint32 manualBlinds = 14 [packed = true];</code>
       * @return The count of manualBlinds.
       */
      public int getManualBlindsCount() {
        return manualBlinds_.size();
      }
      /**
       * <code>repeated uint32 manualBlinds = 14 [packed = true];</code>
       * @param index The index of the element to return.
       * @return The manualBlinds at the given index.
       */
      public int getManualBlinds(int index) {
        return manualBlinds_.getInt(index);
      }
      /**
       * <code>repeated uint32 manualBlinds = 14 [packed = true];</code>
       * @param index The index to set the value at.
       * @param value The manualBlinds to set.
       * @return This builder for chaining.
       */
      public Builder setManualBlinds(
          int index, int value) {
        
        ensureManualBlindsIsMutable();
        manualBlinds_.setInt(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated uint32 manualBlinds = 14 [packed = true];</code>
       * @param value The manualBlinds to add.
       * @return This builder for chaining.
       */
      public Builder addManualBlinds(int value) {
        
        ensureManualBlindsIsMutable();
        manualBlinds_.addInt(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated uint32 manualBlinds = 14 [packed = true];</code>
       * @param values The manualBlinds to add.
       * @return This builder for chaining.
       */
      public Builder addAllManualBlinds(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensureManualBlindsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, manualBlinds_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated uint32 manualBlinds = 14 [packed = true];</code>
       * @return This builder for chaining.
       */
      public Builder clearManualBlinds() {
        manualBlinds_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00002000);
        onChanged();
        return this;
      }

      private boolean allowSpectators_ = true;
      /**
       * <code>optional bool allowSpectators = 15 [default = true];</code>
       * @return Whether the allowSpectators field is set.
       */
      @java.lang.Override
      public boolean hasAllowSpectators() {
        return ((bitField0_ & 0x00004000) != 0);
      }
      /**
       * <code>optional bool allowSpectators = 15 [default = true];</code>
       * @return The allowSpectators.
       */
      @java.lang.Override
      public boolean getAllowSpectators() {
        return allowSpectators_;
      }
      /**
       * <code>optional bool allowSpectators = 15 [default = true];</code>
       * @param value The allowSpectators to set.
       * @return This builder for chaining.
       */
      public Builder setAllowSpectators(boolean value) {
        
        allowSpectators_ = value;
        bitField0_ |= 0x00004000;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool allowSpectators = 15 [default = true];</code>
       * @return This builder for chaining.
       */
      public Builder clearAllowSpectators() {
        bitField0_ = (bitField0_ & ~0x00004000);
        allowSpectators_ = true;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:NetGameInfo)
    }

    // @@protoc_insertion_point(class_scope:NetGameInfo)
    private static final de.pokerth.protocol.ProtoBuf.NetGameInfo DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.NetGameInfo();
    }

    public static de.pokerth.protocol.ProtoBuf.NetGameInfo getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<NetGameInfo>
        PARSER = new com.google.protobuf.AbstractParser<NetGameInfo>() {
      @java.lang.Override
      public NetGameInfo parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<NetGameInfo> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.NetGameInfo getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 playerId = 1;</code>
     * @return Whether the playerId field is set.
     */
    boolean hasPlayerId();
    /**
     * <code>required uint32 playerId = 1;</code>
     * @return The playerId.
     */
    int getPlayerId();

    /**
     * <code>required uint32 resultCard1 = 2;</code>
     * @return Whether the resultCard1 field is set.
     */
    boolean hasResultCard1();
    /**
     * <code>required uint32 resultCard1 = 2;</code>
     * @return The resultCard1.
     */
    int getResultCard1();

    /**
     * <code>required uint32 resultCard2 = 3;</code>
     * @return Whether the resultCard2 field is set.
     */
    boolean hasResultCard2();
    /**
     * <code>required uint32 resultCard2 = 3;</code>
     * @return The resultCard2.
     */
    int getResultCard2();

    /**
     * <code>repeated uint32 bestHandPosition = 4 [packed = true];</code>
     * @return A list containing the bestHandPosition.
     */
    java.util.List<java.lang.Integer> getBestHandPositionList();
    /**
     * <code>repeated uint32 bestHandPosition = 4 [packed = true];</code>
     * @return The count of bestHandPosition.
     */
    int getBestHandPositionCount();
    /**
     * <code>repeated uint32 bestHandPosition = 4 [packed = true];</code>
     * @param index The index of the element to return.
     * @return The bestHandPosition at the given index.
     */
    int getBestHandPosition(int index);

    /**
     * <code>required uint32 moneyWon = 5;</code>
     * @return Whether the moneyWon field is set.
     */
    boolean hasMoneyWon();
    /**
     * <code>required uint32 moneyWon = 5;</code>
     * @return The moneyWon.
     */
    int getMoneyWon();

    /**
     * <code>required uint32 playerMoney = 6;</code>
     * @return Whether the playerMoney field is set.
     */
    boolean hasPlayerMoney();
    /**
     * <code>required uint32 playerMoney = 6;</code>
     * @return The playerMoney.
     */
    int getPlayerMoney();

    /**
     * <code>optional uint32 cardsValue = 7;</code>
     * @return Whether the cardsValue field is set.
     */
    boolean hasCardsValue();
    /**
     * <code>optional uint32 cardsValue = 7;</code>
     * @return The cardsValue.
     */
    int getCardsValue();
  }
  /**
   * Protobuf type {@code PlayerResult}
   */
  public static final class PlayerResult extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:PlayerResult)
      PlayerResultOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PlayerResult.newBuilder() to construct.
    private PlayerResult(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PlayerResult() {
      bestHandPosition_ = emptyIntList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new PlayerResult();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_PlayerResult_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_PlayerResult_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.PlayerResult.class, de.pokerth.protocol.ProtoBuf.PlayerResult.Builder.class);
    }

    private int bitField0_;
    public static final int PLAYERID_FIELD_NUMBER = 1;
    private int playerId_ = 0;
    /**
     * <code>required uint32 playerId = 1;</code>
     * @return Whether the playerId field is set.
     */
    @java.lang.Override
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 playerId = 1;</code>
     * @return The playerId.
     */
    @java.lang.Override
    public int getPlayerId() {
      return playerId_;
    }

    public static final int RESULTCARD1_FIELD_NUMBER = 2;
    private int resultCard1_ = 0;
    /**
     * <code>required uint32 resultCard1 = 2;</code>
     * @return Whether the resultCard1 field is set.
     */
    @java.lang.Override
    public boolean hasResultCard1() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required uint32 resultCard1 = 2;</code>
     * @return The resultCard1.
     */
    @java.lang.Override
    public int getResultCard1() {
      return resultCard1_;
    }

    public static final int RESULTCARD2_FIELD_NUMBER = 3;
    private int resultCard2_ = 0;
    /**
     * <code>required uint32 resultCard2 = 3;</code>
     * @return Whether the resultCard2 field is set.
     */
    @java.lang.Override
    public boolean hasResultCard2() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>required uint32 resultCard2 = 3;</code>
     * @return The resultCard2.
     */
    @java.lang.Override
    public int getResultCard2() {
      return resultCard2_;
    }

    public static final int BESTHANDPOSITION_FIELD_NUMBER = 4;
    @SuppressWarnings("serial")
    private com.google.protobuf.Internal.IntList bestHandPosition_;
    /**
     * <code>repeated uint32 bestHandPosition = 4 [packed = true];</code>
     * @return A list containing the bestHandPosition.
     */
    @java.lang.Override
    public java.util.List<java.lang.Integer>
        getBestHandPositionList() {
      return bestHandPosition_;
    }
    /**
     * <code>repeated uint32 bestHandPosition = 4 [packed = true];</code>
     * @return The count of bestHandPosition.
     */
    public int getBestHandPositionCount() {
      return bestHandPosition_.size();
    }
    /**
     * <code>repeated uint32 bestHandPosition = 4 [packed = true];</code>
     * @param index The index of the element to return.
     * @return The bestHandPosition at the given index.
     */
    public int getBestHandPosition(int index) {
      return bestHandPosition_.getInt(index);
    }
    private int bestHandPositionMemoizedSerializedSize = -1;

    public static final int MONEYWON_FIELD_NUMBER = 5;
    private int moneyWon_ = 0;
    /**
     * <code>required uint32 moneyWon = 5;</code>
     * @return Whether the moneyWon field is set.
     */
    @java.lang.Override
    public boolean hasMoneyWon() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>required uint32 moneyWon = 5;</code>
     * @return The moneyWon.
     */
    @java.lang.Override
    public int getMoneyWon() {
      return moneyWon_;
    }

    public static final int PLAYERMONEY_FIELD_NUMBER = 6;
    private int playerMoney_ = 0;
    /**
     * <code>required uint32 playerMoney = 6;</code>
     * @return Whether the playerMoney field is set.
     */
    @java.lang.Override
    public boolean hasPlayerMoney() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <code>required uint32 playerMoney = 6;</code>
     * @return The playerMoney.
     */
    @java.lang.Override
    public int getPlayerMoney() {
      return playerMoney_;
    }

    public static final int CARDSVALUE_FIELD_NUMBER = 7;
    private int cardsValue_ = 0;
    /**
     * <code>optional uint32 cardsValue = 7;</code>
     * @return Whether the cardsValue field is set.
     */
    @java.lang.Override
    public boolean hasCardsValue() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <code>optional uint32 cardsValue = 7;</code>
     * @return The cardsValue.
     */
    @java.lang.Override
    public int getCardsValue() {
      return cardsValue_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasResultCard1()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasResultCard2()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasMoneyWon()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerMoney()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt32(2, resultCard1_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeUInt32(3, resultCard2_);
      }
      if (getBestHandPositionList().size() > 0) {
        output.writeUInt32NoTag(34);
        output.writeUInt32NoTag(bestHandPositionMemoizedSerializedSize);
      }
      for (int i = 0; i < bestHandPosition_.size(); i++) {
        output.writeUInt32NoTag(bestHandPosition_.getInt(i));
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeUInt32(5, moneyWon_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeUInt32(6, playerMoney_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        output.writeUInt32(7, cardsValue_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, resultCard1_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, resultCard2_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < bestHandPosition_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeUInt32SizeNoTag(bestHandPosition_.getInt(i));
        }
        size += dataSize;
        if (!getBestHandPositionList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        bestHandPositionMemoizedSerializedSize = dataSize;
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, moneyWon_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(6, playerMoney_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(7, cardsValue_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.PlayerResult)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.PlayerResult other = (de.pokerth.protocol.ProtoBuf.PlayerResult) obj;

      if (hasPlayerId() != other.hasPlayerId()) return false;
      if (hasPlayerId()) {
        if (getPlayerId()
            != other.getPlayerId()) return false;
      }
      if (hasResultCard1() != other.hasResultCard1()) return false;
      if (hasResultCard1()) {
        if (getResultCard1()
            != other.getResultCard1()) return false;
      }
      if (hasResultCard2() != other.hasResultCard2()) return false;
      if (hasResultCard2()) {
        if (getResultCard2()
            != other.getResultCard2()) return false;
      }
      if (!getBestHandPositionList()
          .equals(other.getBestHandPositionList())) return false;
      if (hasMoneyWon() != other.hasMoneyWon()) return false;
      if (hasMoneyWon()) {
        if (getMoneyWon()
            != other.getMoneyWon()) return false;
      }
      if (hasPlayerMoney() != other.hasPlayerMoney()) return false;
      if (hasPlayerMoney()) {
        if (getPlayerMoney()
            != other.getPlayerMoney()) return false;
      }
      if (hasCardsValue() != other.hasCardsValue()) return false;
      if (hasCardsValue()) {
        if (getCardsValue()
            != other.getCardsValue()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasPlayerId()) {
        hash = (37 * hash) + PLAYERID_FIELD_NUMBER;
        hash = (53 * hash) + getPlayerId();
      }
      if (hasResultCard1()) {
        hash = (37 * hash) + RESULTCARD1_FIELD_NUMBER;
        hash = (53 * hash) + getResultCard1();
      }
      if (hasResultCard2()) {
        hash = (37 * hash) + RESULTCARD2_FIELD_NUMBER;
        hash = (53 * hash) + getResultCard2();
      }
      if (getBestHandPositionCount() > 0) {
        hash = (37 * hash) + BESTHANDPOSITION_FIELD_NUMBER;
        hash = (53 * hash) + getBestHandPositionList().hashCode();
      }
      if (hasMoneyWon()) {
        hash = (37 * hash) + MONEYWON_FIELD_NUMBER;
        hash = (53 * hash) + getMoneyWon();
      }
      if (hasPlayerMoney()) {
        hash = (37 * hash) + PLAYERMONEY_FIELD_NUMBER;
        hash = (53 * hash) + getPlayerMoney();
      }
      if (hasCardsValue()) {
        hash = (37 * hash) + CARDSVALUE_FIELD_NUMBER;
        hash = (53 * hash) + getCardsValue();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.PlayerResult parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerResult parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerResult parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerResult parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerResult parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerResult parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerResult parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerResult parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerResult parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerResult parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerResult parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerResult parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.PlayerResult prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code PlayerResult}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:PlayerResult)
        de.pokerth.protocol.ProtoBuf.PlayerResultOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_PlayerResult_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_PlayerResult_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.PlayerResult.class, de.pokerth.protocol.ProtoBuf.PlayerResult.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.PlayerResult.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        playerId_ = 0;
        resultCard1_ = 0;
        resultCard2_ = 0;
        bestHandPosition_ = emptyIntList();
        moneyWon_ = 0;
        playerMoney_ = 0;
        cardsValue_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_PlayerResult_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.PlayerResult getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.PlayerResult.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.PlayerResult build() {
        de.pokerth.protocol.ProtoBuf.PlayerResult result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.PlayerResult buildPartial() {
        de.pokerth.protocol.ProtoBuf.PlayerResult result = new de.pokerth.protocol.ProtoBuf.PlayerResult(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(de.pokerth.protocol.ProtoBuf.PlayerResult result) {
        if (((bitField0_ & 0x00000008) != 0)) {
          bestHandPosition_.makeImmutable();
          bitField0_ = (bitField0_ & ~0x00000008);
        }
        result.bestHandPosition_ = bestHandPosition_;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.PlayerResult result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.playerId_ = playerId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.resultCard1_ = resultCard1_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.resultCard2_ = resultCard2_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.moneyWon_ = moneyWon_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.playerMoney_ = playerMoney_;
          to_bitField0_ |= 0x00000010;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.cardsValue_ = cardsValue_;
          to_bitField0_ |= 0x00000020;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.PlayerResult) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.PlayerResult)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.PlayerResult other) {
        if (other == de.pokerth.protocol.ProtoBuf.PlayerResult.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasResultCard1()) {
          setResultCard1(other.getResultCard1());
        }
        if (other.hasResultCard2()) {
          setResultCard2(other.getResultCard2());
        }
        if (!other.bestHandPosition_.isEmpty()) {
          if (bestHandPosition_.isEmpty()) {
            bestHandPosition_ = other.bestHandPosition_;
            bitField0_ = (bitField0_ & ~0x00000008);
          } else {
            ensureBestHandPositionIsMutable();
            bestHandPosition_.addAll(other.bestHandPosition_);
          }
          onChanged();
        }
        if (other.hasMoneyWon()) {
          setMoneyWon(other.getMoneyWon());
        }
        if (other.hasPlayerMoney()) {
          setPlayerMoney(other.getPlayerMoney());
        }
        if (other.hasCardsValue()) {
          setCardsValue(other.getCardsValue());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasPlayerId()) {
          return false;
        }
        if (!hasResultCard1()) {
          return false;
        }
        if (!hasResultCard2()) {
          return false;
        }
        if (!hasMoneyWon()) {
          return false;
        }
        if (!hasPlayerMoney()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                playerId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                resultCard1_ = input.readUInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                resultCard2_ = input.readUInt32();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 32: {
                int v = input.readUInt32();
                ensureBestHandPositionIsMutable();
                bestHandPosition_.addInt(v);
                break;
              } // case 32
              case 34: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                ensureBestHandPositionIsMutable();
                while (input.getBytesUntilLimit() > 0) {
                  bestHandPosition_.addInt(input.readUInt32());
                }
                input.popLimit(limit);
                break;
              } // case 34
              case 40: {
                moneyWon_ = input.readUInt32();
                bitField0_ |= 0x00000010;
                break;
              } // case 40
              case 48: {
                playerMoney_ = input.readUInt32();
                bitField0_ |= 0x00000020;
                break;
              } // case 48
              case 56: {
                cardsValue_ = input.readUInt32();
                bitField0_ |= 0x00000040;
                break;
              } // case 56
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * <code>required uint32 playerId = 1;</code>
       * @return Whether the playerId field is set.
       */
      @java.lang.Override
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 playerId = 1;</code>
       * @return The playerId.
       */
      @java.lang.Override
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * <code>required uint32 playerId = 1;</code>
       * @param value The playerId to set.
       * @return This builder for chaining.
       */
      public Builder setPlayerId(int value) {
        
        playerId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 playerId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private int resultCard1_ ;
      /**
       * <code>required uint32 resultCard1 = 2;</code>
       * @return Whether the resultCard1 field is set.
       */
      @java.lang.Override
      public boolean hasResultCard1() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required uint32 resultCard1 = 2;</code>
       * @return The resultCard1.
       */
      @java.lang.Override
      public int getResultCard1() {
        return resultCard1_;
      }
      /**
       * <code>required uint32 resultCard1 = 2;</code>
       * @param value The resultCard1 to set.
       * @return This builder for chaining.
       */
      public Builder setResultCard1(int value) {
        
        resultCard1_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 resultCard1 = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearResultCard1() {
        bitField0_ = (bitField0_ & ~0x00000002);
        resultCard1_ = 0;
        onChanged();
        return this;
      }

      private int resultCard2_ ;
      /**
       * <code>required uint32 resultCard2 = 3;</code>
       * @return Whether the resultCard2 field is set.
       */
      @java.lang.Override
      public boolean hasResultCard2() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>required uint32 resultCard2 = 3;</code>
       * @return The resultCard2.
       */
      @java.lang.Override
      public int getResultCard2() {
        return resultCard2_;
      }
      /**
       * <code>required uint32 resultCard2 = 3;</code>
       * @param value The resultCard2 to set.
       * @return This builder for chaining.
       */
      public Builder setResultCard2(int value) {
        
        resultCard2_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 resultCard2 = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearResultCard2() {
        bitField0_ = (bitField0_ & ~0x00000004);
        resultCard2_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.IntList bestHandPosition_ = emptyIntList();
      private void ensureBestHandPositionIsMutable() {
        if (!((bitField0_ & 0x00000008) != 0)) {
          bestHandPosition_ = mutableCopy(bestHandPosition_);
          bitField0_ |= 0x00000008;
        }
      }
      /**
       * <code>repeated uint32 bestHandPosition = 4 [packed = true];</code>
       * @return A list containing the bestHandPosition.
       */
      public java.util.List<java.lang.Integer>
          getBestHandPositionList() {
        return ((bitField0_ & 0x00000008) != 0) ?
                 java.util.Collections.unmodifiableList(bestHandPosition_) : bestHandPosition_;
      }
      /**
       * <code>repeated uint32 bestHandPosition = 4 [packed = true];</code>
       * @return The count of bestHandPosition.
       */
      public int getBestHandPositionCount() {
        return bestHandPosition_.size();
      }
      /**
       * <code>repeated uint32 bestHandPosition = 4 [packed = true];</code>
       * @param index The index of the element to return.
       * @return The bestHandPosition at the given index.
       */
      public int getBestHandPosition(int index) {
        return bestHandPosition_.getInt(index);
      }
      /**
       * <code>repeated uint32 bestHandPosition = 4 [packed = true];</code>
       * @param index The index to set the value at.
       * @param value The bestHandPosition to set.
       * @return This builder for chaining.
       */
      public Builder setBestHandPosition(
          int index, int value) {
        
        ensureBestHandPositionIsMutable();
        bestHandPosition_.setInt(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated uint32 bestHandPosition = 4 [packed = true];</code>
       * @param value The bestHandPosition to add.
       * @return This builder for chaining.
       */
      public Builder addBestHandPosition(int value) {
        
        ensureBestHandPositionIsMutable();
        bestHandPosition_.addInt(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated uint32 bestHandPosition = 4 [packed = true];</code>
       * @param values The bestHandPosition to add.
       * @return This builder for chaining.
       */
      public Builder addAllBestHandPosition(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensureBestHandPositionIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, bestHandPosition_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated uint32 bestHandPosition = 4 [packed = true];</code>
       * @return This builder for chaining.
       */
      public Builder clearBestHandPosition() {
        bestHandPosition_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }

      private int moneyWon_ ;
      /**
       * <code>required uint32 moneyWon = 5;</code>
       * @return Whether the moneyWon field is set.
       */
      @java.lang.Override
      public boolean hasMoneyWon() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <code>required uint32 moneyWon = 5;</code>
       * @return The moneyWon.
       */
      @java.lang.Override
      public int getMoneyWon() {
        return moneyWon_;
      }
      /**
       * <code>required uint32 moneyWon = 5;</code>
       * @param value The moneyWon to set.
       * @return This builder for chaining.
       */
      public Builder setMoneyWon(int value) {
        
        moneyWon_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 moneyWon = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearMoneyWon() {
        bitField0_ = (bitField0_ & ~0x00000010);
        moneyWon_ = 0;
        onChanged();
        return this;
      }

      private int playerMoney_ ;
      /**
       * <code>required uint32 playerMoney = 6;</code>
       * @return Whether the playerMoney field is set.
       */
      @java.lang.Override
      public boolean hasPlayerMoney() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <code>required uint32 playerMoney = 6;</code>
       * @return The playerMoney.
       */
      @java.lang.Override
      public int getPlayerMoney() {
        return playerMoney_;
      }
      /**
       * <code>required uint32 playerMoney = 6;</code>
       * @param value The playerMoney to set.
       * @return This builder for chaining.
       */
      public Builder setPlayerMoney(int value) {
        
        playerMoney_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 playerMoney = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearPlayerMoney() {
        bitField0_ = (bitField0_ & ~0x00000020);
        playerMoney_ = 0;
        onChanged();
        return this;
      }

      private int cardsValue_ ;
      /**
       * <code>optional uint32 cardsValue = 7;</code>
       * @return Whether the cardsValue field is set.
       */
      @java.lang.Override
      public boolean hasCardsValue() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <code>optional uint32 cardsValue = 7;</code>
       * @return The cardsValue.
       */
      @java.lang.Override
      public int getCardsValue() {
        return cardsValue_;
      }
      /**
       * <code>optional uint32 cardsValue = 7;</code>
       * @param value The cardsValue to set.
       * @return This builder for chaining.
       */
      public Builder setCardsValue(int value) {
        
        cardsValue_ = value;
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <code>optional uint32 cardsValue = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearCardsValue() {
        bitField0_ = (bitField0_ & ~0x00000040);
        cardsValue_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:PlayerResult)
    }

    // @@protoc_insertion_point(class_scope:PlayerResult)
    private static final de.pokerth.protocol.ProtoBuf.PlayerResult DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.PlayerResult();
    }

    public static de.pokerth.protocol.ProtoBuf.PlayerResult getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<PlayerResult>
        PARSER = new com.google.protobuf.AbstractParser<PlayerResult>() {
      @java.lang.Override
      public PlayerResult parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<PlayerResult> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.PlayerResult getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required .AnnounceMessage.Version protocolVersion = 1;</code>
     * @return Whether the protocolVersion field is set.
     */
    boolean hasProtocolVersion();
    /**
     * <code>required .AnnounceMessage.Version protocolVersion = 1;</code>
     * @return The protocolVersion.
     */
    de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version getProtocolVersion();
    /**
     * <code>required .AnnounceMessage.Version protocolVersion = 1;</code>
     */
    de.pokerth.protocol.ProtoBuf.AnnounceMessage.VersionOrBuilder getProtocolVersionOrBuilder();

    /**
     * <code>required .AnnounceMessage.Version latestGameVersion = 2;</code>
     * @return Whether the latestGameVersion field is set.
     */
    boolean hasLatestGameVersion();
    /**
     * <code>required .AnnounceMessage.Version latestGameVersion = 2;</code>
     * @return The latestGameVersion.
     */
    de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version getLatestGameVersion();
    /**
     * <code>required .AnnounceMessage.Version latestGameVersion = 2;</code>
     */
    de.pokerth.protocol.ProtoBuf.AnnounceMessage.VersionOrBuilder getLatestGameVersionOrBuilder();

    /**
     * <code>required uint32 latestBetaRevision = 3;</code>
     * @return Whether the latestBetaRevision field is set.
     */
    boolean hasLatestBetaRevision();
    /**
     * <code>required uint32 latestBetaRevision = 3;</code>
     * @return The latestBetaRevision.
     */
    int getLatestBetaRevision();

    /**
     * <code>required .AnnounceMessage.ServerType serverType = 4;</code>
     * @return Whether the serverType field is set.
     */
    boolean hasServerType();
    /**
     * <code>required .AnnounceMessage.ServerType serverType = 4;</code>
     * @return The serverType.
     */
    de.pokerth.protocol.ProtoBuf.AnnounceMessage.ServerType getServerType();

    /**
     * <code>required uint32 numPlayersOnServer = 5;</code>
     * @return Whether the numPlayersOnServer field is set.
     */
    boolean hasNumPlayersOnServer();
    /**
     * <code>required uint32 numPlayersOnServer = 5;</code>
     * @return The numPlayersOnServer.
     */
    int getNumPlayersOnServer();
  }
  /**
   * Protobuf type {@code AnnounceMessage}
   */
  public static final class AnnounceMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:AnnounceMessage)
      AnnounceMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use AnnounceMessage.newBuilder() to construct.
    private AnnounceMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private AnnounceMessage() {
      serverType_ = 0;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new AnnounceMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_AnnounceMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_AnnounceMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.AnnounceMessage.class, de.pokerth.protocol.ProtoBuf.AnnounceMessage.Builder.class);
    }

    /**
     * Protobuf enum {@code AnnounceMessage.ServerType}
     */
    public enum ServerType
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>serverTypeLAN = 0;</code>
       */
      serverTypeLAN(0),
      /**
       * <code>serverTypeInternetNoAuth = 1;</code>
       */
      serverTypeInternetNoAuth(1),
      /**
       * <code>serverTypeInternetAuth = 2;</code>
       */
      serverTypeInternetAuth(2),
      ;

      /**
       * <code>serverTypeLAN = 0;</code>
       */
      public static final int serverTypeLAN_VALUE = 0;
      /**
       * <code>serverTypeInternetNoAuth = 1;</code>
       */
      public static final int serverTypeInternetNoAuth_VALUE = 1;
      /**
       * <code>serverTypeInternetAuth = 2;</code>
       */
      public static final int serverTypeInternetAuth_VALUE = 2;


      public final int getNumber() {
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static ServerType valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static ServerType forNumber(int value) {
        switch (value) {
          case 0: return serverTypeLAN;
          case 1: return serverTypeInternetNoAuth;
          case 2: return serverTypeInternetAuth;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<ServerType>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          ServerType> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<ServerType>() {
              public ServerType findValueByNumber(int number) {
                return ServerType.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.AnnounceMessage.getDescriptor().getEnumTypes().get(0);
      }

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

      public static ServerType 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 value;

      private ServerType(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:AnnounceMessage.ServerType)
    }

    public interface VersionOrBuilder extends
        // @@protoc_insertion_point(interface_extends:AnnounceMessage.Version)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>required uint32 majorVersion = 1;</code>
       * @return Whether the majorVersion field is set.
       */
      boolean hasMajorVersion();
      /**
       * <code>required uint32 majorVersion = 1;</code>
       * @return The majorVersion.
       */
      int getMajorVersion();

      /**
       * <code>required uint32 minorVersion = 2;</code>
       * @return Whether the minorVersion field is set.
       */
      boolean hasMinorVersion();
      /**
       * <code>required uint32 minorVersion = 2;</code>
       * @return The minorVersion.
       */
      int getMinorVersion();
    }
    /**
     * Protobuf type {@code AnnounceMessage.Version}
     */
    public static final class Version extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:AnnounceMessage.Version)
        VersionOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Version.newBuilder() to construct.
      private Version(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Version() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Version();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_AnnounceMessage_Version_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_AnnounceMessage_Version_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.class, de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.Builder.class);
      }

      private int bitField0_;
      public static final int MAJORVERSION_FIELD_NUMBER = 1;
      private int majorVersion_ = 0;
      /**
       * <code>required uint32 majorVersion = 1;</code>
       * @return Whether the majorVersion field is set.
       */
      @java.lang.Override
      public boolean hasMajorVersion() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 majorVersion = 1;</code>
       * @return The majorVersion.
       */
      @java.lang.Override
      public int getMajorVersion() {
        return majorVersion_;
      }

      public static final int MINORVERSION_FIELD_NUMBER = 2;
      private int minorVersion_ = 0;
      /**
       * <code>required uint32 minorVersion = 2;</code>
       * @return Whether the minorVersion field is set.
       */
      @java.lang.Override
      public boolean hasMinorVersion() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required uint32 minorVersion = 2;</code>
       * @return The minorVersion.
       */
      @java.lang.Override
      public int getMinorVersion() {
        return minorVersion_;
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

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

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (((bitField0_ & 0x00000001) != 0)) {
          output.writeUInt32(1, majorVersion_);
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          output.writeUInt32(2, minorVersion_);
        }
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(1, majorVersion_);
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(2, minorVersion_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version)) {
          return super.equals(obj);
        }
        de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version other = (de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version) obj;

        if (hasMajorVersion() != other.hasMajorVersion()) return false;
        if (hasMajorVersion()) {
          if (getMajorVersion()
              != other.getMajorVersion()) return false;
        }
        if (hasMinorVersion() != other.hasMinorVersion()) return false;
        if (hasMinorVersion()) {
          if (getMinorVersion()
              != other.getMinorVersion()) return false;
        }
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasMajorVersion()) {
          hash = (37 * hash) + MAJORVERSION_FIELD_NUMBER;
          hash = (53 * hash) + getMajorVersion();
        }
        if (hasMinorVersion()) {
          hash = (37 * hash) + MINORVERSION_FIELD_NUMBER;
          hash = (53 * hash) + getMinorVersion();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code AnnounceMessage.Version}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:AnnounceMessage.Version)
          de.pokerth.protocol.ProtoBuf.AnnounceMessage.VersionOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return de.pokerth.protocol.ProtoBuf.internal_static_AnnounceMessage_Version_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return de.pokerth.protocol.ProtoBuf.internal_static_AnnounceMessage_Version_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.class, de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.Builder.class);
        }

        // Construct using de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          majorVersion_ = 0;
          minorVersion_ = 0;
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return de.pokerth.protocol.ProtoBuf.internal_static_AnnounceMessage_Version_descriptor;
        }

        @java.lang.Override
        public de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version getDefaultInstanceForType() {
          return de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.getDefaultInstance();
        }

        @java.lang.Override
        public de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version build() {
          de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version buildPartial() {
          de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version result = new de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version(this);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }

        private void buildPartial0(de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version result) {
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.majorVersion_ = majorVersion_;
            to_bitField0_ |= 0x00000001;
          }
          if (((from_bitField0_ & 0x00000002) != 0)) {
            result.minorVersion_ = minorVersion_;
            to_bitField0_ |= 0x00000002;
          }
          result.bitField0_ |= to_bitField0_;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version) {
            return mergeFrom((de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version other) {
          if (other == de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.getDefaultInstance()) return this;
          if (other.hasMajorVersion()) {
            setMajorVersion(other.getMajorVersion());
          }
          if (other.hasMinorVersion()) {
            setMinorVersion(other.getMinorVersion());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          if (!hasMajorVersion()) {
            return false;
          }
          if (!hasMinorVersion()) {
            return false;
          }
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 8: {
                  majorVersion_ = input.readUInt32();
                  bitField0_ |= 0x00000001;
                  break;
                } // case 8
                case 16: {
                  minorVersion_ = input.readUInt32();
                  bitField0_ |= 0x00000002;
                  break;
                } // case 16
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        private int bitField0_;

        private int majorVersion_ ;
        /**
         * <code>required uint32 majorVersion = 1;</code>
         * @return Whether the majorVersion field is set.
         */
        @java.lang.Override
        public boolean hasMajorVersion() {
          return ((bitField0_ & 0x00000001) != 0);
        }
        /**
         * <code>required uint32 majorVersion = 1;</code>
         * @return The majorVersion.
         */
        @java.lang.Override
        public int getMajorVersion() {
          return majorVersion_;
        }
        /**
         * <code>required uint32 majorVersion = 1;</code>
         * @param value The majorVersion to set.
         * @return This builder for chaining.
         */
        public Builder setMajorVersion(int value) {
          
          majorVersion_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <code>required uint32 majorVersion = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearMajorVersion() {
          bitField0_ = (bitField0_ & ~0x00000001);
          majorVersion_ = 0;
          onChanged();
          return this;
        }

        private int minorVersion_ ;
        /**
         * <code>required uint32 minorVersion = 2;</code>
         * @return Whether the minorVersion field is set.
         */
        @java.lang.Override
        public boolean hasMinorVersion() {
          return ((bitField0_ & 0x00000002) != 0);
        }
        /**
         * <code>required uint32 minorVersion = 2;</code>
         * @return The minorVersion.
         */
        @java.lang.Override
        public int getMinorVersion() {
          return minorVersion_;
        }
        /**
         * <code>required uint32 minorVersion = 2;</code>
         * @param value The minorVersion to set.
         * @return This builder for chaining.
         */
        public Builder setMinorVersion(int value) {
          
          minorVersion_ = value;
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        /**
         * <code>required uint32 minorVersion = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearMinorVersion() {
          bitField0_ = (bitField0_ & ~0x00000002);
          minorVersion_ = 0;
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:AnnounceMessage.Version)
      }

      // @@protoc_insertion_point(class_scope:AnnounceMessage.Version)
      private static final de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version();
      }

      public static de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      @java.lang.Deprecated public static final com.google.protobuf.Parser<Version>
          PARSER = new com.google.protobuf.AbstractParser<Version>() {
        @java.lang.Override
        public Version parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

      public static com.google.protobuf.Parser<Version> parser() {
        return PARSER;
      }

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

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private int bitField0_;
    public static final int PROTOCOLVERSION_FIELD_NUMBER = 1;
    private de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version protocolVersion_;
    /**
     * <code>required .AnnounceMessage.Version protocolVersion = 1;</code>
     * @return Whether the protocolVersion field is set.
     */
    @java.lang.Override
    public boolean hasProtocolVersion() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required .AnnounceMessage.Version protocolVersion = 1;</code>
     * @return The protocolVersion.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version getProtocolVersion() {
      return protocolVersion_ == null ? de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.getDefaultInstance() : protocolVersion_;
    }
    /**
     * <code>required .AnnounceMessage.Version protocolVersion = 1;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.AnnounceMessage.VersionOrBuilder getProtocolVersionOrBuilder() {
      return protocolVersion_ == null ? de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.getDefaultInstance() : protocolVersion_;
    }

    public static final int LATESTGAMEVERSION_FIELD_NUMBER = 2;
    private de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version latestGameVersion_;
    /**
     * <code>required .AnnounceMessage.Version latestGameVersion = 2;</code>
     * @return Whether the latestGameVersion field is set.
     */
    @java.lang.Override
    public boolean hasLatestGameVersion() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required .AnnounceMessage.Version latestGameVersion = 2;</code>
     * @return The latestGameVersion.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version getLatestGameVersion() {
      return latestGameVersion_ == null ? de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.getDefaultInstance() : latestGameVersion_;
    }
    /**
     * <code>required .AnnounceMessage.Version latestGameVersion = 2;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.AnnounceMessage.VersionOrBuilder getLatestGameVersionOrBuilder() {
      return latestGameVersion_ == null ? de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.getDefaultInstance() : latestGameVersion_;
    }

    public static final int LATESTBETAREVISION_FIELD_NUMBER = 3;
    private int latestBetaRevision_ = 0;
    /**
     * <code>required uint32 latestBetaRevision = 3;</code>
     * @return Whether the latestBetaRevision field is set.
     */
    @java.lang.Override
    public boolean hasLatestBetaRevision() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>required uint32 latestBetaRevision = 3;</code>
     * @return The latestBetaRevision.
     */
    @java.lang.Override
    public int getLatestBetaRevision() {
      return latestBetaRevision_;
    }

    public static final int SERVERTYPE_FIELD_NUMBER = 4;
    private int serverType_ = 0;
    /**
     * <code>required .AnnounceMessage.ServerType serverType = 4;</code>
     * @return Whether the serverType field is set.
     */
    @java.lang.Override public boolean hasServerType() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>required .AnnounceMessage.ServerType serverType = 4;</code>
     * @return The serverType.
     */
    @java.lang.Override public de.pokerth.protocol.ProtoBuf.AnnounceMessage.ServerType getServerType() {
      de.pokerth.protocol.ProtoBuf.AnnounceMessage.ServerType result = de.pokerth.protocol.ProtoBuf.AnnounceMessage.ServerType.forNumber(serverType_);
      return result == null ? de.pokerth.protocol.ProtoBuf.AnnounceMessage.ServerType.serverTypeLAN : result;
    }

    public static final int NUMPLAYERSONSERVER_FIELD_NUMBER = 5;
    private int numPlayersOnServer_ = 0;
    /**
     * <code>required uint32 numPlayersOnServer = 5;</code>
     * @return Whether the numPlayersOnServer field is set.
     */
    @java.lang.Override
    public boolean hasNumPlayersOnServer() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <code>required uint32 numPlayersOnServer = 5;</code>
     * @return The numPlayersOnServer.
     */
    @java.lang.Override
    public int getNumPlayersOnServer() {
      return numPlayersOnServer_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasProtocolVersion()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasLatestGameVersion()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasLatestBetaRevision()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasServerType()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasNumPlayersOnServer()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getProtocolVersion().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getLatestGameVersion().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getProtocolVersion());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeMessage(2, getLatestGameVersion());
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeUInt32(3, latestBetaRevision_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeEnum(4, serverType_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeUInt32(5, numPlayersOnServer_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getProtocolVersion());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getLatestGameVersion());
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, latestBetaRevision_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(4, serverType_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, numPlayersOnServer_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.AnnounceMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.AnnounceMessage other = (de.pokerth.protocol.ProtoBuf.AnnounceMessage) obj;

      if (hasProtocolVersion() != other.hasProtocolVersion()) return false;
      if (hasProtocolVersion()) {
        if (!getProtocolVersion()
            .equals(other.getProtocolVersion())) return false;
      }
      if (hasLatestGameVersion() != other.hasLatestGameVersion()) return false;
      if (hasLatestGameVersion()) {
        if (!getLatestGameVersion()
            .equals(other.getLatestGameVersion())) return false;
      }
      if (hasLatestBetaRevision() != other.hasLatestBetaRevision()) return false;
      if (hasLatestBetaRevision()) {
        if (getLatestBetaRevision()
            != other.getLatestBetaRevision()) return false;
      }
      if (hasServerType() != other.hasServerType()) return false;
      if (hasServerType()) {
        if (serverType_ != other.serverType_) return false;
      }
      if (hasNumPlayersOnServer() != other.hasNumPlayersOnServer()) return false;
      if (hasNumPlayersOnServer()) {
        if (getNumPlayersOnServer()
            != other.getNumPlayersOnServer()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasProtocolVersion()) {
        hash = (37 * hash) + PROTOCOLVERSION_FIELD_NUMBER;
        hash = (53 * hash) + getProtocolVersion().hashCode();
      }
      if (hasLatestGameVersion()) {
        hash = (37 * hash) + LATESTGAMEVERSION_FIELD_NUMBER;
        hash = (53 * hash) + getLatestGameVersion().hashCode();
      }
      if (hasLatestBetaRevision()) {
        hash = (37 * hash) + LATESTBETAREVISION_FIELD_NUMBER;
        hash = (53 * hash) + getLatestBetaRevision();
      }
      if (hasServerType()) {
        hash = (37 * hash) + SERVERTYPE_FIELD_NUMBER;
        hash = (53 * hash) + serverType_;
      }
      if (hasNumPlayersOnServer()) {
        hash = (37 * hash) + NUMPLAYERSONSERVER_FIELD_NUMBER;
        hash = (53 * hash) + getNumPlayersOnServer();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.AnnounceMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AnnounceMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AnnounceMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AnnounceMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AnnounceMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AnnounceMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AnnounceMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.AnnounceMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AnnounceMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.AnnounceMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AnnounceMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.AnnounceMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.AnnounceMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code AnnounceMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:AnnounceMessage)
        de.pokerth.protocol.ProtoBuf.AnnounceMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_AnnounceMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_AnnounceMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.AnnounceMessage.class, de.pokerth.protocol.ProtoBuf.AnnounceMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.AnnounceMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getProtocolVersionFieldBuilder();
          getLatestGameVersionFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        protocolVersion_ = null;
        if (protocolVersionBuilder_ != null) {
          protocolVersionBuilder_.dispose();
          protocolVersionBuilder_ = null;
        }
        latestGameVersion_ = null;
        if (latestGameVersionBuilder_ != null) {
          latestGameVersionBuilder_.dispose();
          latestGameVersionBuilder_ = null;
        }
        latestBetaRevision_ = 0;
        serverType_ = 0;
        numPlayersOnServer_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_AnnounceMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.AnnounceMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.AnnounceMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.AnnounceMessage build() {
        de.pokerth.protocol.ProtoBuf.AnnounceMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.AnnounceMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.AnnounceMessage result = new de.pokerth.protocol.ProtoBuf.AnnounceMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.AnnounceMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.protocolVersion_ = protocolVersionBuilder_ == null
              ? protocolVersion_
              : protocolVersionBuilder_.build();
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.latestGameVersion_ = latestGameVersionBuilder_ == null
              ? latestGameVersion_
              : latestGameVersionBuilder_.build();
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.latestBetaRevision_ = latestBetaRevision_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.serverType_ = serverType_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.numPlayersOnServer_ = numPlayersOnServer_;
          to_bitField0_ |= 0x00000010;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.AnnounceMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.AnnounceMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.AnnounceMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.AnnounceMessage.getDefaultInstance()) return this;
        if (other.hasProtocolVersion()) {
          mergeProtocolVersion(other.getProtocolVersion());
        }
        if (other.hasLatestGameVersion()) {
          mergeLatestGameVersion(other.getLatestGameVersion());
        }
        if (other.hasLatestBetaRevision()) {
          setLatestBetaRevision(other.getLatestBetaRevision());
        }
        if (other.hasServerType()) {
          setServerType(other.getServerType());
        }
        if (other.hasNumPlayersOnServer()) {
          setNumPlayersOnServer(other.getNumPlayersOnServer());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasProtocolVersion()) {
          return false;
        }
        if (!hasLatestGameVersion()) {
          return false;
        }
        if (!hasLatestBetaRevision()) {
          return false;
        }
        if (!hasServerType()) {
          return false;
        }
        if (!hasNumPlayersOnServer()) {
          return false;
        }
        if (!getProtocolVersion().isInitialized()) {
          return false;
        }
        if (!getLatestGameVersion().isInitialized()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                input.readMessage(
                    getProtocolVersionFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                input.readMessage(
                    getLatestGameVersionFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 24: {
                latestBetaRevision_ = input.readUInt32();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 32: {
                int tmpRaw = input.readEnum();
                de.pokerth.protocol.ProtoBuf.AnnounceMessage.ServerType tmpValue =
                    de.pokerth.protocol.ProtoBuf.AnnounceMessage.ServerType.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(4, tmpRaw);
                } else {
                  serverType_ = tmpRaw;
                  bitField0_ |= 0x00000008;
                }
                break;
              } // case 32
              case 40: {
                numPlayersOnServer_ = input.readUInt32();
                bitField0_ |= 0x00000010;
                break;
              } // case 40
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version protocolVersion_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version, de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.Builder, de.pokerth.protocol.ProtoBuf.AnnounceMessage.VersionOrBuilder> protocolVersionBuilder_;
      /**
       * <code>required .AnnounceMessage.Version protocolVersion = 1;</code>
       * @return Whether the protocolVersion field is set.
       */
      public boolean hasProtocolVersion() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required .AnnounceMessage.Version protocolVersion = 1;</code>
       * @return The protocolVersion.
       */
      public de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version getProtocolVersion() {
        if (protocolVersionBuilder_ == null) {
          return protocolVersion_ == null ? de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.getDefaultInstance() : protocolVersion_;
        } else {
          return protocolVersionBuilder_.getMessage();
        }
      }
      /**
       * <code>required .AnnounceMessage.Version protocolVersion = 1;</code>
       */
      public Builder setProtocolVersion(de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version value) {
        if (protocolVersionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          protocolVersion_ = value;
        } else {
          protocolVersionBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required .AnnounceMessage.Version protocolVersion = 1;</code>
       */
      public Builder setProtocolVersion(
          de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.Builder builderForValue) {
        if (protocolVersionBuilder_ == null) {
          protocolVersion_ = builderForValue.build();
        } else {
          protocolVersionBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required .AnnounceMessage.Version protocolVersion = 1;</code>
       */
      public Builder mergeProtocolVersion(de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version value) {
        if (protocolVersionBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
            protocolVersion_ != null &&
            protocolVersion_ != de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.getDefaultInstance()) {
            getProtocolVersionBuilder().mergeFrom(value);
          } else {
            protocolVersion_ = value;
          }
        } else {
          protocolVersionBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required .AnnounceMessage.Version protocolVersion = 1;</code>
       */
      public Builder clearProtocolVersion() {
        bitField0_ = (bitField0_ & ~0x00000001);
        protocolVersion_ = null;
        if (protocolVersionBuilder_ != null) {
          protocolVersionBuilder_.dispose();
          protocolVersionBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>required .AnnounceMessage.Version protocolVersion = 1;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.Builder getProtocolVersionBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getProtocolVersionFieldBuilder().getBuilder();
      }
      /**
       * <code>required .AnnounceMessage.Version protocolVersion = 1;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AnnounceMessage.VersionOrBuilder getProtocolVersionOrBuilder() {
        if (protocolVersionBuilder_ != null) {
          return protocolVersionBuilder_.getMessageOrBuilder();
        } else {
          return protocolVersion_ == null ?
              de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.getDefaultInstance() : protocolVersion_;
        }
      }
      /**
       * <code>required .AnnounceMessage.Version protocolVersion = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version, de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.Builder, de.pokerth.protocol.ProtoBuf.AnnounceMessage.VersionOrBuilder> 
          getProtocolVersionFieldBuilder() {
        if (protocolVersionBuilder_ == null) {
          protocolVersionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version, de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.Builder, de.pokerth.protocol.ProtoBuf.AnnounceMessage.VersionOrBuilder>(
                  getProtocolVersion(),
                  getParentForChildren(),
                  isClean());
          protocolVersion_ = null;
        }
        return protocolVersionBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version latestGameVersion_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version, de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.Builder, de.pokerth.protocol.ProtoBuf.AnnounceMessage.VersionOrBuilder> latestGameVersionBuilder_;
      /**
       * <code>required .AnnounceMessage.Version latestGameVersion = 2;</code>
       * @return Whether the latestGameVersion field is set.
       */
      public boolean hasLatestGameVersion() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required .AnnounceMessage.Version latestGameVersion = 2;</code>
       * @return The latestGameVersion.
       */
      public de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version getLatestGameVersion() {
        if (latestGameVersionBuilder_ == null) {
          return latestGameVersion_ == null ? de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.getDefaultInstance() : latestGameVersion_;
        } else {
          return latestGameVersionBuilder_.getMessage();
        }
      }
      /**
       * <code>required .AnnounceMessage.Version latestGameVersion = 2;</code>
       */
      public Builder setLatestGameVersion(de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version value) {
        if (latestGameVersionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          latestGameVersion_ = value;
        } else {
          latestGameVersionBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>required .AnnounceMessage.Version latestGameVersion = 2;</code>
       */
      public Builder setLatestGameVersion(
          de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.Builder builderForValue) {
        if (latestGameVersionBuilder_ == null) {
          latestGameVersion_ = builderForValue.build();
        } else {
          latestGameVersionBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>required .AnnounceMessage.Version latestGameVersion = 2;</code>
       */
      public Builder mergeLatestGameVersion(de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version value) {
        if (latestGameVersionBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0) &&
            latestGameVersion_ != null &&
            latestGameVersion_ != de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.getDefaultInstance()) {
            getLatestGameVersionBuilder().mergeFrom(value);
          } else {
            latestGameVersion_ = value;
          }
        } else {
          latestGameVersionBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>required .AnnounceMessage.Version latestGameVersion = 2;</code>
       */
      public Builder clearLatestGameVersion() {
        bitField0_ = (bitField0_ & ~0x00000002);
        latestGameVersion_ = null;
        if (latestGameVersionBuilder_ != null) {
          latestGameVersionBuilder_.dispose();
          latestGameVersionBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>required .AnnounceMessage.Version latestGameVersion = 2;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.Builder getLatestGameVersionBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getLatestGameVersionFieldBuilder().getBuilder();
      }
      /**
       * <code>required .AnnounceMessage.Version latestGameVersion = 2;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AnnounceMessage.VersionOrBuilder getLatestGameVersionOrBuilder() {
        if (latestGameVersionBuilder_ != null) {
          return latestGameVersionBuilder_.getMessageOrBuilder();
        } else {
          return latestGameVersion_ == null ?
              de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.getDefaultInstance() : latestGameVersion_;
        }
      }
      /**
       * <code>required .AnnounceMessage.Version latestGameVersion = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version, de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.Builder, de.pokerth.protocol.ProtoBuf.AnnounceMessage.VersionOrBuilder> 
          getLatestGameVersionFieldBuilder() {
        if (latestGameVersionBuilder_ == null) {
          latestGameVersionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version, de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.Builder, de.pokerth.protocol.ProtoBuf.AnnounceMessage.VersionOrBuilder>(
                  getLatestGameVersion(),
                  getParentForChildren(),
                  isClean());
          latestGameVersion_ = null;
        }
        return latestGameVersionBuilder_;
      }

      private int latestBetaRevision_ ;
      /**
       * <code>required uint32 latestBetaRevision = 3;</code>
       * @return Whether the latestBetaRevision field is set.
       */
      @java.lang.Override
      public boolean hasLatestBetaRevision() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>required uint32 latestBetaRevision = 3;</code>
       * @return The latestBetaRevision.
       */
      @java.lang.Override
      public int getLatestBetaRevision() {
        return latestBetaRevision_;
      }
      /**
       * <code>required uint32 latestBetaRevision = 3;</code>
       * @param value The latestBetaRevision to set.
       * @return This builder for chaining.
       */
      public Builder setLatestBetaRevision(int value) {
        
        latestBetaRevision_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 latestBetaRevision = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearLatestBetaRevision() {
        bitField0_ = (bitField0_ & ~0x00000004);
        latestBetaRevision_ = 0;
        onChanged();
        return this;
      }

      private int serverType_ = 0;
      /**
       * <code>required .AnnounceMessage.ServerType serverType = 4;</code>
       * @return Whether the serverType field is set.
       */
      @java.lang.Override public boolean hasServerType() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>required .AnnounceMessage.ServerType serverType = 4;</code>
       * @return The serverType.
       */
      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.AnnounceMessage.ServerType getServerType() {
        de.pokerth.protocol.ProtoBuf.AnnounceMessage.ServerType result = de.pokerth.protocol.ProtoBuf.AnnounceMessage.ServerType.forNumber(serverType_);
        return result == null ? de.pokerth.protocol.ProtoBuf.AnnounceMessage.ServerType.serverTypeLAN : result;
      }
      /**
       * <code>required .AnnounceMessage.ServerType serverType = 4;</code>
       * @param value The serverType to set.
       * @return This builder for chaining.
       */
      public Builder setServerType(de.pokerth.protocol.ProtoBuf.AnnounceMessage.ServerType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        serverType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>required .AnnounceMessage.ServerType serverType = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearServerType() {
        bitField0_ = (bitField0_ & ~0x00000008);
        serverType_ = 0;
        onChanged();
        return this;
      }

      private int numPlayersOnServer_ ;
      /**
       * <code>required uint32 numPlayersOnServer = 5;</code>
       * @return Whether the numPlayersOnServer field is set.
       */
      @java.lang.Override
      public boolean hasNumPlayersOnServer() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <code>required uint32 numPlayersOnServer = 5;</code>
       * @return The numPlayersOnServer.
       */
      @java.lang.Override
      public int getNumPlayersOnServer() {
        return numPlayersOnServer_;
      }
      /**
       * <code>required uint32 numPlayersOnServer = 5;</code>
       * @param value The numPlayersOnServer to set.
       * @return This builder for chaining.
       */
      public Builder setNumPlayersOnServer(int value) {
        
        numPlayersOnServer_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 numPlayersOnServer = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearNumPlayersOnServer() {
        bitField0_ = (bitField0_ & ~0x00000010);
        numPlayersOnServer_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:AnnounceMessage)
    }

    // @@protoc_insertion_point(class_scope:AnnounceMessage)
    private static final de.pokerth.protocol.ProtoBuf.AnnounceMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.AnnounceMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.AnnounceMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<AnnounceMessage>
        PARSER = new com.google.protobuf.AbstractParser<AnnounceMessage>() {
      @java.lang.Override
      public AnnounceMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<AnnounceMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.AnnounceMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required .AnnounceMessage.Version requestedVersion = 1;</code>
     * @return Whether the requestedVersion field is set.
     */
    boolean hasRequestedVersion();
    /**
     * <code>required .AnnounceMessage.Version requestedVersion = 1;</code>
     * @return The requestedVersion.
     */
    de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version getRequestedVersion();
    /**
     * <code>required .AnnounceMessage.Version requestedVersion = 1;</code>
     */
    de.pokerth.protocol.ProtoBuf.AnnounceMessage.VersionOrBuilder getRequestedVersionOrBuilder();

    /**
     * <code>required uint32 buildId = 2;</code>
     * @return Whether the buildId field is set.
     */
    boolean hasBuildId();
    /**
     * <code>required uint32 buildId = 2;</code>
     * @return The buildId.
     */
    int getBuildId();

    /**
     * <code>optional bytes myLastSessionId = 3;</code>
     * @return Whether the myLastSessionId field is set.
     */
    boolean hasMyLastSessionId();
    /**
     * <code>optional bytes myLastSessionId = 3;</code>
     * @return The myLastSessionId.
     */
    com.google.protobuf.ByteString getMyLastSessionId();

    /**
     * <code>optional string authServerPassword = 4;</code>
     * @return Whether the authServerPassword field is set.
     */
    boolean hasAuthServerPassword();
    /**
     * <code>optional string authServerPassword = 4;</code>
     * @return The authServerPassword.
     */
    java.lang.String getAuthServerPassword();
    /**
     * <code>optional string authServerPassword = 4;</code>
     * @return The bytes for authServerPassword.
     */
    com.google.protobuf.ByteString
        getAuthServerPasswordBytes();

    /**
     * <code>required .InitMessage.LoginType login = 5;</code>
     * @return Whether the login field is set.
     */
    boolean hasLogin();
    /**
     * <code>required .InitMessage.LoginType login = 5;</code>
     * @return The login.
     */
    de.pokerth.protocol.ProtoBuf.InitMessage.LoginType getLogin();

    /**
     * <pre>
     * Only used for guest login or unauthenticated login.
     * </pre>
     *
     * <code>optional string nickName = 6;</code>
     * @return Whether the nickName field is set.
     */
    boolean hasNickName();
    /**
     * <pre>
     * Only used for guest login or unauthenticated login.
     * </pre>
     *
     * <code>optional string nickName = 6;</code>
     * @return The nickName.
     */
    java.lang.String getNickName();
    /**
     * <pre>
     * Only used for guest login or unauthenticated login.
     * </pre>
     *
     * <code>optional string nickName = 6;</code>
     * @return The bytes for nickName.
     */
    com.google.protobuf.ByteString
        getNickNameBytes();

    /**
     * <pre>
     * Authenticated login data is according to SCRAM SHA-1
     * </pre>
     *
     * <code>optional bytes clientUserData = 7;</code>
     * @return Whether the clientUserData field is set.
     */
    boolean hasClientUserData();
    /**
     * <pre>
     * Authenticated login data is according to SCRAM SHA-1
     * </pre>
     *
     * <code>optional bytes clientUserData = 7;</code>
     * @return The clientUserData.
     */
    com.google.protobuf.ByteString getClientUserData();

    /**
     * <pre>
     * Ignored for guest login.
     * </pre>
     *
     * <code>optional bytes avatarHash = 8;</code>
     * @return Whether the avatarHash field is set.
     */
    boolean hasAvatarHash();
    /**
     * <pre>
     * Ignored for guest login.
     * </pre>
     *
     * <code>optional bytes avatarHash = 8;</code>
     * @return The avatarHash.
     */
    com.google.protobuf.ByteString getAvatarHash();
  }
  /**
   * <pre>
   * buildId contains a constant build id (specific for Windows/Linux/Mac builds)
   * </pre>
   *
   * Protobuf type {@code InitMessage}
   */
  public static final class InitMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:InitMessage)
      InitMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use InitMessage.newBuilder() to construct.
    private InitMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private InitMessage() {
      myLastSessionId_ = com.google.protobuf.ByteString.EMPTY;
      authServerPassword_ = "";
      login_ = 0;
      nickName_ = "";
      clientUserData_ = com.google.protobuf.ByteString.EMPTY;
      avatarHash_ = com.google.protobuf.ByteString.EMPTY;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new InitMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_InitMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_InitMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.InitMessage.class, de.pokerth.protocol.ProtoBuf.InitMessage.Builder.class);
    }

    /**
     * Protobuf enum {@code InitMessage.LoginType}
     */
    public enum LoginType
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>guestLogin = 0;</code>
       */
      guestLogin(0),
      /**
       * <code>authenticatedLogin = 1;</code>
       */
      authenticatedLogin(1),
      /**
       * <code>unauthenticatedLogin = 2;</code>
       */
      unauthenticatedLogin(2),
      ;

      /**
       * <code>guestLogin = 0;</code>
       */
      public static final int guestLogin_VALUE = 0;
      /**
       * <code>authenticatedLogin = 1;</code>
       */
      public static final int authenticatedLogin_VALUE = 1;
      /**
       * <code>unauthenticatedLogin = 2;</code>
       */
      public static final int unauthenticatedLogin_VALUE = 2;


      public final int getNumber() {
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static LoginType valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static LoginType forNumber(int value) {
        switch (value) {
          case 0: return guestLogin;
          case 1: return authenticatedLogin;
          case 2: return unauthenticatedLogin;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<LoginType>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          LoginType> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<LoginType>() {
              public LoginType findValueByNumber(int number) {
                return LoginType.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.InitMessage.getDescriptor().getEnumTypes().get(0);
      }

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

      public static LoginType 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 value;

      private LoginType(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:InitMessage.LoginType)
    }

    private int bitField0_;
    public static final int REQUESTEDVERSION_FIELD_NUMBER = 1;
    private de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version requestedVersion_;
    /**
     * <code>required .AnnounceMessage.Version requestedVersion = 1;</code>
     * @return Whether the requestedVersion field is set.
     */
    @java.lang.Override
    public boolean hasRequestedVersion() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required .AnnounceMessage.Version requestedVersion = 1;</code>
     * @return The requestedVersion.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version getRequestedVersion() {
      return requestedVersion_ == null ? de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.getDefaultInstance() : requestedVersion_;
    }
    /**
     * <code>required .AnnounceMessage.Version requestedVersion = 1;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.AnnounceMessage.VersionOrBuilder getRequestedVersionOrBuilder() {
      return requestedVersion_ == null ? de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.getDefaultInstance() : requestedVersion_;
    }

    public static final int BUILDID_FIELD_NUMBER = 2;
    private int buildId_ = 0;
    /**
     * <code>required uint32 buildId = 2;</code>
     * @return Whether the buildId field is set.
     */
    @java.lang.Override
    public boolean hasBuildId() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required uint32 buildId = 2;</code>
     * @return The buildId.
     */
    @java.lang.Override
    public int getBuildId() {
      return buildId_;
    }

    public static final int MYLASTSESSIONID_FIELD_NUMBER = 3;
    private com.google.protobuf.ByteString myLastSessionId_ = com.google.protobuf.ByteString.EMPTY;
    /**
     * <code>optional bytes myLastSessionId = 3;</code>
     * @return Whether the myLastSessionId field is set.
     */
    @java.lang.Override
    public boolean hasMyLastSessionId() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional bytes myLastSessionId = 3;</code>
     * @return The myLastSessionId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getMyLastSessionId() {
      return myLastSessionId_;
    }

    public static final int AUTHSERVERPASSWORD_FIELD_NUMBER = 4;
    @SuppressWarnings("serial")
    private volatile java.lang.Object authServerPassword_ = "";
    /**
     * <code>optional string authServerPassword = 4;</code>
     * @return Whether the authServerPassword field is set.
     */
    @java.lang.Override
    public boolean hasAuthServerPassword() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>optional string authServerPassword = 4;</code>
     * @return The authServerPassword.
     */
    @java.lang.Override
    public java.lang.String getAuthServerPassword() {
      java.lang.Object ref = authServerPassword_;
      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()) {
          authServerPassword_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string authServerPassword = 4;</code>
     * @return The bytes for authServerPassword.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getAuthServerPasswordBytes() {
      java.lang.Object ref = authServerPassword_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        authServerPassword_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int LOGIN_FIELD_NUMBER = 5;
    private int login_ = 0;
    /**
     * <code>required .InitMessage.LoginType login = 5;</code>
     * @return Whether the login field is set.
     */
    @java.lang.Override public boolean hasLogin() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <code>required .InitMessage.LoginType login = 5;</code>
     * @return The login.
     */
    @java.lang.Override public de.pokerth.protocol.ProtoBuf.InitMessage.LoginType getLogin() {
      de.pokerth.protocol.ProtoBuf.InitMessage.LoginType result = de.pokerth.protocol.ProtoBuf.InitMessage.LoginType.forNumber(login_);
      return result == null ? de.pokerth.protocol.ProtoBuf.InitMessage.LoginType.guestLogin : result;
    }

    public static final int NICKNAME_FIELD_NUMBER = 6;
    @SuppressWarnings("serial")
    private volatile java.lang.Object nickName_ = "";
    /**
     * <pre>
     * Only used for guest login or unauthenticated login.
     * </pre>
     *
     * <code>optional string nickName = 6;</code>
     * @return Whether the nickName field is set.
     */
    @java.lang.Override
    public boolean hasNickName() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <pre>
     * Only used for guest login or unauthenticated login.
     * </pre>
     *
     * <code>optional string nickName = 6;</code>
     * @return The nickName.
     */
    @java.lang.Override
    public java.lang.String getNickName() {
      java.lang.Object ref = nickName_;
      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()) {
          nickName_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * Only used for guest login or unauthenticated login.
     * </pre>
     *
     * <code>optional string nickName = 6;</code>
     * @return The bytes for nickName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getNickNameBytes() {
      java.lang.Object ref = nickName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        nickName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CLIENTUSERDATA_FIELD_NUMBER = 7;
    private com.google.protobuf.ByteString clientUserData_ = com.google.protobuf.ByteString.EMPTY;
    /**
     * <pre>
     * Authenticated login data is according to SCRAM SHA-1
     * </pre>
     *
     * <code>optional bytes clientUserData = 7;</code>
     * @return Whether the clientUserData field is set.
     */
    @java.lang.Override
    public boolean hasClientUserData() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <pre>
     * Authenticated login data is according to SCRAM SHA-1
     * </pre>
     *
     * <code>optional bytes clientUserData = 7;</code>
     * @return The clientUserData.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getClientUserData() {
      return clientUserData_;
    }

    public static final int AVATARHASH_FIELD_NUMBER = 8;
    private com.google.protobuf.ByteString avatarHash_ = com.google.protobuf.ByteString.EMPTY;
    /**
     * <pre>
     * Ignored for guest login.
     * </pre>
     *
     * <code>optional bytes avatarHash = 8;</code>
     * @return Whether the avatarHash field is set.
     */
    @java.lang.Override
    public boolean hasAvatarHash() {
      return ((bitField0_ & 0x00000080) != 0);
    }
    /**
     * <pre>
     * Ignored for guest login.
     * </pre>
     *
     * <code>optional bytes avatarHash = 8;</code>
     * @return The avatarHash.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getAvatarHash() {
      return avatarHash_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasRequestedVersion()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasBuildId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasLogin()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getRequestedVersion().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getRequestedVersion());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt32(2, buildId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeBytes(3, myLastSessionId_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, authServerPassword_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeEnum(5, login_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, nickName_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        output.writeBytes(7, clientUserData_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        output.writeBytes(8, avatarHash_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getRequestedVersion());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, buildId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, myLastSessionId_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, authServerPassword_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(5, login_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, nickName_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(7, clientUserData_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(8, avatarHash_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.InitMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.InitMessage other = (de.pokerth.protocol.ProtoBuf.InitMessage) obj;

      if (hasRequestedVersion() != other.hasRequestedVersion()) return false;
      if (hasRequestedVersion()) {
        if (!getRequestedVersion()
            .equals(other.getRequestedVersion())) return false;
      }
      if (hasBuildId() != other.hasBuildId()) return false;
      if (hasBuildId()) {
        if (getBuildId()
            != other.getBuildId()) return false;
      }
      if (hasMyLastSessionId() != other.hasMyLastSessionId()) return false;
      if (hasMyLastSessionId()) {
        if (!getMyLastSessionId()
            .equals(other.getMyLastSessionId())) return false;
      }
      if (hasAuthServerPassword() != other.hasAuthServerPassword()) return false;
      if (hasAuthServerPassword()) {
        if (!getAuthServerPassword()
            .equals(other.getAuthServerPassword())) return false;
      }
      if (hasLogin() != other.hasLogin()) return false;
      if (hasLogin()) {
        if (login_ != other.login_) return false;
      }
      if (hasNickName() != other.hasNickName()) return false;
      if (hasNickName()) {
        if (!getNickName()
            .equals(other.getNickName())) return false;
      }
      if (hasClientUserData() != other.hasClientUserData()) return false;
      if (hasClientUserData()) {
        if (!getClientUserData()
            .equals(other.getClientUserData())) return false;
      }
      if (hasAvatarHash() != other.hasAvatarHash()) return false;
      if (hasAvatarHash()) {
        if (!getAvatarHash()
            .equals(other.getAvatarHash())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasRequestedVersion()) {
        hash = (37 * hash) + REQUESTEDVERSION_FIELD_NUMBER;
        hash = (53 * hash) + getRequestedVersion().hashCode();
      }
      if (hasBuildId()) {
        hash = (37 * hash) + BUILDID_FIELD_NUMBER;
        hash = (53 * hash) + getBuildId();
      }
      if (hasMyLastSessionId()) {
        hash = (37 * hash) + MYLASTSESSIONID_FIELD_NUMBER;
        hash = (53 * hash) + getMyLastSessionId().hashCode();
      }
      if (hasAuthServerPassword()) {
        hash = (37 * hash) + AUTHSERVERPASSWORD_FIELD_NUMBER;
        hash = (53 * hash) + getAuthServerPassword().hashCode();
      }
      if (hasLogin()) {
        hash = (37 * hash) + LOGIN_FIELD_NUMBER;
        hash = (53 * hash) + login_;
      }
      if (hasNickName()) {
        hash = (37 * hash) + NICKNAME_FIELD_NUMBER;
        hash = (53 * hash) + getNickName().hashCode();
      }
      if (hasClientUserData()) {
        hash = (37 * hash) + CLIENTUSERDATA_FIELD_NUMBER;
        hash = (53 * hash) + getClientUserData().hashCode();
      }
      if (hasAvatarHash()) {
        hash = (37 * hash) + AVATARHASH_FIELD_NUMBER;
        hash = (53 * hash) + getAvatarHash().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.InitMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.InitMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.InitMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.InitMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.InitMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.InitMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.InitMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.InitMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.InitMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.InitMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.InitMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.InitMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.InitMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * buildId contains a constant build id (specific for Windows/Linux/Mac builds)
     * </pre>
     *
     * Protobuf type {@code InitMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:InitMessage)
        de.pokerth.protocol.ProtoBuf.InitMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_InitMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_InitMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.InitMessage.class, de.pokerth.protocol.ProtoBuf.InitMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.InitMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getRequestedVersionFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        requestedVersion_ = null;
        if (requestedVersionBuilder_ != null) {
          requestedVersionBuilder_.dispose();
          requestedVersionBuilder_ = null;
        }
        buildId_ = 0;
        myLastSessionId_ = com.google.protobuf.ByteString.EMPTY;
        authServerPassword_ = "";
        login_ = 0;
        nickName_ = "";
        clientUserData_ = com.google.protobuf.ByteString.EMPTY;
        avatarHash_ = com.google.protobuf.ByteString.EMPTY;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_InitMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.InitMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.InitMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.InitMessage build() {
        de.pokerth.protocol.ProtoBuf.InitMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.InitMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.InitMessage result = new de.pokerth.protocol.ProtoBuf.InitMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.InitMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.requestedVersion_ = requestedVersionBuilder_ == null
              ? requestedVersion_
              : requestedVersionBuilder_.build();
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.buildId_ = buildId_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.myLastSessionId_ = myLastSessionId_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.authServerPassword_ = authServerPassword_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.login_ = login_;
          to_bitField0_ |= 0x00000010;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.nickName_ = nickName_;
          to_bitField0_ |= 0x00000020;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.clientUserData_ = clientUserData_;
          to_bitField0_ |= 0x00000040;
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.avatarHash_ = avatarHash_;
          to_bitField0_ |= 0x00000080;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.InitMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.InitMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.InitMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.InitMessage.getDefaultInstance()) return this;
        if (other.hasRequestedVersion()) {
          mergeRequestedVersion(other.getRequestedVersion());
        }
        if (other.hasBuildId()) {
          setBuildId(other.getBuildId());
        }
        if (other.hasMyLastSessionId()) {
          setMyLastSessionId(other.getMyLastSessionId());
        }
        if (other.hasAuthServerPassword()) {
          authServerPassword_ = other.authServerPassword_;
          bitField0_ |= 0x00000008;
          onChanged();
        }
        if (other.hasLogin()) {
          setLogin(other.getLogin());
        }
        if (other.hasNickName()) {
          nickName_ = other.nickName_;
          bitField0_ |= 0x00000020;
          onChanged();
        }
        if (other.hasClientUserData()) {
          setClientUserData(other.getClientUserData());
        }
        if (other.hasAvatarHash()) {
          setAvatarHash(other.getAvatarHash());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasRequestedVersion()) {
          return false;
        }
        if (!hasBuildId()) {
          return false;
        }
        if (!hasLogin()) {
          return false;
        }
        if (!getRequestedVersion().isInitialized()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                input.readMessage(
                    getRequestedVersionFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 16: {
                buildId_ = input.readUInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 26: {
                myLastSessionId_ = input.readBytes();
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 34: {
                authServerPassword_ = input.readBytes();
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              case 40: {
                int tmpRaw = input.readEnum();
                de.pokerth.protocol.ProtoBuf.InitMessage.LoginType tmpValue =
                    de.pokerth.protocol.ProtoBuf.InitMessage.LoginType.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(5, tmpRaw);
                } else {
                  login_ = tmpRaw;
                  bitField0_ |= 0x00000010;
                }
                break;
              } // case 40
              case 50: {
                nickName_ = input.readBytes();
                bitField0_ |= 0x00000020;
                break;
              } // case 50
              case 58: {
                clientUserData_ = input.readBytes();
                bitField0_ |= 0x00000040;
                break;
              } // case 58
              case 66: {
                avatarHash_ = input.readBytes();
                bitField0_ |= 0x00000080;
                break;
              } // case 66
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version requestedVersion_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version, de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.Builder, de.pokerth.protocol.ProtoBuf.AnnounceMessage.VersionOrBuilder> requestedVersionBuilder_;
      /**
       * <code>required .AnnounceMessage.Version requestedVersion = 1;</code>
       * @return Whether the requestedVersion field is set.
       */
      public boolean hasRequestedVersion() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required .AnnounceMessage.Version requestedVersion = 1;</code>
       * @return The requestedVersion.
       */
      public de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version getRequestedVersion() {
        if (requestedVersionBuilder_ == null) {
          return requestedVersion_ == null ? de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.getDefaultInstance() : requestedVersion_;
        } else {
          return requestedVersionBuilder_.getMessage();
        }
      }
      /**
       * <code>required .AnnounceMessage.Version requestedVersion = 1;</code>
       */
      public Builder setRequestedVersion(de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version value) {
        if (requestedVersionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          requestedVersion_ = value;
        } else {
          requestedVersionBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required .AnnounceMessage.Version requestedVersion = 1;</code>
       */
      public Builder setRequestedVersion(
          de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.Builder builderForValue) {
        if (requestedVersionBuilder_ == null) {
          requestedVersion_ = builderForValue.build();
        } else {
          requestedVersionBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required .AnnounceMessage.Version requestedVersion = 1;</code>
       */
      public Builder mergeRequestedVersion(de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version value) {
        if (requestedVersionBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
            requestedVersion_ != null &&
            requestedVersion_ != de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.getDefaultInstance()) {
            getRequestedVersionBuilder().mergeFrom(value);
          } else {
            requestedVersion_ = value;
          }
        } else {
          requestedVersionBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required .AnnounceMessage.Version requestedVersion = 1;</code>
       */
      public Builder clearRequestedVersion() {
        bitField0_ = (bitField0_ & ~0x00000001);
        requestedVersion_ = null;
        if (requestedVersionBuilder_ != null) {
          requestedVersionBuilder_.dispose();
          requestedVersionBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>required .AnnounceMessage.Version requestedVersion = 1;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.Builder getRequestedVersionBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getRequestedVersionFieldBuilder().getBuilder();
      }
      /**
       * <code>required .AnnounceMessage.Version requestedVersion = 1;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AnnounceMessage.VersionOrBuilder getRequestedVersionOrBuilder() {
        if (requestedVersionBuilder_ != null) {
          return requestedVersionBuilder_.getMessageOrBuilder();
        } else {
          return requestedVersion_ == null ?
              de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.getDefaultInstance() : requestedVersion_;
        }
      }
      /**
       * <code>required .AnnounceMessage.Version requestedVersion = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version, de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.Builder, de.pokerth.protocol.ProtoBuf.AnnounceMessage.VersionOrBuilder> 
          getRequestedVersionFieldBuilder() {
        if (requestedVersionBuilder_ == null) {
          requestedVersionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version, de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.Builder, de.pokerth.protocol.ProtoBuf.AnnounceMessage.VersionOrBuilder>(
                  getRequestedVersion(),
                  getParentForChildren(),
                  isClean());
          requestedVersion_ = null;
        }
        return requestedVersionBuilder_;
      }

      private int buildId_ ;
      /**
       * <code>required uint32 buildId = 2;</code>
       * @return Whether the buildId field is set.
       */
      @java.lang.Override
      public boolean hasBuildId() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required uint32 buildId = 2;</code>
       * @return The buildId.
       */
      @java.lang.Override
      public int getBuildId() {
        return buildId_;
      }
      /**
       * <code>required uint32 buildId = 2;</code>
       * @param value The buildId to set.
       * @return This builder for chaining.
       */
      public Builder setBuildId(int value) {
        
        buildId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 buildId = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearBuildId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        buildId_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString myLastSessionId_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <code>optional bytes myLastSessionId = 3;</code>
       * @return Whether the myLastSessionId field is set.
       */
      @java.lang.Override
      public boolean hasMyLastSessionId() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>optional bytes myLastSessionId = 3;</code>
       * @return The myLastSessionId.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getMyLastSessionId() {
        return myLastSessionId_;
      }
      /**
       * <code>optional bytes myLastSessionId = 3;</code>
       * @param value The myLastSessionId to set.
       * @return This builder for chaining.
       */
      public Builder setMyLastSessionId(com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        myLastSessionId_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>optional bytes myLastSessionId = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearMyLastSessionId() {
        bitField0_ = (bitField0_ & ~0x00000004);
        myLastSessionId_ = getDefaultInstance().getMyLastSessionId();
        onChanged();
        return this;
      }

      private java.lang.Object authServerPassword_ = "";
      /**
       * <code>optional string authServerPassword = 4;</code>
       * @return Whether the authServerPassword field is set.
       */
      public boolean hasAuthServerPassword() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>optional string authServerPassword = 4;</code>
       * @return The authServerPassword.
       */
      public java.lang.String getAuthServerPassword() {
        java.lang.Object ref = authServerPassword_;
        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()) {
            authServerPassword_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string authServerPassword = 4;</code>
       * @return The bytes for authServerPassword.
       */
      public com.google.protobuf.ByteString
          getAuthServerPasswordBytes() {
        java.lang.Object ref = authServerPassword_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          authServerPassword_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string authServerPassword = 4;</code>
       * @param value The authServerPassword to set.
       * @return This builder for chaining.
       */
      public Builder setAuthServerPassword(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        authServerPassword_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>optional string authServerPassword = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearAuthServerPassword() {
        authServerPassword_ = getDefaultInstance().getAuthServerPassword();
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }
      /**
       * <code>optional string authServerPassword = 4;</code>
       * @param value The bytes for authServerPassword to set.
       * @return This builder for chaining.
       */
      public Builder setAuthServerPasswordBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        authServerPassword_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }

      private int login_ = 0;
      /**
       * <code>required .InitMessage.LoginType login = 5;</code>
       * @return Whether the login field is set.
       */
      @java.lang.Override public boolean hasLogin() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <code>required .InitMessage.LoginType login = 5;</code>
       * @return The login.
       */
      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.InitMessage.LoginType getLogin() {
        de.pokerth.protocol.ProtoBuf.InitMessage.LoginType result = de.pokerth.protocol.ProtoBuf.InitMessage.LoginType.forNumber(login_);
        return result == null ? de.pokerth.protocol.ProtoBuf.InitMessage.LoginType.guestLogin : result;
      }
      /**
       * <code>required .InitMessage.LoginType login = 5;</code>
       * @param value The login to set.
       * @return This builder for chaining.
       */
      public Builder setLogin(de.pokerth.protocol.ProtoBuf.InitMessage.LoginType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        login_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>required .InitMessage.LoginType login = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearLogin() {
        bitField0_ = (bitField0_ & ~0x00000010);
        login_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object nickName_ = "";
      /**
       * <pre>
       * Only used for guest login or unauthenticated login.
       * </pre>
       *
       * <code>optional string nickName = 6;</code>
       * @return Whether the nickName field is set.
       */
      public boolean hasNickName() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <pre>
       * Only used for guest login or unauthenticated login.
       * </pre>
       *
       * <code>optional string nickName = 6;</code>
       * @return The nickName.
       */
      public java.lang.String getNickName() {
        java.lang.Object ref = nickName_;
        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()) {
            nickName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * Only used for guest login or unauthenticated login.
       * </pre>
       *
       * <code>optional string nickName = 6;</code>
       * @return The bytes for nickName.
       */
      public com.google.protobuf.ByteString
          getNickNameBytes() {
        java.lang.Object ref = nickName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          nickName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * Only used for guest login or unauthenticated login.
       * </pre>
       *
       * <code>optional string nickName = 6;</code>
       * @param value The nickName to set.
       * @return This builder for chaining.
       */
      public Builder setNickName(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        nickName_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Only used for guest login or unauthenticated login.
       * </pre>
       *
       * <code>optional string nickName = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearNickName() {
        nickName_ = getDefaultInstance().getNickName();
        bitField0_ = (bitField0_ & ~0x00000020);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Only used for guest login or unauthenticated login.
       * </pre>
       *
       * <code>optional string nickName = 6;</code>
       * @param value The bytes for nickName to set.
       * @return This builder for chaining.
       */
      public Builder setNickNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        nickName_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString clientUserData_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <pre>
       * Authenticated login data is according to SCRAM SHA-1
       * </pre>
       *
       * <code>optional bytes clientUserData = 7;</code>
       * @return Whether the clientUserData field is set.
       */
      @java.lang.Override
      public boolean hasClientUserData() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <pre>
       * Authenticated login data is according to SCRAM SHA-1
       * </pre>
       *
       * <code>optional bytes clientUserData = 7;</code>
       * @return The clientUserData.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getClientUserData() {
        return clientUserData_;
      }
      /**
       * <pre>
       * Authenticated login data is according to SCRAM SHA-1
       * </pre>
       *
       * <code>optional bytes clientUserData = 7;</code>
       * @param value The clientUserData to set.
       * @return This builder for chaining.
       */
      public Builder setClientUserData(com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        clientUserData_ = value;
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Authenticated login data is according to SCRAM SHA-1
       * </pre>
       *
       * <code>optional bytes clientUserData = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearClientUserData() {
        bitField0_ = (bitField0_ & ~0x00000040);
        clientUserData_ = getDefaultInstance().getClientUserData();
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString avatarHash_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <pre>
       * Ignored for guest login.
       * </pre>
       *
       * <code>optional bytes avatarHash = 8;</code>
       * @return Whether the avatarHash field is set.
       */
      @java.lang.Override
      public boolean hasAvatarHash() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * <pre>
       * Ignored for guest login.
       * </pre>
       *
       * <code>optional bytes avatarHash = 8;</code>
       * @return The avatarHash.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getAvatarHash() {
        return avatarHash_;
      }
      /**
       * <pre>
       * Ignored for guest login.
       * </pre>
       *
       * <code>optional bytes avatarHash = 8;</code>
       * @param value The avatarHash to set.
       * @return This builder for chaining.
       */
      public Builder setAvatarHash(com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        avatarHash_ = value;
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Ignored for guest login.
       * </pre>
       *
       * <code>optional bytes avatarHash = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearAvatarHash() {
        bitField0_ = (bitField0_ & ~0x00000080);
        avatarHash_ = getDefaultInstance().getAvatarHash();
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:InitMessage)
    }

    // @@protoc_insertion_point(class_scope:InitMessage)
    private static final de.pokerth.protocol.ProtoBuf.InitMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.InitMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.InitMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<InitMessage>
        PARSER = new com.google.protobuf.AbstractParser<InitMessage>() {
      @java.lang.Override
      public InitMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<InitMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.InitMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required bytes serverChallenge = 1;</code>
     * @return Whether the serverChallenge field is set.
     */
    boolean hasServerChallenge();
    /**
     * <code>required bytes serverChallenge = 1;</code>
     * @return The serverChallenge.
     */
    com.google.protobuf.ByteString getServerChallenge();
  }
  /**
   * Protobuf type {@code AuthServerChallengeMessage}
   */
  public static final class AuthServerChallengeMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:AuthServerChallengeMessage)
      AuthServerChallengeMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use AuthServerChallengeMessage.newBuilder() to construct.
    private AuthServerChallengeMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private AuthServerChallengeMessage() {
      serverChallenge_ = com.google.protobuf.ByteString.EMPTY;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new AuthServerChallengeMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_AuthServerChallengeMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_AuthServerChallengeMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage.class, de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage.Builder.class);
    }

    private int bitField0_;
    public static final int SERVERCHALLENGE_FIELD_NUMBER = 1;
    private com.google.protobuf.ByteString serverChallenge_ = com.google.protobuf.ByteString.EMPTY;
    /**
     * <code>required bytes serverChallenge = 1;</code>
     * @return Whether the serverChallenge field is set.
     */
    @java.lang.Override
    public boolean hasServerChallenge() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required bytes serverChallenge = 1;</code>
     * @return The serverChallenge.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getServerChallenge() {
      return serverChallenge_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

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

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

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

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

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage other = (de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage) obj;

      if (hasServerChallenge() != other.hasServerChallenge()) return false;
      if (hasServerChallenge()) {
        if (!getServerChallenge()
            .equals(other.getServerChallenge())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasServerChallenge()) {
        hash = (37 * hash) + SERVERCHALLENGE_FIELD_NUMBER;
        hash = (53 * hash) + getServerChallenge().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code AuthServerChallengeMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:AuthServerChallengeMessage)
        de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_AuthServerChallengeMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_AuthServerChallengeMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage.class, de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        serverChallenge_ = com.google.protobuf.ByteString.EMPTY;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_AuthServerChallengeMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage build() {
        de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage result = new de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.serverChallenge_ = serverChallenge_;
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage.getDefaultInstance()) return this;
        if (other.hasServerChallenge()) {
          setServerChallenge(other.getServerChallenge());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasServerChallenge()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                serverChallenge_ = input.readBytes();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private com.google.protobuf.ByteString serverChallenge_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <code>required bytes serverChallenge = 1;</code>
       * @return Whether the serverChallenge field is set.
       */
      @java.lang.Override
      public boolean hasServerChallenge() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required bytes serverChallenge = 1;</code>
       * @return The serverChallenge.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getServerChallenge() {
        return serverChallenge_;
      }
      /**
       * <code>required bytes serverChallenge = 1;</code>
       * @param value The serverChallenge to set.
       * @return This builder for chaining.
       */
      public Builder setServerChallenge(com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        serverChallenge_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required bytes serverChallenge = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearServerChallenge() {
        bitField0_ = (bitField0_ & ~0x00000001);
        serverChallenge_ = getDefaultInstance().getServerChallenge();
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:AuthServerChallengeMessage)
    }

    // @@protoc_insertion_point(class_scope:AuthServerChallengeMessage)
    private static final de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<AuthServerChallengeMessage>
        PARSER = new com.google.protobuf.AbstractParser<AuthServerChallengeMessage>() {
      @java.lang.Override
      public AuthServerChallengeMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<AuthServerChallengeMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required bytes clientResponse = 1;</code>
     * @return Whether the clientResponse field is set.
     */
    boolean hasClientResponse();
    /**
     * <code>required bytes clientResponse = 1;</code>
     * @return The clientResponse.
     */
    com.google.protobuf.ByteString getClientResponse();
  }
  /**
   * Protobuf type {@code AuthClientResponseMessage}
   */
  public static final class AuthClientResponseMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:AuthClientResponseMessage)
      AuthClientResponseMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use AuthClientResponseMessage.newBuilder() to construct.
    private AuthClientResponseMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private AuthClientResponseMessage() {
      clientResponse_ = com.google.protobuf.ByteString.EMPTY;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new AuthClientResponseMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_AuthClientResponseMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_AuthClientResponseMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage.class, de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage.Builder.class);
    }

    private int bitField0_;
    public static final int CLIENTRESPONSE_FIELD_NUMBER = 1;
    private com.google.protobuf.ByteString clientResponse_ = com.google.protobuf.ByteString.EMPTY;
    /**
     * <code>required bytes clientResponse = 1;</code>
     * @return Whether the clientResponse field is set.
     */
    @java.lang.Override
    public boolean hasClientResponse() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required bytes clientResponse = 1;</code>
     * @return The clientResponse.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getClientResponse() {
      return clientResponse_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

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

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

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

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

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage other = (de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage) obj;

      if (hasClientResponse() != other.hasClientResponse()) return false;
      if (hasClientResponse()) {
        if (!getClientResponse()
            .equals(other.getClientResponse())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasClientResponse()) {
        hash = (37 * hash) + CLIENTRESPONSE_FIELD_NUMBER;
        hash = (53 * hash) + getClientResponse().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code AuthClientResponseMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:AuthClientResponseMessage)
        de.pokerth.protocol.ProtoBuf.AuthClientResponseMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_AuthClientResponseMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_AuthClientResponseMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage.class, de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        clientResponse_ = com.google.protobuf.ByteString.EMPTY;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_AuthClientResponseMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage build() {
        de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage result = new de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.clientResponse_ = clientResponse_;
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage.getDefaultInstance()) return this;
        if (other.hasClientResponse()) {
          setClientResponse(other.getClientResponse());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasClientResponse()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                clientResponse_ = input.readBytes();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private com.google.protobuf.ByteString clientResponse_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <code>required bytes clientResponse = 1;</code>
       * @return Whether the clientResponse field is set.
       */
      @java.lang.Override
      public boolean hasClientResponse() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required bytes clientResponse = 1;</code>
       * @return The clientResponse.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getClientResponse() {
        return clientResponse_;
      }
      /**
       * <code>required bytes clientResponse = 1;</code>
       * @param value The clientResponse to set.
       * @return This builder for chaining.
       */
      public Builder setClientResponse(com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        clientResponse_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required bytes clientResponse = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearClientResponse() {
        bitField0_ = (bitField0_ & ~0x00000001);
        clientResponse_ = getDefaultInstance().getClientResponse();
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:AuthClientResponseMessage)
    }

    // @@protoc_insertion_point(class_scope:AuthClientResponseMessage)
    private static final de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<AuthClientResponseMessage>
        PARSER = new com.google.protobuf.AbstractParser<AuthClientResponseMessage>() {
      @java.lang.Override
      public AuthClientResponseMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<AuthClientResponseMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required bytes serverVerification = 1;</code>
     * @return Whether the serverVerification field is set.
     */
    boolean hasServerVerification();
    /**
     * <code>required bytes serverVerification = 1;</code>
     * @return The serverVerification.
     */
    com.google.protobuf.ByteString getServerVerification();
  }
  /**
   * Protobuf type {@code AuthServerVerificationMessage}
   */
  public static final class AuthServerVerificationMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:AuthServerVerificationMessage)
      AuthServerVerificationMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use AuthServerVerificationMessage.newBuilder() to construct.
    private AuthServerVerificationMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private AuthServerVerificationMessage() {
      serverVerification_ = com.google.protobuf.ByteString.EMPTY;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new AuthServerVerificationMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_AuthServerVerificationMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_AuthServerVerificationMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage.class, de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage.Builder.class);
    }

    private int bitField0_;
    public static final int SERVERVERIFICATION_FIELD_NUMBER = 1;
    private com.google.protobuf.ByteString serverVerification_ = com.google.protobuf.ByteString.EMPTY;
    /**
     * <code>required bytes serverVerification = 1;</code>
     * @return Whether the serverVerification field is set.
     */
    @java.lang.Override
    public boolean hasServerVerification() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required bytes serverVerification = 1;</code>
     * @return The serverVerification.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getServerVerification() {
      return serverVerification_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

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

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

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

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

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage other = (de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage) obj;

      if (hasServerVerification() != other.hasServerVerification()) return false;
      if (hasServerVerification()) {
        if (!getServerVerification()
            .equals(other.getServerVerification())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasServerVerification()) {
        hash = (37 * hash) + SERVERVERIFICATION_FIELD_NUMBER;
        hash = (53 * hash) + getServerVerification().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code AuthServerVerificationMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:AuthServerVerificationMessage)
        de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_AuthServerVerificationMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_AuthServerVerificationMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage.class, de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        serverVerification_ = com.google.protobuf.ByteString.EMPTY;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_AuthServerVerificationMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage build() {
        de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage result = new de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.serverVerification_ = serverVerification_;
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage.getDefaultInstance()) return this;
        if (other.hasServerVerification()) {
          setServerVerification(other.getServerVerification());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasServerVerification()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                serverVerification_ = input.readBytes();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private com.google.protobuf.ByteString serverVerification_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <code>required bytes serverVerification = 1;</code>
       * @return Whether the serverVerification field is set.
       */
      @java.lang.Override
      public boolean hasServerVerification() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required bytes serverVerification = 1;</code>
       * @return The serverVerification.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getServerVerification() {
        return serverVerification_;
      }
      /**
       * <code>required bytes serverVerification = 1;</code>
       * @param value The serverVerification to set.
       * @return This builder for chaining.
       */
      public Builder setServerVerification(com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        serverVerification_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required bytes serverVerification = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearServerVerification() {
        bitField0_ = (bitField0_ & ~0x00000001);
        serverVerification_ = getDefaultInstance().getServerVerification();
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:AuthServerVerificationMessage)
    }

    // @@protoc_insertion_point(class_scope:AuthServerVerificationMessage)
    private static final de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<AuthServerVerificationMessage>
        PARSER = new com.google.protobuf.AbstractParser<AuthServerVerificationMessage>() {
      @java.lang.Override
      public AuthServerVerificationMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<AuthServerVerificationMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required bytes yourSessionId = 1;</code>
     * @return Whether the yourSessionId field is set.
     */
    boolean hasYourSessionId();
    /**
     * <code>required bytes yourSessionId = 1;</code>
     * @return The yourSessionId.
     */
    com.google.protobuf.ByteString getYourSessionId();

    /**
     * <code>required uint32 yourPlayerId = 2;</code>
     * @return Whether the yourPlayerId field is set.
     */
    boolean hasYourPlayerId();
    /**
     * <code>required uint32 yourPlayerId = 2;</code>
     * @return The yourPlayerId.
     */
    int getYourPlayerId();

    /**
     * <code>optional bytes yourAvatarHash = 3;</code>
     * @return Whether the yourAvatarHash field is set.
     */
    boolean hasYourAvatarHash();
    /**
     * <code>optional bytes yourAvatarHash = 3;</code>
     * @return The yourAvatarHash.
     */
    com.google.protobuf.ByteString getYourAvatarHash();

    /**
     * <code>optional uint32 rejoinGameId = 4;</code>
     * @return Whether the rejoinGameId field is set.
     */
    boolean hasRejoinGameId();
    /**
     * <code>optional uint32 rejoinGameId = 4;</code>
     * @return The rejoinGameId.
     */
    int getRejoinGameId();
  }
  /**
   * Protobuf type {@code InitAckMessage}
   */
  public static final class InitAckMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:InitAckMessage)
      InitAckMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use InitAckMessage.newBuilder() to construct.
    private InitAckMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private InitAckMessage() {
      yourSessionId_ = com.google.protobuf.ByteString.EMPTY;
      yourAvatarHash_ = com.google.protobuf.ByteString.EMPTY;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new InitAckMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_InitAckMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_InitAckMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.InitAckMessage.class, de.pokerth.protocol.ProtoBuf.InitAckMessage.Builder.class);
    }

    private int bitField0_;
    public static final int YOURSESSIONID_FIELD_NUMBER = 1;
    private com.google.protobuf.ByteString yourSessionId_ = com.google.protobuf.ByteString.EMPTY;
    /**
     * <code>required bytes yourSessionId = 1;</code>
     * @return Whether the yourSessionId field is set.
     */
    @java.lang.Override
    public boolean hasYourSessionId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required bytes yourSessionId = 1;</code>
     * @return The yourSessionId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getYourSessionId() {
      return yourSessionId_;
    }

    public static final int YOURPLAYERID_FIELD_NUMBER = 2;
    private int yourPlayerId_ = 0;
    /**
     * <code>required uint32 yourPlayerId = 2;</code>
     * @return Whether the yourPlayerId field is set.
     */
    @java.lang.Override
    public boolean hasYourPlayerId() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required uint32 yourPlayerId = 2;</code>
     * @return The yourPlayerId.
     */
    @java.lang.Override
    public int getYourPlayerId() {
      return yourPlayerId_;
    }

    public static final int YOURAVATARHASH_FIELD_NUMBER = 3;
    private com.google.protobuf.ByteString yourAvatarHash_ = com.google.protobuf.ByteString.EMPTY;
    /**
     * <code>optional bytes yourAvatarHash = 3;</code>
     * @return Whether the yourAvatarHash field is set.
     */
    @java.lang.Override
    public boolean hasYourAvatarHash() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional bytes yourAvatarHash = 3;</code>
     * @return The yourAvatarHash.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getYourAvatarHash() {
      return yourAvatarHash_;
    }

    public static final int REJOINGAMEID_FIELD_NUMBER = 4;
    private int rejoinGameId_ = 0;
    /**
     * <code>optional uint32 rejoinGameId = 4;</code>
     * @return Whether the rejoinGameId field is set.
     */
    @java.lang.Override
    public boolean hasRejoinGameId() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>optional uint32 rejoinGameId = 4;</code>
     * @return The rejoinGameId.
     */
    @java.lang.Override
    public int getRejoinGameId() {
      return rejoinGameId_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

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

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeBytes(1, yourSessionId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt32(2, yourPlayerId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeBytes(3, yourAvatarHash_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeUInt32(4, rejoinGameId_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, yourSessionId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, yourPlayerId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, yourAvatarHash_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, rejoinGameId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.InitAckMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.InitAckMessage other = (de.pokerth.protocol.ProtoBuf.InitAckMessage) obj;

      if (hasYourSessionId() != other.hasYourSessionId()) return false;
      if (hasYourSessionId()) {
        if (!getYourSessionId()
            .equals(other.getYourSessionId())) return false;
      }
      if (hasYourPlayerId() != other.hasYourPlayerId()) return false;
      if (hasYourPlayerId()) {
        if (getYourPlayerId()
            != other.getYourPlayerId()) return false;
      }
      if (hasYourAvatarHash() != other.hasYourAvatarHash()) return false;
      if (hasYourAvatarHash()) {
        if (!getYourAvatarHash()
            .equals(other.getYourAvatarHash())) return false;
      }
      if (hasRejoinGameId() != other.hasRejoinGameId()) return false;
      if (hasRejoinGameId()) {
        if (getRejoinGameId()
            != other.getRejoinGameId()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasYourSessionId()) {
        hash = (37 * hash) + YOURSESSIONID_FIELD_NUMBER;
        hash = (53 * hash) + getYourSessionId().hashCode();
      }
      if (hasYourPlayerId()) {
        hash = (37 * hash) + YOURPLAYERID_FIELD_NUMBER;
        hash = (53 * hash) + getYourPlayerId();
      }
      if (hasYourAvatarHash()) {
        hash = (37 * hash) + YOURAVATARHASH_FIELD_NUMBER;
        hash = (53 * hash) + getYourAvatarHash().hashCode();
      }
      if (hasRejoinGameId()) {
        hash = (37 * hash) + REJOINGAMEID_FIELD_NUMBER;
        hash = (53 * hash) + getRejoinGameId();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.InitAckMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.InitAckMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.InitAckMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.InitAckMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.InitAckMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.InitAckMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.InitAckMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.InitAckMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.InitAckMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.InitAckMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.InitAckMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.InitAckMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.InitAckMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code InitAckMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:InitAckMessage)
        de.pokerth.protocol.ProtoBuf.InitAckMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_InitAckMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_InitAckMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.InitAckMessage.class, de.pokerth.protocol.ProtoBuf.InitAckMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.InitAckMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        yourSessionId_ = com.google.protobuf.ByteString.EMPTY;
        yourPlayerId_ = 0;
        yourAvatarHash_ = com.google.protobuf.ByteString.EMPTY;
        rejoinGameId_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_InitAckMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.InitAckMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.InitAckMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.InitAckMessage build() {
        de.pokerth.protocol.ProtoBuf.InitAckMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.InitAckMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.InitAckMessage result = new de.pokerth.protocol.ProtoBuf.InitAckMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.InitAckMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.yourSessionId_ = yourSessionId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.yourPlayerId_ = yourPlayerId_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.yourAvatarHash_ = yourAvatarHash_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.rejoinGameId_ = rejoinGameId_;
          to_bitField0_ |= 0x00000008;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.InitAckMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.InitAckMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.InitAckMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.InitAckMessage.getDefaultInstance()) return this;
        if (other.hasYourSessionId()) {
          setYourSessionId(other.getYourSessionId());
        }
        if (other.hasYourPlayerId()) {
          setYourPlayerId(other.getYourPlayerId());
        }
        if (other.hasYourAvatarHash()) {
          setYourAvatarHash(other.getYourAvatarHash());
        }
        if (other.hasRejoinGameId()) {
          setRejoinGameId(other.getRejoinGameId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasYourSessionId()) {
          return false;
        }
        if (!hasYourPlayerId()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                yourSessionId_ = input.readBytes();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 16: {
                yourPlayerId_ = input.readUInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 26: {
                yourAvatarHash_ = input.readBytes();
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 32: {
                rejoinGameId_ = input.readUInt32();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private com.google.protobuf.ByteString yourSessionId_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <code>required bytes yourSessionId = 1;</code>
       * @return Whether the yourSessionId field is set.
       */
      @java.lang.Override
      public boolean hasYourSessionId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required bytes yourSessionId = 1;</code>
       * @return The yourSessionId.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getYourSessionId() {
        return yourSessionId_;
      }
      /**
       * <code>required bytes yourSessionId = 1;</code>
       * @param value The yourSessionId to set.
       * @return This builder for chaining.
       */
      public Builder setYourSessionId(com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        yourSessionId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required bytes yourSessionId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearYourSessionId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        yourSessionId_ = getDefaultInstance().getYourSessionId();
        onChanged();
        return this;
      }

      private int yourPlayerId_ ;
      /**
       * <code>required uint32 yourPlayerId = 2;</code>
       * @return Whether the yourPlayerId field is set.
       */
      @java.lang.Override
      public boolean hasYourPlayerId() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required uint32 yourPlayerId = 2;</code>
       * @return The yourPlayerId.
       */
      @java.lang.Override
      public int getYourPlayerId() {
        return yourPlayerId_;
      }
      /**
       * <code>required uint32 yourPlayerId = 2;</code>
       * @param value The yourPlayerId to set.
       * @return This builder for chaining.
       */
      public Builder setYourPlayerId(int value) {
        
        yourPlayerId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 yourPlayerId = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearYourPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        yourPlayerId_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString yourAvatarHash_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <code>optional bytes yourAvatarHash = 3;</code>
       * @return Whether the yourAvatarHash field is set.
       */
      @java.lang.Override
      public boolean hasYourAvatarHash() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>optional bytes yourAvatarHash = 3;</code>
       * @return The yourAvatarHash.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getYourAvatarHash() {
        return yourAvatarHash_;
      }
      /**
       * <code>optional bytes yourAvatarHash = 3;</code>
       * @param value The yourAvatarHash to set.
       * @return This builder for chaining.
       */
      public Builder setYourAvatarHash(com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        yourAvatarHash_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>optional bytes yourAvatarHash = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearYourAvatarHash() {
        bitField0_ = (bitField0_ & ~0x00000004);
        yourAvatarHash_ = getDefaultInstance().getYourAvatarHash();
        onChanged();
        return this;
      }

      private int rejoinGameId_ ;
      /**
       * <code>optional uint32 rejoinGameId = 4;</code>
       * @return Whether the rejoinGameId field is set.
       */
      @java.lang.Override
      public boolean hasRejoinGameId() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>optional uint32 rejoinGameId = 4;</code>
       * @return The rejoinGameId.
       */
      @java.lang.Override
      public int getRejoinGameId() {
        return rejoinGameId_;
      }
      /**
       * <code>optional uint32 rejoinGameId = 4;</code>
       * @param value The rejoinGameId to set.
       * @return This builder for chaining.
       */
      public Builder setRejoinGameId(int value) {
        
        rejoinGameId_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>optional uint32 rejoinGameId = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearRejoinGameId() {
        bitField0_ = (bitField0_ & ~0x00000008);
        rejoinGameId_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:InitAckMessage)
    }

    // @@protoc_insertion_point(class_scope:InitAckMessage)
    private static final de.pokerth.protocol.ProtoBuf.InitAckMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.InitAckMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.InitAckMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<InitAckMessage>
        PARSER = new com.google.protobuf.AbstractParser<InitAckMessage>() {
      @java.lang.Override
      public InitAckMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<InitAckMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.InitAckMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 requestId = 1;</code>
     * @return Whether the requestId field is set.
     */
    boolean hasRequestId();
    /**
     * <code>required uint32 requestId = 1;</code>
     * @return The requestId.
     */
    int getRequestId();

    /**
     * <code>required bytes avatarHash = 2;</code>
     * @return Whether the avatarHash field is set.
     */
    boolean hasAvatarHash();
    /**
     * <code>required bytes avatarHash = 2;</code>
     * @return The avatarHash.
     */
    com.google.protobuf.ByteString getAvatarHash();
  }
  /**
   * Protobuf type {@code AvatarRequestMessage}
   */
  public static final class AvatarRequestMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:AvatarRequestMessage)
      AvatarRequestMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use AvatarRequestMessage.newBuilder() to construct.
    private AvatarRequestMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private AvatarRequestMessage() {
      avatarHash_ = com.google.protobuf.ByteString.EMPTY;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new AvatarRequestMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_AvatarRequestMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_AvatarRequestMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.AvatarRequestMessage.class, de.pokerth.protocol.ProtoBuf.AvatarRequestMessage.Builder.class);
    }

    private int bitField0_;
    public static final int REQUESTID_FIELD_NUMBER = 1;
    private int requestId_ = 0;
    /**
     * <code>required uint32 requestId = 1;</code>
     * @return Whether the requestId field is set.
     */
    @java.lang.Override
    public boolean hasRequestId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 requestId = 1;</code>
     * @return The requestId.
     */
    @java.lang.Override
    public int getRequestId() {
      return requestId_;
    }

    public static final int AVATARHASH_FIELD_NUMBER = 2;
    private com.google.protobuf.ByteString avatarHash_ = com.google.protobuf.ByteString.EMPTY;
    /**
     * <code>required bytes avatarHash = 2;</code>
     * @return Whether the avatarHash field is set.
     */
    @java.lang.Override
    public boolean hasAvatarHash() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required bytes avatarHash = 2;</code>
     * @return The avatarHash.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getAvatarHash() {
      return avatarHash_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

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

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, requestId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeBytes(2, avatarHash_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, requestId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, avatarHash_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.AvatarRequestMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.AvatarRequestMessage other = (de.pokerth.protocol.ProtoBuf.AvatarRequestMessage) obj;

      if (hasRequestId() != other.hasRequestId()) return false;
      if (hasRequestId()) {
        if (getRequestId()
            != other.getRequestId()) return false;
      }
      if (hasAvatarHash() != other.hasAvatarHash()) return false;
      if (hasAvatarHash()) {
        if (!getAvatarHash()
            .equals(other.getAvatarHash())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasRequestId()) {
        hash = (37 * hash) + REQUESTID_FIELD_NUMBER;
        hash = (53 * hash) + getRequestId();
      }
      if (hasAvatarHash()) {
        hash = (37 * hash) + AVATARHASH_FIELD_NUMBER;
        hash = (53 * hash) + getAvatarHash().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.AvatarRequestMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarRequestMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarRequestMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarRequestMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarRequestMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarRequestMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarRequestMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarRequestMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarRequestMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarRequestMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarRequestMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarRequestMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.AvatarRequestMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code AvatarRequestMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:AvatarRequestMessage)
        de.pokerth.protocol.ProtoBuf.AvatarRequestMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_AvatarRequestMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_AvatarRequestMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.AvatarRequestMessage.class, de.pokerth.protocol.ProtoBuf.AvatarRequestMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.AvatarRequestMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        requestId_ = 0;
        avatarHash_ = com.google.protobuf.ByteString.EMPTY;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_AvatarRequestMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.AvatarRequestMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.AvatarRequestMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.AvatarRequestMessage build() {
        de.pokerth.protocol.ProtoBuf.AvatarRequestMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.AvatarRequestMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.AvatarRequestMessage result = new de.pokerth.protocol.ProtoBuf.AvatarRequestMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.AvatarRequestMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.requestId_ = requestId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.avatarHash_ = avatarHash_;
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.AvatarRequestMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.AvatarRequestMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.AvatarRequestMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.AvatarRequestMessage.getDefaultInstance()) return this;
        if (other.hasRequestId()) {
          setRequestId(other.getRequestId());
        }
        if (other.hasAvatarHash()) {
          setAvatarHash(other.getAvatarHash());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasRequestId()) {
          return false;
        }
        if (!hasAvatarHash()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                requestId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                avatarHash_ = input.readBytes();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int requestId_ ;
      /**
       * <code>required uint32 requestId = 1;</code>
       * @return Whether the requestId field is set.
       */
      @java.lang.Override
      public boolean hasRequestId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 requestId = 1;</code>
       * @return The requestId.
       */
      @java.lang.Override
      public int getRequestId() {
        return requestId_;
      }
      /**
       * <code>required uint32 requestId = 1;</code>
       * @param value The requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestId(int value) {
        
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 requestId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearRequestId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        requestId_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString avatarHash_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <code>required bytes avatarHash = 2;</code>
       * @return Whether the avatarHash field is set.
       */
      @java.lang.Override
      public boolean hasAvatarHash() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required bytes avatarHash = 2;</code>
       * @return The avatarHash.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getAvatarHash() {
        return avatarHash_;
      }
      /**
       * <code>required bytes avatarHash = 2;</code>
       * @param value The avatarHash to set.
       * @return This builder for chaining.
       */
      public Builder setAvatarHash(com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        avatarHash_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>required bytes avatarHash = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearAvatarHash() {
        bitField0_ = (bitField0_ & ~0x00000002);
        avatarHash_ = getDefaultInstance().getAvatarHash();
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:AvatarRequestMessage)
    }

    // @@protoc_insertion_point(class_scope:AvatarRequestMessage)
    private static final de.pokerth.protocol.ProtoBuf.AvatarRequestMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.AvatarRequestMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.AvatarRequestMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<AvatarRequestMessage>
        PARSER = new com.google.protobuf.AbstractParser<AvatarRequestMessage>() {
      @java.lang.Override
      public AvatarRequestMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<AvatarRequestMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.AvatarRequestMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 requestId = 1;</code>
     * @return Whether the requestId field is set.
     */
    boolean hasRequestId();
    /**
     * <code>required uint32 requestId = 1;</code>
     * @return The requestId.
     */
    int getRequestId();

    /**
     * <code>required .NetAvatarType avatarType = 2;</code>
     * @return Whether the avatarType field is set.
     */
    boolean hasAvatarType();
    /**
     * <code>required .NetAvatarType avatarType = 2;</code>
     * @return The avatarType.
     */
    de.pokerth.protocol.ProtoBuf.NetAvatarType getAvatarType();

    /**
     * <code>required uint32 avatarSize = 3;</code>
     * @return Whether the avatarSize field is set.
     */
    boolean hasAvatarSize();
    /**
     * <code>required uint32 avatarSize = 3;</code>
     * @return The avatarSize.
     */
    int getAvatarSize();
  }
  /**
   * Protobuf type {@code AvatarHeaderMessage}
   */
  public static final class AvatarHeaderMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:AvatarHeaderMessage)
      AvatarHeaderMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use AvatarHeaderMessage.newBuilder() to construct.
    private AvatarHeaderMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private AvatarHeaderMessage() {
      avatarType_ = 1;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new AvatarHeaderMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_AvatarHeaderMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_AvatarHeaderMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage.class, de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage.Builder.class);
    }

    private int bitField0_;
    public static final int REQUESTID_FIELD_NUMBER = 1;
    private int requestId_ = 0;
    /**
     * <code>required uint32 requestId = 1;</code>
     * @return Whether the requestId field is set.
     */
    @java.lang.Override
    public boolean hasRequestId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 requestId = 1;</code>
     * @return The requestId.
     */
    @java.lang.Override
    public int getRequestId() {
      return requestId_;
    }

    public static final int AVATARTYPE_FIELD_NUMBER = 2;
    private int avatarType_ = 1;
    /**
     * <code>required .NetAvatarType avatarType = 2;</code>
     * @return Whether the avatarType field is set.
     */
    @java.lang.Override public boolean hasAvatarType() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required .NetAvatarType avatarType = 2;</code>
     * @return The avatarType.
     */
    @java.lang.Override public de.pokerth.protocol.ProtoBuf.NetAvatarType getAvatarType() {
      de.pokerth.protocol.ProtoBuf.NetAvatarType result = de.pokerth.protocol.ProtoBuf.NetAvatarType.forNumber(avatarType_);
      return result == null ? de.pokerth.protocol.ProtoBuf.NetAvatarType.netAvatarImagePng : result;
    }

    public static final int AVATARSIZE_FIELD_NUMBER = 3;
    private int avatarSize_ = 0;
    /**
     * <code>required uint32 avatarSize = 3;</code>
     * @return Whether the avatarSize field is set.
     */
    @java.lang.Override
    public boolean hasAvatarSize() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>required uint32 avatarSize = 3;</code>
     * @return The avatarSize.
     */
    @java.lang.Override
    public int getAvatarSize() {
      return avatarSize_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasRequestId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasAvatarType()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasAvatarSize()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, requestId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeEnum(2, avatarType_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeUInt32(3, avatarSize_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, requestId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, avatarType_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, avatarSize_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage other = (de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage) obj;

      if (hasRequestId() != other.hasRequestId()) return false;
      if (hasRequestId()) {
        if (getRequestId()
            != other.getRequestId()) return false;
      }
      if (hasAvatarType() != other.hasAvatarType()) return false;
      if (hasAvatarType()) {
        if (avatarType_ != other.avatarType_) return false;
      }
      if (hasAvatarSize() != other.hasAvatarSize()) return false;
      if (hasAvatarSize()) {
        if (getAvatarSize()
            != other.getAvatarSize()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasRequestId()) {
        hash = (37 * hash) + REQUESTID_FIELD_NUMBER;
        hash = (53 * hash) + getRequestId();
      }
      if (hasAvatarType()) {
        hash = (37 * hash) + AVATARTYPE_FIELD_NUMBER;
        hash = (53 * hash) + avatarType_;
      }
      if (hasAvatarSize()) {
        hash = (37 * hash) + AVATARSIZE_FIELD_NUMBER;
        hash = (53 * hash) + getAvatarSize();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code AvatarHeaderMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:AvatarHeaderMessage)
        de.pokerth.protocol.ProtoBuf.AvatarHeaderMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_AvatarHeaderMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_AvatarHeaderMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage.class, de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        requestId_ = 0;
        avatarType_ = 1;
        avatarSize_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_AvatarHeaderMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage build() {
        de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage result = new de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.requestId_ = requestId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.avatarType_ = avatarType_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.avatarSize_ = avatarSize_;
          to_bitField0_ |= 0x00000004;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage.getDefaultInstance()) return this;
        if (other.hasRequestId()) {
          setRequestId(other.getRequestId());
        }
        if (other.hasAvatarType()) {
          setAvatarType(other.getAvatarType());
        }
        if (other.hasAvatarSize()) {
          setAvatarSize(other.getAvatarSize());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasRequestId()) {
          return false;
        }
        if (!hasAvatarType()) {
          return false;
        }
        if (!hasAvatarSize()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                requestId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                int tmpRaw = input.readEnum();
                de.pokerth.protocol.ProtoBuf.NetAvatarType tmpValue =
                    de.pokerth.protocol.ProtoBuf.NetAvatarType.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(2, tmpRaw);
                } else {
                  avatarType_ = tmpRaw;
                  bitField0_ |= 0x00000002;
                }
                break;
              } // case 16
              case 24: {
                avatarSize_ = input.readUInt32();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int requestId_ ;
      /**
       * <code>required uint32 requestId = 1;</code>
       * @return Whether the requestId field is set.
       */
      @java.lang.Override
      public boolean hasRequestId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 requestId = 1;</code>
       * @return The requestId.
       */
      @java.lang.Override
      public int getRequestId() {
        return requestId_;
      }
      /**
       * <code>required uint32 requestId = 1;</code>
       * @param value The requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestId(int value) {
        
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 requestId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearRequestId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        requestId_ = 0;
        onChanged();
        return this;
      }

      private int avatarType_ = 1;
      /**
       * <code>required .NetAvatarType avatarType = 2;</code>
       * @return Whether the avatarType field is set.
       */
      @java.lang.Override public boolean hasAvatarType() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required .NetAvatarType avatarType = 2;</code>
       * @return The avatarType.
       */
      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.NetAvatarType getAvatarType() {
        de.pokerth.protocol.ProtoBuf.NetAvatarType result = de.pokerth.protocol.ProtoBuf.NetAvatarType.forNumber(avatarType_);
        return result == null ? de.pokerth.protocol.ProtoBuf.NetAvatarType.netAvatarImagePng : result;
      }
      /**
       * <code>required .NetAvatarType avatarType = 2;</code>
       * @param value The avatarType to set.
       * @return This builder for chaining.
       */
      public Builder setAvatarType(de.pokerth.protocol.ProtoBuf.NetAvatarType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        avatarType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>required .NetAvatarType avatarType = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearAvatarType() {
        bitField0_ = (bitField0_ & ~0x00000002);
        avatarType_ = 1;
        onChanged();
        return this;
      }

      private int avatarSize_ ;
      /**
       * <code>required uint32 avatarSize = 3;</code>
       * @return Whether the avatarSize field is set.
       */
      @java.lang.Override
      public boolean hasAvatarSize() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>required uint32 avatarSize = 3;</code>
       * @return The avatarSize.
       */
      @java.lang.Override
      public int getAvatarSize() {
        return avatarSize_;
      }
      /**
       * <code>required uint32 avatarSize = 3;</code>
       * @param value The avatarSize to set.
       * @return This builder for chaining.
       */
      public Builder setAvatarSize(int value) {
        
        avatarSize_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 avatarSize = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearAvatarSize() {
        bitField0_ = (bitField0_ & ~0x00000004);
        avatarSize_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:AvatarHeaderMessage)
    }

    // @@protoc_insertion_point(class_scope:AvatarHeaderMessage)
    private static final de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<AvatarHeaderMessage>
        PARSER = new com.google.protobuf.AbstractParser<AvatarHeaderMessage>() {
      @java.lang.Override
      public AvatarHeaderMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<AvatarHeaderMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 requestId = 1;</code>
     * @return Whether the requestId field is set.
     */
    boolean hasRequestId();
    /**
     * <code>required uint32 requestId = 1;</code>
     * @return The requestId.
     */
    int getRequestId();

    /**
     * <code>required bytes avatarBlock = 2;</code>
     * @return Whether the avatarBlock field is set.
     */
    boolean hasAvatarBlock();
    /**
     * <code>required bytes avatarBlock = 2;</code>
     * @return The avatarBlock.
     */
    com.google.protobuf.ByteString getAvatarBlock();
  }
  /**
   * Protobuf type {@code AvatarDataMessage}
   */
  public static final class AvatarDataMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:AvatarDataMessage)
      AvatarDataMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use AvatarDataMessage.newBuilder() to construct.
    private AvatarDataMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private AvatarDataMessage() {
      avatarBlock_ = com.google.protobuf.ByteString.EMPTY;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new AvatarDataMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_AvatarDataMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_AvatarDataMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.AvatarDataMessage.class, de.pokerth.protocol.ProtoBuf.AvatarDataMessage.Builder.class);
    }

    private int bitField0_;
    public static final int REQUESTID_FIELD_NUMBER = 1;
    private int requestId_ = 0;
    /**
     * <code>required uint32 requestId = 1;</code>
     * @return Whether the requestId field is set.
     */
    @java.lang.Override
    public boolean hasRequestId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 requestId = 1;</code>
     * @return The requestId.
     */
    @java.lang.Override
    public int getRequestId() {
      return requestId_;
    }

    public static final int AVATARBLOCK_FIELD_NUMBER = 2;
    private com.google.protobuf.ByteString avatarBlock_ = com.google.protobuf.ByteString.EMPTY;
    /**
     * <code>required bytes avatarBlock = 2;</code>
     * @return Whether the avatarBlock field is set.
     */
    @java.lang.Override
    public boolean hasAvatarBlock() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required bytes avatarBlock = 2;</code>
     * @return The avatarBlock.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getAvatarBlock() {
      return avatarBlock_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

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

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, requestId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeBytes(2, avatarBlock_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, requestId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, avatarBlock_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.AvatarDataMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.AvatarDataMessage other = (de.pokerth.protocol.ProtoBuf.AvatarDataMessage) obj;

      if (hasRequestId() != other.hasRequestId()) return false;
      if (hasRequestId()) {
        if (getRequestId()
            != other.getRequestId()) return false;
      }
      if (hasAvatarBlock() != other.hasAvatarBlock()) return false;
      if (hasAvatarBlock()) {
        if (!getAvatarBlock()
            .equals(other.getAvatarBlock())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasRequestId()) {
        hash = (37 * hash) + REQUESTID_FIELD_NUMBER;
        hash = (53 * hash) + getRequestId();
      }
      if (hasAvatarBlock()) {
        hash = (37 * hash) + AVATARBLOCK_FIELD_NUMBER;
        hash = (53 * hash) + getAvatarBlock().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.AvatarDataMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarDataMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarDataMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarDataMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarDataMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarDataMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarDataMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarDataMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarDataMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarDataMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarDataMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarDataMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.AvatarDataMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code AvatarDataMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:AvatarDataMessage)
        de.pokerth.protocol.ProtoBuf.AvatarDataMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_AvatarDataMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_AvatarDataMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.AvatarDataMessage.class, de.pokerth.protocol.ProtoBuf.AvatarDataMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.AvatarDataMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        requestId_ = 0;
        avatarBlock_ = com.google.protobuf.ByteString.EMPTY;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_AvatarDataMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.AvatarDataMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.AvatarDataMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.AvatarDataMessage build() {
        de.pokerth.protocol.ProtoBuf.AvatarDataMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.AvatarDataMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.AvatarDataMessage result = new de.pokerth.protocol.ProtoBuf.AvatarDataMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.AvatarDataMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.requestId_ = requestId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.avatarBlock_ = avatarBlock_;
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.AvatarDataMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.AvatarDataMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.AvatarDataMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.AvatarDataMessage.getDefaultInstance()) return this;
        if (other.hasRequestId()) {
          setRequestId(other.getRequestId());
        }
        if (other.hasAvatarBlock()) {
          setAvatarBlock(other.getAvatarBlock());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasRequestId()) {
          return false;
        }
        if (!hasAvatarBlock()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                requestId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                avatarBlock_ = input.readBytes();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int requestId_ ;
      /**
       * <code>required uint32 requestId = 1;</code>
       * @return Whether the requestId field is set.
       */
      @java.lang.Override
      public boolean hasRequestId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 requestId = 1;</code>
       * @return The requestId.
       */
      @java.lang.Override
      public int getRequestId() {
        return requestId_;
      }
      /**
       * <code>required uint32 requestId = 1;</code>
       * @param value The requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestId(int value) {
        
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 requestId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearRequestId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        requestId_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString avatarBlock_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <code>required bytes avatarBlock = 2;</code>
       * @return Whether the avatarBlock field is set.
       */
      @java.lang.Override
      public boolean hasAvatarBlock() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required bytes avatarBlock = 2;</code>
       * @return The avatarBlock.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getAvatarBlock() {
        return avatarBlock_;
      }
      /**
       * <code>required bytes avatarBlock = 2;</code>
       * @param value The avatarBlock to set.
       * @return This builder for chaining.
       */
      public Builder setAvatarBlock(com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        avatarBlock_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>required bytes avatarBlock = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearAvatarBlock() {
        bitField0_ = (bitField0_ & ~0x00000002);
        avatarBlock_ = getDefaultInstance().getAvatarBlock();
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:AvatarDataMessage)
    }

    // @@protoc_insertion_point(class_scope:AvatarDataMessage)
    private static final de.pokerth.protocol.ProtoBuf.AvatarDataMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.AvatarDataMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.AvatarDataMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<AvatarDataMessage>
        PARSER = new com.google.protobuf.AbstractParser<AvatarDataMessage>() {
      @java.lang.Override
      public AvatarDataMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<AvatarDataMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.AvatarDataMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 requestId = 1;</code>
     * @return Whether the requestId field is set.
     */
    boolean hasRequestId();
    /**
     * <code>required uint32 requestId = 1;</code>
     * @return The requestId.
     */
    int getRequestId();
  }
  /**
   * Protobuf type {@code AvatarEndMessage}
   */
  public static final class AvatarEndMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:AvatarEndMessage)
      AvatarEndMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use AvatarEndMessage.newBuilder() to construct.
    private AvatarEndMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private AvatarEndMessage() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new AvatarEndMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_AvatarEndMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_AvatarEndMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.AvatarEndMessage.class, de.pokerth.protocol.ProtoBuf.AvatarEndMessage.Builder.class);
    }

    private int bitField0_;
    public static final int REQUESTID_FIELD_NUMBER = 1;
    private int requestId_ = 0;
    /**
     * <code>required uint32 requestId = 1;</code>
     * @return Whether the requestId field is set.
     */
    @java.lang.Override
    public boolean hasRequestId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 requestId = 1;</code>
     * @return The requestId.
     */
    @java.lang.Override
    public int getRequestId() {
      return requestId_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

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

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, requestId_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, requestId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.AvatarEndMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.AvatarEndMessage other = (de.pokerth.protocol.ProtoBuf.AvatarEndMessage) obj;

      if (hasRequestId() != other.hasRequestId()) return false;
      if (hasRequestId()) {
        if (getRequestId()
            != other.getRequestId()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasRequestId()) {
        hash = (37 * hash) + REQUESTID_FIELD_NUMBER;
        hash = (53 * hash) + getRequestId();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.AvatarEndMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarEndMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarEndMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarEndMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarEndMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarEndMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarEndMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarEndMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarEndMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarEndMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarEndMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarEndMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.AvatarEndMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code AvatarEndMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:AvatarEndMessage)
        de.pokerth.protocol.ProtoBuf.AvatarEndMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_AvatarEndMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_AvatarEndMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.AvatarEndMessage.class, de.pokerth.protocol.ProtoBuf.AvatarEndMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.AvatarEndMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        requestId_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_AvatarEndMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.AvatarEndMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.AvatarEndMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.AvatarEndMessage build() {
        de.pokerth.protocol.ProtoBuf.AvatarEndMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.AvatarEndMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.AvatarEndMessage result = new de.pokerth.protocol.ProtoBuf.AvatarEndMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.AvatarEndMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.requestId_ = requestId_;
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.AvatarEndMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.AvatarEndMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.AvatarEndMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.AvatarEndMessage.getDefaultInstance()) return this;
        if (other.hasRequestId()) {
          setRequestId(other.getRequestId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasRequestId()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                requestId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int requestId_ ;
      /**
       * <code>required uint32 requestId = 1;</code>
       * @return Whether the requestId field is set.
       */
      @java.lang.Override
      public boolean hasRequestId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 requestId = 1;</code>
       * @return The requestId.
       */
      @java.lang.Override
      public int getRequestId() {
        return requestId_;
      }
      /**
       * <code>required uint32 requestId = 1;</code>
       * @param value The requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestId(int value) {
        
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 requestId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearRequestId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        requestId_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:AvatarEndMessage)
    }

    // @@protoc_insertion_point(class_scope:AvatarEndMessage)
    private static final de.pokerth.protocol.ProtoBuf.AvatarEndMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.AvatarEndMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.AvatarEndMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<AvatarEndMessage>
        PARSER = new com.google.protobuf.AbstractParser<AvatarEndMessage>() {
      @java.lang.Override
      public AvatarEndMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<AvatarEndMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.AvatarEndMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 requestId = 1;</code>
     * @return Whether the requestId field is set.
     */
    boolean hasRequestId();
    /**
     * <code>required uint32 requestId = 1;</code>
     * @return The requestId.
     */
    int getRequestId();
  }
  /**
   * Protobuf type {@code UnknownAvatarMessage}
   */
  public static final class UnknownAvatarMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:UnknownAvatarMessage)
      UnknownAvatarMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use UnknownAvatarMessage.newBuilder() to construct.
    private UnknownAvatarMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private UnknownAvatarMessage() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new UnknownAvatarMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_UnknownAvatarMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_UnknownAvatarMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage.class, de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage.Builder.class);
    }

    private int bitField0_;
    public static final int REQUESTID_FIELD_NUMBER = 1;
    private int requestId_ = 0;
    /**
     * <code>required uint32 requestId = 1;</code>
     * @return Whether the requestId field is set.
     */
    @java.lang.Override
    public boolean hasRequestId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 requestId = 1;</code>
     * @return The requestId.
     */
    @java.lang.Override
    public int getRequestId() {
      return requestId_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

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

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, requestId_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, requestId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage other = (de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage) obj;

      if (hasRequestId() != other.hasRequestId()) return false;
      if (hasRequestId()) {
        if (getRequestId()
            != other.getRequestId()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasRequestId()) {
        hash = (37 * hash) + REQUESTID_FIELD_NUMBER;
        hash = (53 * hash) + getRequestId();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code UnknownAvatarMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:UnknownAvatarMessage)
        de.pokerth.protocol.ProtoBuf.UnknownAvatarMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_UnknownAvatarMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_UnknownAvatarMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage.class, de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        requestId_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_UnknownAvatarMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage build() {
        de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage result = new de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.requestId_ = requestId_;
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage.getDefaultInstance()) return this;
        if (other.hasRequestId()) {
          setRequestId(other.getRequestId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasRequestId()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                requestId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int requestId_ ;
      /**
       * <code>required uint32 requestId = 1;</code>
       * @return Whether the requestId field is set.
       */
      @java.lang.Override
      public boolean hasRequestId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 requestId = 1;</code>
       * @return The requestId.
       */
      @java.lang.Override
      public int getRequestId() {
        return requestId_;
      }
      /**
       * <code>required uint32 requestId = 1;</code>
       * @param value The requestId to set.
       * @return This builder for chaining.
       */
      public Builder setRequestId(int value) {
        
        requestId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 requestId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearRequestId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        requestId_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:UnknownAvatarMessage)
    }

    // @@protoc_insertion_point(class_scope:UnknownAvatarMessage)
    private static final de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<UnknownAvatarMessage>
        PARSER = new com.google.protobuf.AbstractParser<UnknownAvatarMessage>() {
      @java.lang.Override
      public UnknownAvatarMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<UnknownAvatarMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 playerId = 1;</code>
     * @return Whether the playerId field is set.
     */
    boolean hasPlayerId();
    /**
     * <code>required uint32 playerId = 1;</code>
     * @return The playerId.
     */
    int getPlayerId();

    /**
     * <code>required .PlayerListMessage.PlayerListNotification playerListNotification = 2;</code>
     * @return Whether the playerListNotification field is set.
     */
    boolean hasPlayerListNotification();
    /**
     * <code>required .PlayerListMessage.PlayerListNotification playerListNotification = 2;</code>
     * @return The playerListNotification.
     */
    de.pokerth.protocol.ProtoBuf.PlayerListMessage.PlayerListNotification getPlayerListNotification();
  }
  /**
   * Protobuf type {@code PlayerListMessage}
   */
  public static final class PlayerListMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:PlayerListMessage)
      PlayerListMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PlayerListMessage.newBuilder() to construct.
    private PlayerListMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PlayerListMessage() {
      playerListNotification_ = 0;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new PlayerListMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_PlayerListMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_PlayerListMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.PlayerListMessage.class, de.pokerth.protocol.ProtoBuf.PlayerListMessage.Builder.class);
    }

    /**
     * Protobuf enum {@code PlayerListMessage.PlayerListNotification}
     */
    public enum PlayerListNotification
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>playerListNew = 0;</code>
       */
      playerListNew(0),
      /**
       * <code>playerListLeft = 1;</code>
       */
      playerListLeft(1),
      ;

      /**
       * <code>playerListNew = 0;</code>
       */
      public static final int playerListNew_VALUE = 0;
      /**
       * <code>playerListLeft = 1;</code>
       */
      public static final int playerListLeft_VALUE = 1;


      public final int getNumber() {
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static PlayerListNotification valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static PlayerListNotification forNumber(int value) {
        switch (value) {
          case 0: return playerListNew;
          case 1: return playerListLeft;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<PlayerListNotification>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          PlayerListNotification> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<PlayerListNotification>() {
              public PlayerListNotification findValueByNumber(int number) {
                return PlayerListNotification.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.PlayerListMessage.getDescriptor().getEnumTypes().get(0);
      }

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

      public static PlayerListNotification 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 value;

      private PlayerListNotification(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:PlayerListMessage.PlayerListNotification)
    }

    private int bitField0_;
    public static final int PLAYERID_FIELD_NUMBER = 1;
    private int playerId_ = 0;
    /**
     * <code>required uint32 playerId = 1;</code>
     * @return Whether the playerId field is set.
     */
    @java.lang.Override
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 playerId = 1;</code>
     * @return The playerId.
     */
    @java.lang.Override
    public int getPlayerId() {
      return playerId_;
    }

    public static final int PLAYERLISTNOTIFICATION_FIELD_NUMBER = 2;
    private int playerListNotification_ = 0;
    /**
     * <code>required .PlayerListMessage.PlayerListNotification playerListNotification = 2;</code>
     * @return Whether the playerListNotification field is set.
     */
    @java.lang.Override public boolean hasPlayerListNotification() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required .PlayerListMessage.PlayerListNotification playerListNotification = 2;</code>
     * @return The playerListNotification.
     */
    @java.lang.Override public de.pokerth.protocol.ProtoBuf.PlayerListMessage.PlayerListNotification getPlayerListNotification() {
      de.pokerth.protocol.ProtoBuf.PlayerListMessage.PlayerListNotification result = de.pokerth.protocol.ProtoBuf.PlayerListMessage.PlayerListNotification.forNumber(playerListNotification_);
      return result == null ? de.pokerth.protocol.ProtoBuf.PlayerListMessage.PlayerListNotification.playerListNew : result;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

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

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeEnum(2, playerListNotification_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, playerListNotification_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.PlayerListMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.PlayerListMessage other = (de.pokerth.protocol.ProtoBuf.PlayerListMessage) obj;

      if (hasPlayerId() != other.hasPlayerId()) return false;
      if (hasPlayerId()) {
        if (getPlayerId()
            != other.getPlayerId()) return false;
      }
      if (hasPlayerListNotification() != other.hasPlayerListNotification()) return false;
      if (hasPlayerListNotification()) {
        if (playerListNotification_ != other.playerListNotification_) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasPlayerId()) {
        hash = (37 * hash) + PLAYERID_FIELD_NUMBER;
        hash = (53 * hash) + getPlayerId();
      }
      if (hasPlayerListNotification()) {
        hash = (37 * hash) + PLAYERLISTNOTIFICATION_FIELD_NUMBER;
        hash = (53 * hash) + playerListNotification_;
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.PlayerListMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerListMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerListMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerListMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerListMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerListMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerListMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerListMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerListMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerListMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerListMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerListMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.PlayerListMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code PlayerListMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:PlayerListMessage)
        de.pokerth.protocol.ProtoBuf.PlayerListMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_PlayerListMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_PlayerListMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.PlayerListMessage.class, de.pokerth.protocol.ProtoBuf.PlayerListMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.PlayerListMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        playerId_ = 0;
        playerListNotification_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_PlayerListMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.PlayerListMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.PlayerListMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.PlayerListMessage build() {
        de.pokerth.protocol.ProtoBuf.PlayerListMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.PlayerListMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.PlayerListMessage result = new de.pokerth.protocol.ProtoBuf.PlayerListMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.PlayerListMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.playerId_ = playerId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.playerListNotification_ = playerListNotification_;
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.PlayerListMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.PlayerListMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.PlayerListMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.PlayerListMessage.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasPlayerListNotification()) {
          setPlayerListNotification(other.getPlayerListNotification());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasPlayerId()) {
          return false;
        }
        if (!hasPlayerListNotification()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                playerId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                int tmpRaw = input.readEnum();
                de.pokerth.protocol.ProtoBuf.PlayerListMessage.PlayerListNotification tmpValue =
                    de.pokerth.protocol.ProtoBuf.PlayerListMessage.PlayerListNotification.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(2, tmpRaw);
                } else {
                  playerListNotification_ = tmpRaw;
                  bitField0_ |= 0x00000002;
                }
                break;
              } // case 16
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * <code>required uint32 playerId = 1;</code>
       * @return Whether the playerId field is set.
       */
      @java.lang.Override
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 playerId = 1;</code>
       * @return The playerId.
       */
      @java.lang.Override
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * <code>required uint32 playerId = 1;</code>
       * @param value The playerId to set.
       * @return This builder for chaining.
       */
      public Builder setPlayerId(int value) {
        
        playerId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 playerId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private int playerListNotification_ = 0;
      /**
       * <code>required .PlayerListMessage.PlayerListNotification playerListNotification = 2;</code>
       * @return Whether the playerListNotification field is set.
       */
      @java.lang.Override public boolean hasPlayerListNotification() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required .PlayerListMessage.PlayerListNotification playerListNotification = 2;</code>
       * @return The playerListNotification.
       */
      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.PlayerListMessage.PlayerListNotification getPlayerListNotification() {
        de.pokerth.protocol.ProtoBuf.PlayerListMessage.PlayerListNotification result = de.pokerth.protocol.ProtoBuf.PlayerListMessage.PlayerListNotification.forNumber(playerListNotification_);
        return result == null ? de.pokerth.protocol.ProtoBuf.PlayerListMessage.PlayerListNotification.playerListNew : result;
      }
      /**
       * <code>required .PlayerListMessage.PlayerListNotification playerListNotification = 2;</code>
       * @param value The playerListNotification to set.
       * @return This builder for chaining.
       */
      public Builder setPlayerListNotification(de.pokerth.protocol.ProtoBuf.PlayerListMessage.PlayerListNotification value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        playerListNotification_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>required .PlayerListMessage.PlayerListNotification playerListNotification = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearPlayerListNotification() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerListNotification_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:PlayerListMessage)
    }

    // @@protoc_insertion_point(class_scope:PlayerListMessage)
    private static final de.pokerth.protocol.ProtoBuf.PlayerListMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.PlayerListMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.PlayerListMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<PlayerListMessage>
        PARSER = new com.google.protobuf.AbstractParser<PlayerListMessage>() {
      @java.lang.Override
      public PlayerListMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<PlayerListMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.PlayerListMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    int getGameId();

    /**
     * <code>required .NetGameMode gameMode = 2;</code>
     * @return Whether the gameMode field is set.
     */
    boolean hasGameMode();
    /**
     * <code>required .NetGameMode gameMode = 2;</code>
     * @return The gameMode.
     */
    de.pokerth.protocol.ProtoBuf.NetGameMode getGameMode();

    /**
     * <code>required bool isPrivate = 3;</code>
     * @return Whether the isPrivate field is set.
     */
    boolean hasIsPrivate();
    /**
     * <code>required bool isPrivate = 3;</code>
     * @return The isPrivate.
     */
    boolean getIsPrivate();

    /**
     * <code>repeated uint32 playerIds = 4 [packed = true];</code>
     * @return A list containing the playerIds.
     */
    java.util.List<java.lang.Integer> getPlayerIdsList();
    /**
     * <code>repeated uint32 playerIds = 4 [packed = true];</code>
     * @return The count of playerIds.
     */
    int getPlayerIdsCount();
    /**
     * <code>repeated uint32 playerIds = 4 [packed = true];</code>
     * @param index The index of the element to return.
     * @return The playerIds at the given index.
     */
    int getPlayerIds(int index);

    /**
     * <code>required uint32 adminPlayerId = 5;</code>
     * @return Whether the adminPlayerId field is set.
     */
    boolean hasAdminPlayerId();
    /**
     * <code>required uint32 adminPlayerId = 5;</code>
     * @return The adminPlayerId.
     */
    int getAdminPlayerId();

    /**
     * <code>required .NetGameInfo gameInfo = 6;</code>
     * @return Whether the gameInfo field is set.
     */
    boolean hasGameInfo();
    /**
     * <code>required .NetGameInfo gameInfo = 6;</code>
     * @return The gameInfo.
     */
    de.pokerth.protocol.ProtoBuf.NetGameInfo getGameInfo();
    /**
     * <code>required .NetGameInfo gameInfo = 6;</code>
     */
    de.pokerth.protocol.ProtoBuf.NetGameInfoOrBuilder getGameInfoOrBuilder();

    /**
     * <code>repeated uint32 spectatorIds = 7 [packed = true];</code>
     * @return A list containing the spectatorIds.
     */
    java.util.List<java.lang.Integer> getSpectatorIdsList();
    /**
     * <code>repeated uint32 spectatorIds = 7 [packed = true];</code>
     * @return The count of spectatorIds.
     */
    int getSpectatorIdsCount();
    /**
     * <code>repeated uint32 spectatorIds = 7 [packed = true];</code>
     * @param index The index of the element to return.
     * @return The spectatorIds at the given index.
     */
    int getSpectatorIds(int index);
  }
  /**
   * Protobuf type {@code GameListNewMessage}
   */
  public static final class GameListNewMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:GameListNewMessage)
      GameListNewMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use GameListNewMessage.newBuilder() to construct.
    private GameListNewMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private GameListNewMessage() {
      gameMode_ = 1;
      playerIds_ = emptyIntList();
      spectatorIds_ = emptyIntList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new GameListNewMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_GameListNewMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_GameListNewMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.GameListNewMessage.class, de.pokerth.protocol.ProtoBuf.GameListNewMessage.Builder.class);
    }

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_ = 0;
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    @java.lang.Override
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    @java.lang.Override
    public int getGameId() {
      return gameId_;
    }

    public static final int GAMEMODE_FIELD_NUMBER = 2;
    private int gameMode_ = 1;
    /**
     * <code>required .NetGameMode gameMode = 2;</code>
     * @return Whether the gameMode field is set.
     */
    @java.lang.Override public boolean hasGameMode() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required .NetGameMode gameMode = 2;</code>
     * @return The gameMode.
     */
    @java.lang.Override public de.pokerth.protocol.ProtoBuf.NetGameMode getGameMode() {
      de.pokerth.protocol.ProtoBuf.NetGameMode result = de.pokerth.protocol.ProtoBuf.NetGameMode.forNumber(gameMode_);
      return result == null ? de.pokerth.protocol.ProtoBuf.NetGameMode.netGameCreated : result;
    }

    public static final int ISPRIVATE_FIELD_NUMBER = 3;
    private boolean isPrivate_ = false;
    /**
     * <code>required bool isPrivate = 3;</code>
     * @return Whether the isPrivate field is set.
     */
    @java.lang.Override
    public boolean hasIsPrivate() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>required bool isPrivate = 3;</code>
     * @return The isPrivate.
     */
    @java.lang.Override
    public boolean getIsPrivate() {
      return isPrivate_;
    }

    public static final int PLAYERIDS_FIELD_NUMBER = 4;
    @SuppressWarnings("serial")
    private com.google.protobuf.Internal.IntList playerIds_;
    /**
     * <code>repeated uint32 playerIds = 4 [packed = true];</code>
     * @return A list containing the playerIds.
     */
    @java.lang.Override
    public java.util.List<java.lang.Integer>
        getPlayerIdsList() {
      return playerIds_;
    }
    /**
     * <code>repeated uint32 playerIds = 4 [packed = true];</code>
     * @return The count of playerIds.
     */
    public int getPlayerIdsCount() {
      return playerIds_.size();
    }
    /**
     * <code>repeated uint32 playerIds = 4 [packed = true];</code>
     * @param index The index of the element to return.
     * @return The playerIds at the given index.
     */
    public int getPlayerIds(int index) {
      return playerIds_.getInt(index);
    }
    private int playerIdsMemoizedSerializedSize = -1;

    public static final int ADMINPLAYERID_FIELD_NUMBER = 5;
    private int adminPlayerId_ = 0;
    /**
     * <code>required uint32 adminPlayerId = 5;</code>
     * @return Whether the adminPlayerId field is set.
     */
    @java.lang.Override
    public boolean hasAdminPlayerId() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>required uint32 adminPlayerId = 5;</code>
     * @return The adminPlayerId.
     */
    @java.lang.Override
    public int getAdminPlayerId() {
      return adminPlayerId_;
    }

    public static final int GAMEINFO_FIELD_NUMBER = 6;
    private de.pokerth.protocol.ProtoBuf.NetGameInfo gameInfo_;
    /**
     * <code>required .NetGameInfo gameInfo = 6;</code>
     * @return Whether the gameInfo field is set.
     */
    @java.lang.Override
    public boolean hasGameInfo() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <code>required .NetGameInfo gameInfo = 6;</code>
     * @return The gameInfo.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.NetGameInfo getGameInfo() {
      return gameInfo_ == null ? de.pokerth.protocol.ProtoBuf.NetGameInfo.getDefaultInstance() : gameInfo_;
    }
    /**
     * <code>required .NetGameInfo gameInfo = 6;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.NetGameInfoOrBuilder getGameInfoOrBuilder() {
      return gameInfo_ == null ? de.pokerth.protocol.ProtoBuf.NetGameInfo.getDefaultInstance() : gameInfo_;
    }

    public static final int SPECTATORIDS_FIELD_NUMBER = 7;
    @SuppressWarnings("serial")
    private com.google.protobuf.Internal.IntList spectatorIds_;
    /**
     * <code>repeated uint32 spectatorIds = 7 [packed = true];</code>
     * @return A list containing the spectatorIds.
     */
    @java.lang.Override
    public java.util.List<java.lang.Integer>
        getSpectatorIdsList() {
      return spectatorIds_;
    }
    /**
     * <code>repeated uint32 spectatorIds = 7 [packed = true];</code>
     * @return The count of spectatorIds.
     */
    public int getSpectatorIdsCount() {
      return spectatorIds_.size();
    }
    /**
     * <code>repeated uint32 spectatorIds = 7 [packed = true];</code>
     * @param index The index of the element to return.
     * @return The spectatorIds at the given index.
     */
    public int getSpectatorIds(int index) {
      return spectatorIds_.getInt(index);
    }
    private int spectatorIdsMemoizedSerializedSize = -1;

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasGameMode()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasIsPrivate()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasAdminPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasGameInfo()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getGameInfo().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeEnum(2, gameMode_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeBool(3, isPrivate_);
      }
      if (getPlayerIdsList().size() > 0) {
        output.writeUInt32NoTag(34);
        output.writeUInt32NoTag(playerIdsMemoizedSerializedSize);
      }
      for (int i = 0; i < playerIds_.size(); i++) {
        output.writeUInt32NoTag(playerIds_.getInt(i));
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeUInt32(5, adminPlayerId_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeMessage(6, getGameInfo());
      }
      if (getSpectatorIdsList().size() > 0) {
        output.writeUInt32NoTag(58);
        output.writeUInt32NoTag(spectatorIdsMemoizedSerializedSize);
      }
      for (int i = 0; i < spectatorIds_.size(); i++) {
        output.writeUInt32NoTag(spectatorIds_.getInt(i));
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, gameMode_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, isPrivate_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < playerIds_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeUInt32SizeNoTag(playerIds_.getInt(i));
        }
        size += dataSize;
        if (!getPlayerIdsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        playerIdsMemoizedSerializedSize = dataSize;
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, adminPlayerId_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, getGameInfo());
      }
      {
        int dataSize = 0;
        for (int i = 0; i < spectatorIds_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeUInt32SizeNoTag(spectatorIds_.getInt(i));
        }
        size += dataSize;
        if (!getSpectatorIdsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        spectatorIdsMemoizedSerializedSize = dataSize;
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.GameListNewMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.GameListNewMessage other = (de.pokerth.protocol.ProtoBuf.GameListNewMessage) obj;

      if (hasGameId() != other.hasGameId()) return false;
      if (hasGameId()) {
        if (getGameId()
            != other.getGameId()) return false;
      }
      if (hasGameMode() != other.hasGameMode()) return false;
      if (hasGameMode()) {
        if (gameMode_ != other.gameMode_) return false;
      }
      if (hasIsPrivate() != other.hasIsPrivate()) return false;
      if (hasIsPrivate()) {
        if (getIsPrivate()
            != other.getIsPrivate()) return false;
      }
      if (!getPlayerIdsList()
          .equals(other.getPlayerIdsList())) return false;
      if (hasAdminPlayerId() != other.hasAdminPlayerId()) return false;
      if (hasAdminPlayerId()) {
        if (getAdminPlayerId()
            != other.getAdminPlayerId()) return false;
      }
      if (hasGameInfo() != other.hasGameInfo()) return false;
      if (hasGameInfo()) {
        if (!getGameInfo()
            .equals(other.getGameInfo())) return false;
      }
      if (!getSpectatorIdsList()
          .equals(other.getSpectatorIdsList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasGameId()) {
        hash = (37 * hash) + GAMEID_FIELD_NUMBER;
        hash = (53 * hash) + getGameId();
      }
      if (hasGameMode()) {
        hash = (37 * hash) + GAMEMODE_FIELD_NUMBER;
        hash = (53 * hash) + gameMode_;
      }
      if (hasIsPrivate()) {
        hash = (37 * hash) + ISPRIVATE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getIsPrivate());
      }
      if (getPlayerIdsCount() > 0) {
        hash = (37 * hash) + PLAYERIDS_FIELD_NUMBER;
        hash = (53 * hash) + getPlayerIdsList().hashCode();
      }
      if (hasAdminPlayerId()) {
        hash = (37 * hash) + ADMINPLAYERID_FIELD_NUMBER;
        hash = (53 * hash) + getAdminPlayerId();
      }
      if (hasGameInfo()) {
        hash = (37 * hash) + GAMEINFO_FIELD_NUMBER;
        hash = (53 * hash) + getGameInfo().hashCode();
      }
      if (getSpectatorIdsCount() > 0) {
        hash = (37 * hash) + SPECTATORIDS_FIELD_NUMBER;
        hash = (53 * hash) + getSpectatorIdsList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.GameListNewMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListNewMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListNewMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListNewMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListNewMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListNewMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListNewMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListNewMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListNewMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListNewMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListNewMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListNewMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.GameListNewMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code GameListNewMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:GameListNewMessage)
        de.pokerth.protocol.ProtoBuf.GameListNewMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_GameListNewMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_GameListNewMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.GameListNewMessage.class, de.pokerth.protocol.ProtoBuf.GameListNewMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.GameListNewMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getGameInfoFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        gameId_ = 0;
        gameMode_ = 1;
        isPrivate_ = false;
        playerIds_ = emptyIntList();
        adminPlayerId_ = 0;
        gameInfo_ = null;
        if (gameInfoBuilder_ != null) {
          gameInfoBuilder_.dispose();
          gameInfoBuilder_ = null;
        }
        spectatorIds_ = emptyIntList();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_GameListNewMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.GameListNewMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.GameListNewMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.GameListNewMessage build() {
        de.pokerth.protocol.ProtoBuf.GameListNewMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.GameListNewMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.GameListNewMessage result = new de.pokerth.protocol.ProtoBuf.GameListNewMessage(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(de.pokerth.protocol.ProtoBuf.GameListNewMessage result) {
        if (((bitField0_ & 0x00000008) != 0)) {
          playerIds_.makeImmutable();
          bitField0_ = (bitField0_ & ~0x00000008);
        }
        result.playerIds_ = playerIds_;
        if (((bitField0_ & 0x00000040) != 0)) {
          spectatorIds_.makeImmutable();
          bitField0_ = (bitField0_ & ~0x00000040);
        }
        result.spectatorIds_ = spectatorIds_;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.GameListNewMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.gameId_ = gameId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.gameMode_ = gameMode_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.isPrivate_ = isPrivate_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.adminPlayerId_ = adminPlayerId_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.gameInfo_ = gameInfoBuilder_ == null
              ? gameInfo_
              : gameInfoBuilder_.build();
          to_bitField0_ |= 0x00000010;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.GameListNewMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.GameListNewMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.GameListNewMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.GameListNewMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasGameMode()) {
          setGameMode(other.getGameMode());
        }
        if (other.hasIsPrivate()) {
          setIsPrivate(other.getIsPrivate());
        }
        if (!other.playerIds_.isEmpty()) {
          if (playerIds_.isEmpty()) {
            playerIds_ = other.playerIds_;
            bitField0_ = (bitField0_ & ~0x00000008);
          } else {
            ensurePlayerIdsIsMutable();
            playerIds_.addAll(other.playerIds_);
          }
          onChanged();
        }
        if (other.hasAdminPlayerId()) {
          setAdminPlayerId(other.getAdminPlayerId());
        }
        if (other.hasGameInfo()) {
          mergeGameInfo(other.getGameInfo());
        }
        if (!other.spectatorIds_.isEmpty()) {
          if (spectatorIds_.isEmpty()) {
            spectatorIds_ = other.spectatorIds_;
            bitField0_ = (bitField0_ & ~0x00000040);
          } else {
            ensureSpectatorIdsIsMutable();
            spectatorIds_.addAll(other.spectatorIds_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasGameId()) {
          return false;
        }
        if (!hasGameMode()) {
          return false;
        }
        if (!hasIsPrivate()) {
          return false;
        }
        if (!hasAdminPlayerId()) {
          return false;
        }
        if (!hasGameInfo()) {
          return false;
        }
        if (!getGameInfo().isInitialized()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                gameId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                int tmpRaw = input.readEnum();
                de.pokerth.protocol.ProtoBuf.NetGameMode tmpValue =
                    de.pokerth.protocol.ProtoBuf.NetGameMode.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(2, tmpRaw);
                } else {
                  gameMode_ = tmpRaw;
                  bitField0_ |= 0x00000002;
                }
                break;
              } // case 16
              case 24: {
                isPrivate_ = input.readBool();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 32: {
                int v = input.readUInt32();
                ensurePlayerIdsIsMutable();
                playerIds_.addInt(v);
                break;
              } // case 32
              case 34: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                ensurePlayerIdsIsMutable();
                while (input.getBytesUntilLimit() > 0) {
                  playerIds_.addInt(input.readUInt32());
                }
                input.popLimit(limit);
                break;
              } // case 34
              case 40: {
                adminPlayerId_ = input.readUInt32();
                bitField0_ |= 0x00000010;
                break;
              } // case 40
              case 50: {
                input.readMessage(
                    getGameInfoFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000020;
                break;
              } // case 50
              case 56: {
                int v = input.readUInt32();
                ensureSpectatorIdsIsMutable();
                spectatorIds_.addInt(v);
                break;
              } // case 56
              case 58: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                ensureSpectatorIdsIsMutable();
                while (input.getBytesUntilLimit() > 0) {
                  spectatorIds_.addInt(input.readUInt32());
                }
                input.popLimit(limit);
                break;
              } // case 58
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return Whether the gameId field is set.
       */
      @java.lang.Override
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return The gameId.
       */
      @java.lang.Override
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @param value The gameId to set.
       * @return This builder for chaining.
       */
      public Builder setGameId(int value) {
        
        gameId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        onChanged();
        return this;
      }

      private int gameMode_ = 1;
      /**
       * <code>required .NetGameMode gameMode = 2;</code>
       * @return Whether the gameMode field is set.
       */
      @java.lang.Override public boolean hasGameMode() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required .NetGameMode gameMode = 2;</code>
       * @return The gameMode.
       */
      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.NetGameMode getGameMode() {
        de.pokerth.protocol.ProtoBuf.NetGameMode result = de.pokerth.protocol.ProtoBuf.NetGameMode.forNumber(gameMode_);
        return result == null ? de.pokerth.protocol.ProtoBuf.NetGameMode.netGameCreated : result;
      }
      /**
       * <code>required .NetGameMode gameMode = 2;</code>
       * @param value The gameMode to set.
       * @return This builder for chaining.
       */
      public Builder setGameMode(de.pokerth.protocol.ProtoBuf.NetGameMode value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        gameMode_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>required .NetGameMode gameMode = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearGameMode() {
        bitField0_ = (bitField0_ & ~0x00000002);
        gameMode_ = 1;
        onChanged();
        return this;
      }

      private boolean isPrivate_ ;
      /**
       * <code>required bool isPrivate = 3;</code>
       * @return Whether the isPrivate field is set.
       */
      @java.lang.Override
      public boolean hasIsPrivate() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>required bool isPrivate = 3;</code>
       * @return The isPrivate.
       */
      @java.lang.Override
      public boolean getIsPrivate() {
        return isPrivate_;
      }
      /**
       * <code>required bool isPrivate = 3;</code>
       * @param value The isPrivate to set.
       * @return This builder for chaining.
       */
      public Builder setIsPrivate(boolean value) {
        
        isPrivate_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>required bool isPrivate = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearIsPrivate() {
        bitField0_ = (bitField0_ & ~0x00000004);
        isPrivate_ = false;
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.IntList playerIds_ = emptyIntList();
      private void ensurePlayerIdsIsMutable() {
        if (!((bitField0_ & 0x00000008) != 0)) {
          playerIds_ = mutableCopy(playerIds_);
          bitField0_ |= 0x00000008;
        }
      }
      /**
       * <code>repeated uint32 playerIds = 4 [packed = true];</code>
       * @return A list containing the playerIds.
       */
      public java.util.List<java.lang.Integer>
          getPlayerIdsList() {
        return ((bitField0_ & 0x00000008) != 0) ?
                 java.util.Collections.unmodifiableList(playerIds_) : playerIds_;
      }
      /**
       * <code>repeated uint32 playerIds = 4 [packed = true];</code>
       * @return The count of playerIds.
       */
      public int getPlayerIdsCount() {
        return playerIds_.size();
      }
      /**
       * <code>repeated uint32 playerIds = 4 [packed = true];</code>
       * @param index The index of the element to return.
       * @return The playerIds at the given index.
       */
      public int getPlayerIds(int index) {
        return playerIds_.getInt(index);
      }
      /**
       * <code>repeated uint32 playerIds = 4 [packed = true];</code>
       * @param index The index to set the value at.
       * @param value The playerIds to set.
       * @return This builder for chaining.
       */
      public Builder setPlayerIds(
          int index, int value) {
        
        ensurePlayerIdsIsMutable();
        playerIds_.setInt(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated uint32 playerIds = 4 [packed = true];</code>
       * @param value The playerIds to add.
       * @return This builder for chaining.
       */
      public Builder addPlayerIds(int value) {
        
        ensurePlayerIdsIsMutable();
        playerIds_.addInt(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated uint32 playerIds = 4 [packed = true];</code>
       * @param values The playerIds to add.
       * @return This builder for chaining.
       */
      public Builder addAllPlayerIds(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensurePlayerIdsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, playerIds_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated uint32 playerIds = 4 [packed = true];</code>
       * @return This builder for chaining.
       */
      public Builder clearPlayerIds() {
        playerIds_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }

      private int adminPlayerId_ ;
      /**
       * <code>required uint32 adminPlayerId = 5;</code>
       * @return Whether the adminPlayerId field is set.
       */
      @java.lang.Override
      public boolean hasAdminPlayerId() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <code>required uint32 adminPlayerId = 5;</code>
       * @return The adminPlayerId.
       */
      @java.lang.Override
      public int getAdminPlayerId() {
        return adminPlayerId_;
      }
      /**
       * <code>required uint32 adminPlayerId = 5;</code>
       * @param value The adminPlayerId to set.
       * @return This builder for chaining.
       */
      public Builder setAdminPlayerId(int value) {
        
        adminPlayerId_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 adminPlayerId = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearAdminPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000010);
        adminPlayerId_ = 0;
        onChanged();
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.NetGameInfo gameInfo_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.NetGameInfo, de.pokerth.protocol.ProtoBuf.NetGameInfo.Builder, de.pokerth.protocol.ProtoBuf.NetGameInfoOrBuilder> gameInfoBuilder_;
      /**
       * <code>required .NetGameInfo gameInfo = 6;</code>
       * @return Whether the gameInfo field is set.
       */
      public boolean hasGameInfo() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <code>required .NetGameInfo gameInfo = 6;</code>
       * @return The gameInfo.
       */
      public de.pokerth.protocol.ProtoBuf.NetGameInfo getGameInfo() {
        if (gameInfoBuilder_ == null) {
          return gameInfo_ == null ? de.pokerth.protocol.ProtoBuf.NetGameInfo.getDefaultInstance() : gameInfo_;
        } else {
          return gameInfoBuilder_.getMessage();
        }
      }
      /**
       * <code>required .NetGameInfo gameInfo = 6;</code>
       */
      public Builder setGameInfo(de.pokerth.protocol.ProtoBuf.NetGameInfo value) {
        if (gameInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          gameInfo_ = value;
        } else {
          gameInfoBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>required .NetGameInfo gameInfo = 6;</code>
       */
      public Builder setGameInfo(
          de.pokerth.protocol.ProtoBuf.NetGameInfo.Builder builderForValue) {
        if (gameInfoBuilder_ == null) {
          gameInfo_ = builderForValue.build();
        } else {
          gameInfoBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>required .NetGameInfo gameInfo = 6;</code>
       */
      public Builder mergeGameInfo(de.pokerth.protocol.ProtoBuf.NetGameInfo value) {
        if (gameInfoBuilder_ == null) {
          if (((bitField0_ & 0x00000020) != 0) &&
            gameInfo_ != null &&
            gameInfo_ != de.pokerth.protocol.ProtoBuf.NetGameInfo.getDefaultInstance()) {
            getGameInfoBuilder().mergeFrom(value);
          } else {
            gameInfo_ = value;
          }
        } else {
          gameInfoBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>required .NetGameInfo gameInfo = 6;</code>
       */
      public Builder clearGameInfo() {
        bitField0_ = (bitField0_ & ~0x00000020);
        gameInfo_ = null;
        if (gameInfoBuilder_ != null) {
          gameInfoBuilder_.dispose();
          gameInfoBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>required .NetGameInfo gameInfo = 6;</code>
       */
      public de.pokerth.protocol.ProtoBuf.NetGameInfo.Builder getGameInfoBuilder() {
        bitField0_ |= 0x00000020;
        onChanged();
        return getGameInfoFieldBuilder().getBuilder();
      }
      /**
       * <code>required .NetGameInfo gameInfo = 6;</code>
       */
      public de.pokerth.protocol.ProtoBuf.NetGameInfoOrBuilder getGameInfoOrBuilder() {
        if (gameInfoBuilder_ != null) {
          return gameInfoBuilder_.getMessageOrBuilder();
        } else {
          return gameInfo_ == null ?
              de.pokerth.protocol.ProtoBuf.NetGameInfo.getDefaultInstance() : gameInfo_;
        }
      }
      /**
       * <code>required .NetGameInfo gameInfo = 6;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.NetGameInfo, de.pokerth.protocol.ProtoBuf.NetGameInfo.Builder, de.pokerth.protocol.ProtoBuf.NetGameInfoOrBuilder> 
          getGameInfoFieldBuilder() {
        if (gameInfoBuilder_ == null) {
          gameInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.NetGameInfo, de.pokerth.protocol.ProtoBuf.NetGameInfo.Builder, de.pokerth.protocol.ProtoBuf.NetGameInfoOrBuilder>(
                  getGameInfo(),
                  getParentForChildren(),
                  isClean());
          gameInfo_ = null;
        }
        return gameInfoBuilder_;
      }

      private com.google.protobuf.Internal.IntList spectatorIds_ = emptyIntList();
      private void ensureSpectatorIdsIsMutable() {
        if (!((bitField0_ & 0x00000040) != 0)) {
          spectatorIds_ = mutableCopy(spectatorIds_);
          bitField0_ |= 0x00000040;
        }
      }
      /**
       * <code>repeated uint32 spectatorIds = 7 [packed = true];</code>
       * @return A list containing the spectatorIds.
       */
      public java.util.List<java.lang.Integer>
          getSpectatorIdsList() {
        return ((bitField0_ & 0x00000040) != 0) ?
                 java.util.Collections.unmodifiableList(spectatorIds_) : spectatorIds_;
      }
      /**
       * <code>repeated uint32 spectatorIds = 7 [packed = true];</code>
       * @return The count of spectatorIds.
       */
      public int getSpectatorIdsCount() {
        return spectatorIds_.size();
      }
      /**
       * <code>repeated uint32 spectatorIds = 7 [packed = true];</code>
       * @param index The index of the element to return.
       * @return The spectatorIds at the given index.
       */
      public int getSpectatorIds(int index) {
        return spectatorIds_.getInt(index);
      }
      /**
       * <code>repeated uint32 spectatorIds = 7 [packed = true];</code>
       * @param index The index to set the value at.
       * @param value The spectatorIds to set.
       * @return This builder for chaining.
       */
      public Builder setSpectatorIds(
          int index, int value) {
        
        ensureSpectatorIdsIsMutable();
        spectatorIds_.setInt(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated uint32 spectatorIds = 7 [packed = true];</code>
       * @param value The spectatorIds to add.
       * @return This builder for chaining.
       */
      public Builder addSpectatorIds(int value) {
        
        ensureSpectatorIdsIsMutable();
        spectatorIds_.addInt(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated uint32 spectatorIds = 7 [packed = true];</code>
       * @param values The spectatorIds to add.
       * @return This builder for chaining.
       */
      public Builder addAllSpectatorIds(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensureSpectatorIdsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, spectatorIds_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated uint32 spectatorIds = 7 [packed = true];</code>
       * @return This builder for chaining.
       */
      public Builder clearSpectatorIds() {
        spectatorIds_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00000040);
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:GameListNewMessage)
    }

    // @@protoc_insertion_point(class_scope:GameListNewMessage)
    private static final de.pokerth.protocol.ProtoBuf.GameListNewMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.GameListNewMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.GameListNewMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<GameListNewMessage>
        PARSER = new com.google.protobuf.AbstractParser<GameListNewMessage>() {
      @java.lang.Override
      public GameListNewMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<GameListNewMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.GameListNewMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    int getGameId();

    /**
     * <code>required .NetGameMode gameMode = 2;</code>
     * @return Whether the gameMode field is set.
     */
    boolean hasGameMode();
    /**
     * <code>required .NetGameMode gameMode = 2;</code>
     * @return The gameMode.
     */
    de.pokerth.protocol.ProtoBuf.NetGameMode getGameMode();
  }
  /**
   * Protobuf type {@code GameListUpdateMessage}
   */
  public static final class GameListUpdateMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:GameListUpdateMessage)
      GameListUpdateMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use GameListUpdateMessage.newBuilder() to construct.
    private GameListUpdateMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private GameListUpdateMessage() {
      gameMode_ = 1;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new GameListUpdateMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_GameListUpdateMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_GameListUpdateMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.GameListUpdateMessage.class, de.pokerth.protocol.ProtoBuf.GameListUpdateMessage.Builder.class);
    }

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_ = 0;
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    @java.lang.Override
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    @java.lang.Override
    public int getGameId() {
      return gameId_;
    }

    public static final int GAMEMODE_FIELD_NUMBER = 2;
    private int gameMode_ = 1;
    /**
     * <code>required .NetGameMode gameMode = 2;</code>
     * @return Whether the gameMode field is set.
     */
    @java.lang.Override public boolean hasGameMode() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required .NetGameMode gameMode = 2;</code>
     * @return The gameMode.
     */
    @java.lang.Override public de.pokerth.protocol.ProtoBuf.NetGameMode getGameMode() {
      de.pokerth.protocol.ProtoBuf.NetGameMode result = de.pokerth.protocol.ProtoBuf.NetGameMode.forNumber(gameMode_);
      return result == null ? de.pokerth.protocol.ProtoBuf.NetGameMode.netGameCreated : result;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

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

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeEnum(2, gameMode_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, gameMode_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.GameListUpdateMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.GameListUpdateMessage other = (de.pokerth.protocol.ProtoBuf.GameListUpdateMessage) obj;

      if (hasGameId() != other.hasGameId()) return false;
      if (hasGameId()) {
        if (getGameId()
            != other.getGameId()) return false;
      }
      if (hasGameMode() != other.hasGameMode()) return false;
      if (hasGameMode()) {
        if (gameMode_ != other.gameMode_) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasGameId()) {
        hash = (37 * hash) + GAMEID_FIELD_NUMBER;
        hash = (53 * hash) + getGameId();
      }
      if (hasGameMode()) {
        hash = (37 * hash) + GAMEMODE_FIELD_NUMBER;
        hash = (53 * hash) + gameMode_;
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.GameListUpdateMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListUpdateMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListUpdateMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListUpdateMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListUpdateMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListUpdateMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListUpdateMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListUpdateMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListUpdateMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListUpdateMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListUpdateMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListUpdateMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.GameListUpdateMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code GameListUpdateMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:GameListUpdateMessage)
        de.pokerth.protocol.ProtoBuf.GameListUpdateMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_GameListUpdateMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_GameListUpdateMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.GameListUpdateMessage.class, de.pokerth.protocol.ProtoBuf.GameListUpdateMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.GameListUpdateMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        gameId_ = 0;
        gameMode_ = 1;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_GameListUpdateMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.GameListUpdateMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.GameListUpdateMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.GameListUpdateMessage build() {
        de.pokerth.protocol.ProtoBuf.GameListUpdateMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.GameListUpdateMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.GameListUpdateMessage result = new de.pokerth.protocol.ProtoBuf.GameListUpdateMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.GameListUpdateMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.gameId_ = gameId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.gameMode_ = gameMode_;
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.GameListUpdateMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.GameListUpdateMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.GameListUpdateMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.GameListUpdateMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasGameMode()) {
          setGameMode(other.getGameMode());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasGameId()) {
          return false;
        }
        if (!hasGameMode()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                gameId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                int tmpRaw = input.readEnum();
                de.pokerth.protocol.ProtoBuf.NetGameMode tmpValue =
                    de.pokerth.protocol.ProtoBuf.NetGameMode.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(2, tmpRaw);
                } else {
                  gameMode_ = tmpRaw;
                  bitField0_ |= 0x00000002;
                }
                break;
              } // case 16
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return Whether the gameId field is set.
       */
      @java.lang.Override
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return The gameId.
       */
      @java.lang.Override
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @param value The gameId to set.
       * @return This builder for chaining.
       */
      public Builder setGameId(int value) {
        
        gameId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        onChanged();
        return this;
      }

      private int gameMode_ = 1;
      /**
       * <code>required .NetGameMode gameMode = 2;</code>
       * @return Whether the gameMode field is set.
       */
      @java.lang.Override public boolean hasGameMode() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required .NetGameMode gameMode = 2;</code>
       * @return The gameMode.
       */
      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.NetGameMode getGameMode() {
        de.pokerth.protocol.ProtoBuf.NetGameMode result = de.pokerth.protocol.ProtoBuf.NetGameMode.forNumber(gameMode_);
        return result == null ? de.pokerth.protocol.ProtoBuf.NetGameMode.netGameCreated : result;
      }
      /**
       * <code>required .NetGameMode gameMode = 2;</code>
       * @param value The gameMode to set.
       * @return This builder for chaining.
       */
      public Builder setGameMode(de.pokerth.protocol.ProtoBuf.NetGameMode value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        gameMode_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>required .NetGameMode gameMode = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearGameMode() {
        bitField0_ = (bitField0_ & ~0x00000002);
        gameMode_ = 1;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:GameListUpdateMessage)
    }

    // @@protoc_insertion_point(class_scope:GameListUpdateMessage)
    private static final de.pokerth.protocol.ProtoBuf.GameListUpdateMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.GameListUpdateMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.GameListUpdateMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<GameListUpdateMessage>
        PARSER = new com.google.protobuf.AbstractParser<GameListUpdateMessage>() {
      @java.lang.Override
      public GameListUpdateMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<GameListUpdateMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.GameListUpdateMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    int getGameId();

    /**
     * <code>required uint32 playerId = 2;</code>
     * @return Whether the playerId field is set.
     */
    boolean hasPlayerId();
    /**
     * <code>required uint32 playerId = 2;</code>
     * @return The playerId.
     */
    int getPlayerId();
  }
  /**
   * Protobuf type {@code GameListPlayerJoinedMessage}
   */
  public static final class GameListPlayerJoinedMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:GameListPlayerJoinedMessage)
      GameListPlayerJoinedMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use GameListPlayerJoinedMessage.newBuilder() to construct.
    private GameListPlayerJoinedMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private GameListPlayerJoinedMessage() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new GameListPlayerJoinedMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_GameListPlayerJoinedMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_GameListPlayerJoinedMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage.class, de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage.Builder.class);
    }

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_ = 0;
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    @java.lang.Override
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    @java.lang.Override
    public int getGameId() {
      return gameId_;
    }

    public static final int PLAYERID_FIELD_NUMBER = 2;
    private int playerId_ = 0;
    /**
     * <code>required uint32 playerId = 2;</code>
     * @return Whether the playerId field is set.
     */
    @java.lang.Override
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required uint32 playerId = 2;</code>
     * @return The playerId.
     */
    @java.lang.Override
    public int getPlayerId() {
      return playerId_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

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

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt32(2, playerId_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, playerId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage other = (de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage) obj;

      if (hasGameId() != other.hasGameId()) return false;
      if (hasGameId()) {
        if (getGameId()
            != other.getGameId()) return false;
      }
      if (hasPlayerId() != other.hasPlayerId()) return false;
      if (hasPlayerId()) {
        if (getPlayerId()
            != other.getPlayerId()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasGameId()) {
        hash = (37 * hash) + GAMEID_FIELD_NUMBER;
        hash = (53 * hash) + getGameId();
      }
      if (hasPlayerId()) {
        hash = (37 * hash) + PLAYERID_FIELD_NUMBER;
        hash = (53 * hash) + getPlayerId();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code GameListPlayerJoinedMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:GameListPlayerJoinedMessage)
        de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_GameListPlayerJoinedMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_GameListPlayerJoinedMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage.class, de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        gameId_ = 0;
        playerId_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_GameListPlayerJoinedMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage build() {
        de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage result = new de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.gameId_ = gameId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.playerId_ = playerId_;
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasGameId()) {
          return false;
        }
        if (!hasPlayerId()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                gameId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                playerId_ = input.readUInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return Whether the gameId field is set.
       */
      @java.lang.Override
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return The gameId.
       */
      @java.lang.Override
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @param value The gameId to set.
       * @return This builder for chaining.
       */
      public Builder setGameId(int value) {
        
        gameId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        onChanged();
        return this;
      }

      private int playerId_ ;
      /**
       * <code>required uint32 playerId = 2;</code>
       * @return Whether the playerId field is set.
       */
      @java.lang.Override
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       * @return The playerId.
       */
      @java.lang.Override
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       * @param value The playerId to set.
       * @return This builder for chaining.
       */
      public Builder setPlayerId(int value) {
        
        playerId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:GameListPlayerJoinedMessage)
    }

    // @@protoc_insertion_point(class_scope:GameListPlayerJoinedMessage)
    private static final de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<GameListPlayerJoinedMessage>
        PARSER = new com.google.protobuf.AbstractParser<GameListPlayerJoinedMessage>() {
      @java.lang.Override
      public GameListPlayerJoinedMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<GameListPlayerJoinedMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    int getGameId();

    /**
     * <code>required uint32 playerId = 2;</code>
     * @return Whether the playerId field is set.
     */
    boolean hasPlayerId();
    /**
     * <code>required uint32 playerId = 2;</code>
     * @return The playerId.
     */
    int getPlayerId();
  }
  /**
   * Protobuf type {@code GameListPlayerLeftMessage}
   */
  public static final class GameListPlayerLeftMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:GameListPlayerLeftMessage)
      GameListPlayerLeftMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use GameListPlayerLeftMessage.newBuilder() to construct.
    private GameListPlayerLeftMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private GameListPlayerLeftMessage() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new GameListPlayerLeftMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_GameListPlayerLeftMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_GameListPlayerLeftMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage.class, de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage.Builder.class);
    }

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_ = 0;
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    @java.lang.Override
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    @java.lang.Override
    public int getGameId() {
      return gameId_;
    }

    public static final int PLAYERID_FIELD_NUMBER = 2;
    private int playerId_ = 0;
    /**
     * <code>required uint32 playerId = 2;</code>
     * @return Whether the playerId field is set.
     */
    @java.lang.Override
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required uint32 playerId = 2;</code>
     * @return The playerId.
     */
    @java.lang.Override
    public int getPlayerId() {
      return playerId_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

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

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt32(2, playerId_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, playerId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage other = (de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage) obj;

      if (hasGameId() != other.hasGameId()) return false;
      if (hasGameId()) {
        if (getGameId()
            != other.getGameId()) return false;
      }
      if (hasPlayerId() != other.hasPlayerId()) return false;
      if (hasPlayerId()) {
        if (getPlayerId()
            != other.getPlayerId()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasGameId()) {
        hash = (37 * hash) + GAMEID_FIELD_NUMBER;
        hash = (53 * hash) + getGameId();
      }
      if (hasPlayerId()) {
        hash = (37 * hash) + PLAYERID_FIELD_NUMBER;
        hash = (53 * hash) + getPlayerId();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code GameListPlayerLeftMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:GameListPlayerLeftMessage)
        de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_GameListPlayerLeftMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_GameListPlayerLeftMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage.class, de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        gameId_ = 0;
        playerId_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_GameListPlayerLeftMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage build() {
        de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage result = new de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.gameId_ = gameId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.playerId_ = playerId_;
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasGameId()) {
          return false;
        }
        if (!hasPlayerId()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                gameId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                playerId_ = input.readUInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return Whether the gameId field is set.
       */
      @java.lang.Override
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return The gameId.
       */
      @java.lang.Override
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @param value The gameId to set.
       * @return This builder for chaining.
       */
      public Builder setGameId(int value) {
        
        gameId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        onChanged();
        return this;
      }

      private int playerId_ ;
      /**
       * <code>required uint32 playerId = 2;</code>
       * @return Whether the playerId field is set.
       */
      @java.lang.Override
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       * @return The playerId.
       */
      @java.lang.Override
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       * @param value The playerId to set.
       * @return This builder for chaining.
       */
      public Builder setPlayerId(int value) {
        
        playerId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:GameListPlayerLeftMessage)
    }

    // @@protoc_insertion_point(class_scope:GameListPlayerLeftMessage)
    private static final de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<GameListPlayerLeftMessage>
        PARSER = new com.google.protobuf.AbstractParser<GameListPlayerLeftMessage>() {
      @java.lang.Override
      public GameListPlayerLeftMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<GameListPlayerLeftMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    int getGameId();

    /**
     * <code>required uint32 playerId = 2;</code>
     * @return Whether the playerId field is set.
     */
    boolean hasPlayerId();
    /**
     * <code>required uint32 playerId = 2;</code>
     * @return The playerId.
     */
    int getPlayerId();
  }
  /**
   * Protobuf type {@code GameListSpectatorJoinedMessage}
   */
  public static final class GameListSpectatorJoinedMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:GameListSpectatorJoinedMessage)
      GameListSpectatorJoinedMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use GameListSpectatorJoinedMessage.newBuilder() to construct.
    private GameListSpectatorJoinedMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private GameListSpectatorJoinedMessage() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new GameListSpectatorJoinedMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_GameListSpectatorJoinedMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_GameListSpectatorJoinedMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage.class, de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage.Builder.class);
    }

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_ = 0;
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    @java.lang.Override
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    @java.lang.Override
    public int getGameId() {
      return gameId_;
    }

    public static final int PLAYERID_FIELD_NUMBER = 2;
    private int playerId_ = 0;
    /**
     * <code>required uint32 playerId = 2;</code>
     * @return Whether the playerId field is set.
     */
    @java.lang.Override
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required uint32 playerId = 2;</code>
     * @return The playerId.
     */
    @java.lang.Override
    public int getPlayerId() {
      return playerId_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

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

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt32(2, playerId_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, playerId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage other = (de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage) obj;

      if (hasGameId() != other.hasGameId()) return false;
      if (hasGameId()) {
        if (getGameId()
            != other.getGameId()) return false;
      }
      if (hasPlayerId() != other.hasPlayerId()) return false;
      if (hasPlayerId()) {
        if (getPlayerId()
            != other.getPlayerId()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasGameId()) {
        hash = (37 * hash) + GAMEID_FIELD_NUMBER;
        hash = (53 * hash) + getGameId();
      }
      if (hasPlayerId()) {
        hash = (37 * hash) + PLAYERID_FIELD_NUMBER;
        hash = (53 * hash) + getPlayerId();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code GameListSpectatorJoinedMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:GameListSpectatorJoinedMessage)
        de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_GameListSpectatorJoinedMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_GameListSpectatorJoinedMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage.class, de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        gameId_ = 0;
        playerId_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_GameListSpectatorJoinedMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage build() {
        de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage result = new de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.gameId_ = gameId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.playerId_ = playerId_;
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasGameId()) {
          return false;
        }
        if (!hasPlayerId()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                gameId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                playerId_ = input.readUInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return Whether the gameId field is set.
       */
      @java.lang.Override
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return The gameId.
       */
      @java.lang.Override
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @param value The gameId to set.
       * @return This builder for chaining.
       */
      public Builder setGameId(int value) {
        
        gameId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        onChanged();
        return this;
      }

      private int playerId_ ;
      /**
       * <code>required uint32 playerId = 2;</code>
       * @return Whether the playerId field is set.
       */
      @java.lang.Override
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       * @return The playerId.
       */
      @java.lang.Override
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       * @param value The playerId to set.
       * @return This builder for chaining.
       */
      public Builder setPlayerId(int value) {
        
        playerId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:GameListSpectatorJoinedMessage)
    }

    // @@protoc_insertion_point(class_scope:GameListSpectatorJoinedMessage)
    private static final de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<GameListSpectatorJoinedMessage>
        PARSER = new com.google.protobuf.AbstractParser<GameListSpectatorJoinedMessage>() {
      @java.lang.Override
      public GameListSpectatorJoinedMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<GameListSpectatorJoinedMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    int getGameId();

    /**
     * <code>required uint32 playerId = 2;</code>
     * @return Whether the playerId field is set.
     */
    boolean hasPlayerId();
    /**
     * <code>required uint32 playerId = 2;</code>
     * @return The playerId.
     */
    int getPlayerId();
  }
  /**
   * Protobuf type {@code GameListSpectatorLeftMessage}
   */
  public static final class GameListSpectatorLeftMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:GameListSpectatorLeftMessage)
      GameListSpectatorLeftMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use GameListSpectatorLeftMessage.newBuilder() to construct.
    private GameListSpectatorLeftMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private GameListSpectatorLeftMessage() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new GameListSpectatorLeftMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_GameListSpectatorLeftMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_GameListSpectatorLeftMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage.class, de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage.Builder.class);
    }

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_ = 0;
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    @java.lang.Override
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    @java.lang.Override
    public int getGameId() {
      return gameId_;
    }

    public static final int PLAYERID_FIELD_NUMBER = 2;
    private int playerId_ = 0;
    /**
     * <code>required uint32 playerId = 2;</code>
     * @return Whether the playerId field is set.
     */
    @java.lang.Override
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required uint32 playerId = 2;</code>
     * @return The playerId.
     */
    @java.lang.Override
    public int getPlayerId() {
      return playerId_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

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

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt32(2, playerId_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, playerId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage other = (de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage) obj;

      if (hasGameId() != other.hasGameId()) return false;
      if (hasGameId()) {
        if (getGameId()
            != other.getGameId()) return false;
      }
      if (hasPlayerId() != other.hasPlayerId()) return false;
      if (hasPlayerId()) {
        if (getPlayerId()
            != other.getPlayerId()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasGameId()) {
        hash = (37 * hash) + GAMEID_FIELD_NUMBER;
        hash = (53 * hash) + getGameId();
      }
      if (hasPlayerId()) {
        hash = (37 * hash) + PLAYERID_FIELD_NUMBER;
        hash = (53 * hash) + getPlayerId();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code GameListSpectatorLeftMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:GameListSpectatorLeftMessage)
        de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_GameListSpectatorLeftMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_GameListSpectatorLeftMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage.class, de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        gameId_ = 0;
        playerId_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_GameListSpectatorLeftMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage build() {
        de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage result = new de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.gameId_ = gameId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.playerId_ = playerId_;
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasGameId()) {
          return false;
        }
        if (!hasPlayerId()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                gameId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                playerId_ = input.readUInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return Whether the gameId field is set.
       */
      @java.lang.Override
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return The gameId.
       */
      @java.lang.Override
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @param value The gameId to set.
       * @return This builder for chaining.
       */
      public Builder setGameId(int value) {
        
        gameId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        onChanged();
        return this;
      }

      private int playerId_ ;
      /**
       * <code>required uint32 playerId = 2;</code>
       * @return Whether the playerId field is set.
       */
      @java.lang.Override
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       * @return The playerId.
       */
      @java.lang.Override
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       * @param value The playerId to set.
       * @return This builder for chaining.
       */
      public Builder setPlayerId(int value) {
        
        playerId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:GameListSpectatorLeftMessage)
    }

    // @@protoc_insertion_point(class_scope:GameListSpectatorLeftMessage)
    private static final de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<GameListSpectatorLeftMessage>
        PARSER = new com.google.protobuf.AbstractParser<GameListSpectatorLeftMessage>() {
      @java.lang.Override
      public GameListSpectatorLeftMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<GameListSpectatorLeftMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    int getGameId();

    /**
     * <code>required uint32 newAdminPlayerId = 2;</code>
     * @return Whether the newAdminPlayerId field is set.
     */
    boolean hasNewAdminPlayerId();
    /**
     * <code>required uint32 newAdminPlayerId = 2;</code>
     * @return The newAdminPlayerId.
     */
    int getNewAdminPlayerId();
  }
  /**
   * Protobuf type {@code GameListAdminChangedMessage}
   */
  public static final class GameListAdminChangedMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:GameListAdminChangedMessage)
      GameListAdminChangedMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use GameListAdminChangedMessage.newBuilder() to construct.
    private GameListAdminChangedMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private GameListAdminChangedMessage() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new GameListAdminChangedMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_GameListAdminChangedMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_GameListAdminChangedMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage.class, de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage.Builder.class);
    }

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_ = 0;
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    @java.lang.Override
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    @java.lang.Override
    public int getGameId() {
      return gameId_;
    }

    public static final int NEWADMINPLAYERID_FIELD_NUMBER = 2;
    private int newAdminPlayerId_ = 0;
    /**
     * <code>required uint32 newAdminPlayerId = 2;</code>
     * @return Whether the newAdminPlayerId field is set.
     */
    @java.lang.Override
    public boolean hasNewAdminPlayerId() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required uint32 newAdminPlayerId = 2;</code>
     * @return The newAdminPlayerId.
     */
    @java.lang.Override
    public int getNewAdminPlayerId() {
      return newAdminPlayerId_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

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

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt32(2, newAdminPlayerId_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, newAdminPlayerId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage other = (de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage) obj;

      if (hasGameId() != other.hasGameId()) return false;
      if (hasGameId()) {
        if (getGameId()
            != other.getGameId()) return false;
      }
      if (hasNewAdminPlayerId() != other.hasNewAdminPlayerId()) return false;
      if (hasNewAdminPlayerId()) {
        if (getNewAdminPlayerId()
            != other.getNewAdminPlayerId()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasGameId()) {
        hash = (37 * hash) + GAMEID_FIELD_NUMBER;
        hash = (53 * hash) + getGameId();
      }
      if (hasNewAdminPlayerId()) {
        hash = (37 * hash) + NEWADMINPLAYERID_FIELD_NUMBER;
        hash = (53 * hash) + getNewAdminPlayerId();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code GameListAdminChangedMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:GameListAdminChangedMessage)
        de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_GameListAdminChangedMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_GameListAdminChangedMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage.class, de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        gameId_ = 0;
        newAdminPlayerId_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_GameListAdminChangedMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage build() {
        de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage result = new de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.gameId_ = gameId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.newAdminPlayerId_ = newAdminPlayerId_;
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasNewAdminPlayerId()) {
          setNewAdminPlayerId(other.getNewAdminPlayerId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasGameId()) {
          return false;
        }
        if (!hasNewAdminPlayerId()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                gameId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                newAdminPlayerId_ = input.readUInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return Whether the gameId field is set.
       */
      @java.lang.Override
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return The gameId.
       */
      @java.lang.Override
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @param value The gameId to set.
       * @return This builder for chaining.
       */
      public Builder setGameId(int value) {
        
        gameId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        onChanged();
        return this;
      }

      private int newAdminPlayerId_ ;
      /**
       * <code>required uint32 newAdminPlayerId = 2;</code>
       * @return Whether the newAdminPlayerId field is set.
       */
      @java.lang.Override
      public boolean hasNewAdminPlayerId() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required uint32 newAdminPlayerId = 2;</code>
       * @return The newAdminPlayerId.
       */
      @java.lang.Override
      public int getNewAdminPlayerId() {
        return newAdminPlayerId_;
      }
      /**
       * <code>required uint32 newAdminPlayerId = 2;</code>
       * @param value The newAdminPlayerId to set.
       * @return This builder for chaining.
       */
      public Builder setNewAdminPlayerId(int value) {
        
        newAdminPlayerId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 newAdminPlayerId = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearNewAdminPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        newAdminPlayerId_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:GameListAdminChangedMessage)
    }

    // @@protoc_insertion_point(class_scope:GameListAdminChangedMessage)
    private static final de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<GameListAdminChangedMessage>
        PARSER = new com.google.protobuf.AbstractParser<GameListAdminChangedMessage>() {
      @java.lang.Override
      public GameListAdminChangedMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<GameListAdminChangedMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>repeated uint32 playerId = 1 [packed = true];</code>
     * @return A list containing the playerId.
     */
    java.util.List<java.lang.Integer> getPlayerIdList();
    /**
     * <code>repeated uint32 playerId = 1 [packed = true];</code>
     * @return The count of playerId.
     */
    int getPlayerIdCount();
    /**
     * <code>repeated uint32 playerId = 1 [packed = true];</code>
     * @param index The index of the element to return.
     * @return The playerId at the given index.
     */
    int getPlayerId(int index);
  }
  /**
   * Protobuf type {@code PlayerInfoRequestMessage}
   */
  public static final class PlayerInfoRequestMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:PlayerInfoRequestMessage)
      PlayerInfoRequestMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PlayerInfoRequestMessage.newBuilder() to construct.
    private PlayerInfoRequestMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PlayerInfoRequestMessage() {
      playerId_ = emptyIntList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new PlayerInfoRequestMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_PlayerInfoRequestMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_PlayerInfoRequestMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage.class, de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage.Builder.class);
    }

    public static final int PLAYERID_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private com.google.protobuf.Internal.IntList playerId_;
    /**
     * <code>repeated uint32 playerId = 1 [packed = true];</code>
     * @return A list containing the playerId.
     */
    @java.lang.Override
    public java.util.List<java.lang.Integer>
        getPlayerIdList() {
      return playerId_;
    }
    /**
     * <code>repeated uint32 playerId = 1 [packed = true];</code>
     * @return The count of playerId.
     */
    public int getPlayerIdCount() {
      return playerId_.size();
    }
    /**
     * <code>repeated uint32 playerId = 1 [packed = true];</code>
     * @param index The index of the element to return.
     * @return The playerId at the given index.
     */
    public int getPlayerId(int index) {
      return playerId_.getInt(index);
    }
    private int playerIdMemoizedSerializedSize = -1;

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (getPlayerIdList().size() > 0) {
        output.writeUInt32NoTag(10);
        output.writeUInt32NoTag(playerIdMemoizedSerializedSize);
      }
      for (int i = 0; i < playerId_.size(); i++) {
        output.writeUInt32NoTag(playerId_.getInt(i));
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      {
        int dataSize = 0;
        for (int i = 0; i < playerId_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeUInt32SizeNoTag(playerId_.getInt(i));
        }
        size += dataSize;
        if (!getPlayerIdList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        playerIdMemoizedSerializedSize = dataSize;
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage other = (de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage) obj;

      if (!getPlayerIdList()
          .equals(other.getPlayerIdList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getPlayerIdCount() > 0) {
        hash = (37 * hash) + PLAYERID_FIELD_NUMBER;
        hash = (53 * hash) + getPlayerIdList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code PlayerInfoRequestMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:PlayerInfoRequestMessage)
        de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_PlayerInfoRequestMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_PlayerInfoRequestMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage.class, de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        playerId_ = emptyIntList();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_PlayerInfoRequestMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage build() {
        de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage result = new de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage result) {
        if (((bitField0_ & 0x00000001) != 0)) {
          playerId_.makeImmutable();
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.playerId_ = playerId_;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage result) {
        int from_bitField0_ = bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage.getDefaultInstance()) return this;
        if (!other.playerId_.isEmpty()) {
          if (playerId_.isEmpty()) {
            playerId_ = other.playerId_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensurePlayerIdIsMutable();
            playerId_.addAll(other.playerId_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                int v = input.readUInt32();
                ensurePlayerIdIsMutable();
                playerId_.addInt(v);
                break;
              } // case 8
              case 10: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                ensurePlayerIdIsMutable();
                while (input.getBytesUntilLimit() > 0) {
                  playerId_.addInt(input.readUInt32());
                }
                input.popLimit(limit);
                break;
              } // case 10
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private com.google.protobuf.Internal.IntList playerId_ = emptyIntList();
      private void ensurePlayerIdIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          playerId_ = mutableCopy(playerId_);
          bitField0_ |= 0x00000001;
        }
      }
      /**
       * <code>repeated uint32 playerId = 1 [packed = true];</code>
       * @return A list containing the playerId.
       */
      public java.util.List<java.lang.Integer>
          getPlayerIdList() {
        return ((bitField0_ & 0x00000001) != 0) ?
                 java.util.Collections.unmodifiableList(playerId_) : playerId_;
      }
      /**
       * <code>repeated uint32 playerId = 1 [packed = true];</code>
       * @return The count of playerId.
       */
      public int getPlayerIdCount() {
        return playerId_.size();
      }
      /**
       * <code>repeated uint32 playerId = 1 [packed = true];</code>
       * @param index The index of the element to return.
       * @return The playerId at the given index.
       */
      public int getPlayerId(int index) {
        return playerId_.getInt(index);
      }
      /**
       * <code>repeated uint32 playerId = 1 [packed = true];</code>
       * @param index The index to set the value at.
       * @param value The playerId to set.
       * @return This builder for chaining.
       */
      public Builder setPlayerId(
          int index, int value) {
        
        ensurePlayerIdIsMutable();
        playerId_.setInt(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated uint32 playerId = 1 [packed = true];</code>
       * @param value The playerId to add.
       * @return This builder for chaining.
       */
      public Builder addPlayerId(int value) {
        
        ensurePlayerIdIsMutable();
        playerId_.addInt(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated uint32 playerId = 1 [packed = true];</code>
       * @param values The playerId to add.
       * @return This builder for chaining.
       */
      public Builder addAllPlayerId(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensurePlayerIdIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, playerId_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated uint32 playerId = 1 [packed = true];</code>
       * @return This builder for chaining.
       */
      public Builder clearPlayerId() {
        playerId_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:PlayerInfoRequestMessage)
    }

    // @@protoc_insertion_point(class_scope:PlayerInfoRequestMessage)
    private static final de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<PlayerInfoRequestMessage>
        PARSER = new com.google.protobuf.AbstractParser<PlayerInfoRequestMessage>() {
      @java.lang.Override
      public PlayerInfoRequestMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<PlayerInfoRequestMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 playerId = 1;</code>
     * @return Whether the playerId field is set.
     */
    boolean hasPlayerId();
    /**
     * <code>required uint32 playerId = 1;</code>
     * @return The playerId.
     */
    int getPlayerId();

    /**
     * <code>optional .PlayerInfoReplyMessage.PlayerInfoData playerInfoData = 2;</code>
     * @return Whether the playerInfoData field is set.
     */
    boolean hasPlayerInfoData();
    /**
     * <code>optional .PlayerInfoReplyMessage.PlayerInfoData playerInfoData = 2;</code>
     * @return The playerInfoData.
     */
    de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData getPlayerInfoData();
    /**
     * <code>optional .PlayerInfoReplyMessage.PlayerInfoData playerInfoData = 2;</code>
     */
    de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoDataOrBuilder getPlayerInfoDataOrBuilder();
  }
  /**
   * Protobuf type {@code PlayerInfoReplyMessage}
   */
  public static final class PlayerInfoReplyMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:PlayerInfoReplyMessage)
      PlayerInfoReplyMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PlayerInfoReplyMessage.newBuilder() to construct.
    private PlayerInfoReplyMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PlayerInfoReplyMessage() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new PlayerInfoReplyMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_PlayerInfoReplyMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_PlayerInfoReplyMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.class, de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.Builder.class);
    }

    public interface PlayerInfoDataOrBuilder extends
        // @@protoc_insertion_point(interface_extends:PlayerInfoReplyMessage.PlayerInfoData)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>required string playerName = 1;</code>
       * @return Whether the playerName field is set.
       */
      boolean hasPlayerName();
      /**
       * <code>required string playerName = 1;</code>
       * @return The playerName.
       */
      java.lang.String getPlayerName();
      /**
       * <code>required string playerName = 1;</code>
       * @return The bytes for playerName.
       */
      com.google.protobuf.ByteString
          getPlayerNameBytes();

      /**
       * <code>required bool isHuman = 2;</code>
       * @return Whether the isHuman field is set.
       */
      boolean hasIsHuman();
      /**
       * <code>required bool isHuman = 2;</code>
       * @return The isHuman.
       */
      boolean getIsHuman();

      /**
       * <code>required .NetPlayerInfoRights playerRights = 3;</code>
       * @return Whether the playerRights field is set.
       */
      boolean hasPlayerRights();
      /**
       * <code>required .NetPlayerInfoRights playerRights = 3;</code>
       * @return The playerRights.
       */
      de.pokerth.protocol.ProtoBuf.NetPlayerInfoRights getPlayerRights();

      /**
       * <code>optional string countryCode = 4;</code>
       * @return Whether the countryCode field is set.
       */
      boolean hasCountryCode();
      /**
       * <code>optional string countryCode = 4;</code>
       * @return The countryCode.
       */
      java.lang.String getCountryCode();
      /**
       * <code>optional string countryCode = 4;</code>
       * @return The bytes for countryCode.
       */
      com.google.protobuf.ByteString
          getCountryCodeBytes();

      /**
       * <code>optional .PlayerInfoReplyMessage.PlayerInfoData.AvatarData avatarData = 5;</code>
       * @return Whether the avatarData field is set.
       */
      boolean hasAvatarData();
      /**
       * <code>optional .PlayerInfoReplyMessage.PlayerInfoData.AvatarData avatarData = 5;</code>
       * @return The avatarData.
       */
      de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData getAvatarData();
      /**
       * <code>optional .PlayerInfoReplyMessage.PlayerInfoData.AvatarData avatarData = 5;</code>
       */
      de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarDataOrBuilder getAvatarDataOrBuilder();
    }
    /**
     * Protobuf type {@code PlayerInfoReplyMessage.PlayerInfoData}
     */
    public static final class PlayerInfoData extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:PlayerInfoReplyMessage.PlayerInfoData)
        PlayerInfoDataOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use PlayerInfoData.newBuilder() to construct.
      private PlayerInfoData(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private PlayerInfoData() {
        playerName_ = "";
        playerRights_ = 1;
        countryCode_ = "";
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new PlayerInfoData();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_PlayerInfoReplyMessage_PlayerInfoData_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_PlayerInfoReplyMessage_PlayerInfoData_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.class, de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.Builder.class);
      }

      public interface AvatarDataOrBuilder extends
          // @@protoc_insertion_point(interface_extends:PlayerInfoReplyMessage.PlayerInfoData.AvatarData)
          com.google.protobuf.MessageOrBuilder {

        /**
         * <code>required .NetAvatarType avatarType = 1;</code>
         * @return Whether the avatarType field is set.
         */
        boolean hasAvatarType();
        /**
         * <code>required .NetAvatarType avatarType = 1;</code>
         * @return The avatarType.
         */
        de.pokerth.protocol.ProtoBuf.NetAvatarType getAvatarType();

        /**
         * <code>required bytes avatarHash = 2;</code>
         * @return Whether the avatarHash field is set.
         */
        boolean hasAvatarHash();
        /**
         * <code>required bytes avatarHash = 2;</code>
         * @return The avatarHash.
         */
        com.google.protobuf.ByteString getAvatarHash();
      }
      /**
       * Protobuf type {@code PlayerInfoReplyMessage.PlayerInfoData.AvatarData}
       */
      public static final class AvatarData extends
          com.google.protobuf.GeneratedMessageV3 implements
          // @@protoc_insertion_point(message_implements:PlayerInfoReplyMessage.PlayerInfoData.AvatarData)
          AvatarDataOrBuilder {
      private static final long serialVersionUID = 0L;
        // Use AvatarData.newBuilder() to construct.
        private AvatarData(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
          super(builder);
        }
        private AvatarData() {
          avatarType_ = 1;
          avatarHash_ = com.google.protobuf.ByteString.EMPTY;
        }

        @java.lang.Override
        @SuppressWarnings({"unused"})
        protected java.lang.Object newInstance(
            UnusedPrivateParameter unused) {
          return new AvatarData();
        }

        @java.lang.Override
        public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
          return this.unknownFields;
        }
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return de.pokerth.protocol.ProtoBuf.internal_static_PlayerInfoReplyMessage_PlayerInfoData_AvatarData_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return de.pokerth.protocol.ProtoBuf.internal_static_PlayerInfoReplyMessage_PlayerInfoData_AvatarData_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData.class, de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData.Builder.class);
        }

        private int bitField0_;
        public static final int AVATARTYPE_FIELD_NUMBER = 1;
        private int avatarType_ = 1;
        /**
         * <code>required .NetAvatarType avatarType = 1;</code>
         * @return Whether the avatarType field is set.
         */
        @java.lang.Override public boolean hasAvatarType() {
          return ((bitField0_ & 0x00000001) != 0);
        }
        /**
         * <code>required .NetAvatarType avatarType = 1;</code>
         * @return The avatarType.
         */
        @java.lang.Override public de.pokerth.protocol.ProtoBuf.NetAvatarType getAvatarType() {
          de.pokerth.protocol.ProtoBuf.NetAvatarType result = de.pokerth.protocol.ProtoBuf.NetAvatarType.forNumber(avatarType_);
          return result == null ? de.pokerth.protocol.ProtoBuf.NetAvatarType.netAvatarImagePng : result;
        }

        public static final int AVATARHASH_FIELD_NUMBER = 2;
        private com.google.protobuf.ByteString avatarHash_ = com.google.protobuf.ByteString.EMPTY;
        /**
         * <code>required bytes avatarHash = 2;</code>
         * @return Whether the avatarHash field is set.
         */
        @java.lang.Override
        public boolean hasAvatarHash() {
          return ((bitField0_ & 0x00000002) != 0);
        }
        /**
         * <code>required bytes avatarHash = 2;</code>
         * @return The avatarHash.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString getAvatarHash() {
          return avatarHash_;
        }

        private byte memoizedIsInitialized = -1;
        @java.lang.Override
        public final boolean isInitialized() {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized == 1) return true;
          if (isInitialized == 0) return false;

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

        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                            throws java.io.IOException {
          if (((bitField0_ & 0x00000001) != 0)) {
            output.writeEnum(1, avatarType_);
          }
          if (((bitField0_ & 0x00000002) != 0)) {
            output.writeBytes(2, avatarHash_);
          }
          getUnknownFields().writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
          int size = memoizedSize;
          if (size != -1) return size;

          size = 0;
          if (((bitField0_ & 0x00000001) != 0)) {
            size += com.google.protobuf.CodedOutputStream
              .computeEnumSize(1, avatarType_);
          }
          if (((bitField0_ & 0x00000002) != 0)) {
            size += com.google.protobuf.CodedOutputStream
              .computeBytesSize(2, avatarHash_);
          }
          size += getUnknownFields().getSerializedSize();
          memoizedSize = size;
          return size;
        }

        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
          if (obj == this) {
           return true;
          }
          if (!(obj instanceof de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData)) {
            return super.equals(obj);
          }
          de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData other = (de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData) obj;

          if (hasAvatarType() != other.hasAvatarType()) return false;
          if (hasAvatarType()) {
            if (avatarType_ != other.avatarType_) return false;
          }
          if (hasAvatarHash() != other.hasAvatarHash()) return false;
          if (hasAvatarHash()) {
            if (!getAvatarHash()
                .equals(other.getAvatarHash())) return false;
          }
          if (!getUnknownFields().equals(other.getUnknownFields())) return false;
          return true;
        }

        @java.lang.Override
        public int hashCode() {
          if (memoizedHashCode != 0) {
            return memoizedHashCode;
          }
          int hash = 41;
          hash = (19 * hash) + getDescriptor().hashCode();
          if (hasAvatarType()) {
            hash = (37 * hash) + AVATARTYPE_FIELD_NUMBER;
            hash = (53 * hash) + avatarType_;
          }
          if (hasAvatarHash()) {
            hash = (37 * hash) + AVATARHASH_FIELD_NUMBER;
            hash = (53 * hash) + getAvatarHash().hashCode();
          }
          hash = (29 * hash) + getUnknownFields().hashCode();
          memoizedHashCode = hash;
          return hash;
        }

        public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData parseFrom(
            java.nio.ByteBuffer data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
        }
        public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
        }
        public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input);
        }
        public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }
        public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
        }
        public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
        }

        @java.lang.Override
        public Builder newBuilderForType() { return newBuilder(); }
        public static Builder newBuilder() {
          return DEFAULT_INSTANCE.toBuilder();
        }
        public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData prototype) {
          return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }
        @java.lang.Override
        public Builder toBuilder() {
          return this == DEFAULT_INSTANCE
              ? new Builder() : new Builder().mergeFrom(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          Builder builder = new Builder(parent);
          return builder;
        }
        /**
         * Protobuf type {@code PlayerInfoReplyMessage.PlayerInfoData.AvatarData}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:PlayerInfoReplyMessage.PlayerInfoData.AvatarData)
            de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarDataOrBuilder {
          public static final com.google.protobuf.Descriptors.Descriptor
              getDescriptor() {
            return de.pokerth.protocol.ProtoBuf.internal_static_PlayerInfoReplyMessage_PlayerInfoData_AvatarData_descriptor;
          }

          @java.lang.Override
          protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
              internalGetFieldAccessorTable() {
            return de.pokerth.protocol.ProtoBuf.internal_static_PlayerInfoReplyMessage_PlayerInfoData_AvatarData_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                    de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData.class, de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData.Builder.class);
          }

          // Construct using de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData.newBuilder()
          private Builder() {

          }

          private Builder(
              com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
            super(parent);

          }
          @java.lang.Override
          public Builder clear() {
            super.clear();
            bitField0_ = 0;
            avatarType_ = 1;
            avatarHash_ = com.google.protobuf.ByteString.EMPTY;
            return this;
          }

          @java.lang.Override
          public com.google.protobuf.Descriptors.Descriptor
              getDescriptorForType() {
            return de.pokerth.protocol.ProtoBuf.internal_static_PlayerInfoReplyMessage_PlayerInfoData_AvatarData_descriptor;
          }

          @java.lang.Override
          public de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData getDefaultInstanceForType() {
            return de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData.getDefaultInstance();
          }

          @java.lang.Override
          public de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData build() {
            de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result);
            }
            return result;
          }

          @java.lang.Override
          public de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData buildPartial() {
            de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData result = new de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData(this);
            if (bitField0_ != 0) { buildPartial0(result); }
            onBuilt();
            return result;
          }

          private void buildPartial0(de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData result) {
            int from_bitField0_ = bitField0_;
            int to_bitField0_ = 0;
            if (((from_bitField0_ & 0x00000001) != 0)) {
              result.avatarType_ = avatarType_;
              to_bitField0_ |= 0x00000001;
            }
            if (((from_bitField0_ & 0x00000002) != 0)) {
              result.avatarHash_ = avatarHash_;
              to_bitField0_ |= 0x00000002;
            }
            result.bitField0_ |= to_bitField0_;
          }

          @java.lang.Override
          public Builder clone() {
            return super.clone();
          }
          @java.lang.Override
          public Builder setField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
            return super.setField(field, value);
          }
          @java.lang.Override
          public Builder clearField(
              com.google.protobuf.Descriptors.FieldDescriptor field) {
            return super.clearField(field);
          }
          @java.lang.Override
          public Builder clearOneof(
              com.google.protobuf.Descriptors.OneofDescriptor oneof) {
            return super.clearOneof(oneof);
          }
          @java.lang.Override
          public Builder setRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              int index, java.lang.Object value) {
            return super.setRepeatedField(field, index, value);
          }
          @java.lang.Override
          public Builder addRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
            return super.addRepeatedField(field, value);
          }
          @java.lang.Override
          public Builder mergeFrom(com.google.protobuf.Message other) {
            if (other instanceof de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData) {
              return mergeFrom((de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData)other);
            } else {
              super.mergeFrom(other);
              return this;
            }
          }

          public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData other) {
            if (other == de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData.getDefaultInstance()) return this;
            if (other.hasAvatarType()) {
              setAvatarType(other.getAvatarType());
            }
            if (other.hasAvatarHash()) {
              setAvatarHash(other.getAvatarHash());
            }
            this.mergeUnknownFields(other.getUnknownFields());
            onChanged();
            return this;
          }

          @java.lang.Override
          public final boolean isInitialized() {
            if (!hasAvatarType()) {
              return false;
            }
            if (!hasAvatarHash()) {
              return false;
            }
            return true;
          }

          @java.lang.Override
          public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
            if (extensionRegistry == null) {
              throw new java.lang.NullPointerException();
            }
            try {
              boolean done = false;
              while (!done) {
                int tag = input.readTag();
                switch (tag) {
                  case 0:
                    done = true;
                    break;
                  case 8: {
                    int tmpRaw = input.readEnum();
                    de.pokerth.protocol.ProtoBuf.NetAvatarType tmpValue =
                        de.pokerth.protocol.ProtoBuf.NetAvatarType.forNumber(tmpRaw);
                    if (tmpValue == null) {
                      mergeUnknownVarintField(1, tmpRaw);
                    } else {
                      avatarType_ = tmpRaw;
                      bitField0_ |= 0x00000001;
                    }
                    break;
                  } // case 8
                  case 18: {
                    avatarHash_ = input.readBytes();
                    bitField0_ |= 0x00000002;
                    break;
                  } // case 18
                  default: {
                    if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                      done = true; // was an endgroup tag
                    }
                    break;
                  } // default:
                } // switch (tag)
              } // while (!done)
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              throw e.unwrapIOException();
            } finally {
              onChanged();
            } // finally
            return this;
          }
          private int bitField0_;

          private int avatarType_ = 1;
          /**
           * <code>required .NetAvatarType avatarType = 1;</code>
           * @return Whether the avatarType field is set.
           */
          @java.lang.Override public boolean hasAvatarType() {
            return ((bitField0_ & 0x00000001) != 0);
          }
          /**
           * <code>required .NetAvatarType avatarType = 1;</code>
           * @return The avatarType.
           */
          @java.lang.Override
          public de.pokerth.protocol.ProtoBuf.NetAvatarType getAvatarType() {
            de.pokerth.protocol.ProtoBuf.NetAvatarType result = de.pokerth.protocol.ProtoBuf.NetAvatarType.forNumber(avatarType_);
            return result == null ? de.pokerth.protocol.ProtoBuf.NetAvatarType.netAvatarImagePng : result;
          }
          /**
           * <code>required .NetAvatarType avatarType = 1;</code>
           * @param value The avatarType to set.
           * @return This builder for chaining.
           */
          public Builder setAvatarType(de.pokerth.protocol.ProtoBuf.NetAvatarType value) {
            if (value == null) {
              throw new NullPointerException();
            }
            bitField0_ |= 0x00000001;
            avatarType_ = value.getNumber();
            onChanged();
            return this;
          }
          /**
           * <code>required .NetAvatarType avatarType = 1;</code>
           * @return This builder for chaining.
           */
          public Builder clearAvatarType() {
            bitField0_ = (bitField0_ & ~0x00000001);
            avatarType_ = 1;
            onChanged();
            return this;
          }

          private com.google.protobuf.ByteString avatarHash_ = com.google.protobuf.ByteString.EMPTY;
          /**
           * <code>required bytes avatarHash = 2;</code>
           * @return Whether the avatarHash field is set.
           */
          @java.lang.Override
          public boolean hasAvatarHash() {
            return ((bitField0_ & 0x00000002) != 0);
          }
          /**
           * <code>required bytes avatarHash = 2;</code>
           * @return The avatarHash.
           */
          @java.lang.Override
          public com.google.protobuf.ByteString getAvatarHash() {
            return avatarHash_;
          }
          /**
           * <code>required bytes avatarHash = 2;</code>
           * @param value The avatarHash to set.
           * @return This builder for chaining.
           */
          public Builder setAvatarHash(com.google.protobuf.ByteString value) {
            if (value == null) { throw new NullPointerException(); }
            avatarHash_ = value;
            bitField0_ |= 0x00000002;
            onChanged();
            return this;
          }
          /**
           * <code>required bytes avatarHash = 2;</code>
           * @return This builder for chaining.
           */
          public Builder clearAvatarHash() {
            bitField0_ = (bitField0_ & ~0x00000002);
            avatarHash_ = getDefaultInstance().getAvatarHash();
            onChanged();
            return this;
          }
          @java.lang.Override
          public final Builder setUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.setUnknownFields(unknownFields);
          }

          @java.lang.Override
          public final Builder mergeUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.mergeUnknownFields(unknownFields);
          }


          // @@protoc_insertion_point(builder_scope:PlayerInfoReplyMessage.PlayerInfoData.AvatarData)
        }

        // @@protoc_insertion_point(class_scope:PlayerInfoReplyMessage.PlayerInfoData.AvatarData)
        private static final de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData DEFAULT_INSTANCE;
        static {
          DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData();
        }

        public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }

        @java.lang.Deprecated public static final com.google.protobuf.Parser<AvatarData>
            PARSER = new com.google.protobuf.AbstractParser<AvatarData>() {
          @java.lang.Override
          public AvatarData parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            Builder builder = newBuilder();
            try {
              builder.mergeFrom(input, extensionRegistry);
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              throw e.setUnfinishedMessage(builder.buildPartial());
            } catch (com.google.protobuf.UninitializedMessageException e) {
              throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
            } catch (java.io.IOException e) {
              throw new com.google.protobuf.InvalidProtocolBufferException(e)
                  .setUnfinishedMessage(builder.buildPartial());
            }
            return builder.buildPartial();
          }
        };

        public static com.google.protobuf.Parser<AvatarData> parser() {
          return PARSER;
        }

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

        @java.lang.Override
        public de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData getDefaultInstanceForType() {
          return DEFAULT_INSTANCE;
        }

      }

      private int bitField0_;
      public static final int PLAYERNAME_FIELD_NUMBER = 1;
      @SuppressWarnings("serial")
      private volatile java.lang.Object playerName_ = "";
      /**
       * <code>required string playerName = 1;</code>
       * @return Whether the playerName field is set.
       */
      @java.lang.Override
      public boolean hasPlayerName() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required string playerName = 1;</code>
       * @return The playerName.
       */
      @java.lang.Override
      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;
        }
      }
      /**
       * <code>required string playerName = 1;</code>
       * @return The bytes for playerName.
       */
      @java.lang.Override
      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 ISHUMAN_FIELD_NUMBER = 2;
      private boolean isHuman_ = false;
      /**
       * <code>required bool isHuman = 2;</code>
       * @return Whether the isHuman field is set.
       */
      @java.lang.Override
      public boolean hasIsHuman() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required bool isHuman = 2;</code>
       * @return The isHuman.
       */
      @java.lang.Override
      public boolean getIsHuman() {
        return isHuman_;
      }

      public static final int PLAYERRIGHTS_FIELD_NUMBER = 3;
      private int playerRights_ = 1;
      /**
       * <code>required .NetPlayerInfoRights playerRights = 3;</code>
       * @return Whether the playerRights field is set.
       */
      @java.lang.Override public boolean hasPlayerRights() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>required .NetPlayerInfoRights playerRights = 3;</code>
       * @return The playerRights.
       */
      @java.lang.Override public de.pokerth.protocol.ProtoBuf.NetPlayerInfoRights getPlayerRights() {
        de.pokerth.protocol.ProtoBuf.NetPlayerInfoRights result = de.pokerth.protocol.ProtoBuf.NetPlayerInfoRights.forNumber(playerRights_);
        return result == null ? de.pokerth.protocol.ProtoBuf.NetPlayerInfoRights.netPlayerRightsGuest : result;
      }

      public static final int COUNTRYCODE_FIELD_NUMBER = 4;
      @SuppressWarnings("serial")
      private volatile java.lang.Object countryCode_ = "";
      /**
       * <code>optional string countryCode = 4;</code>
       * @return Whether the countryCode field is set.
       */
      @java.lang.Override
      public boolean hasCountryCode() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>optional string countryCode = 4;</code>
       * @return The countryCode.
       */
      @java.lang.Override
      public java.lang.String getCountryCode() {
        java.lang.Object ref = countryCode_;
        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()) {
            countryCode_ = s;
          }
          return s;
        }
      }
      /**
       * <code>optional string countryCode = 4;</code>
       * @return The bytes for countryCode.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getCountryCodeBytes() {
        java.lang.Object ref = countryCode_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          countryCode_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int AVATARDATA_FIELD_NUMBER = 5;
      private de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData avatarData_;
      /**
       * <code>optional .PlayerInfoReplyMessage.PlayerInfoData.AvatarData avatarData = 5;</code>
       * @return Whether the avatarData field is set.
       */
      @java.lang.Override
      public boolean hasAvatarData() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <code>optional .PlayerInfoReplyMessage.PlayerInfoData.AvatarData avatarData = 5;</code>
       * @return The avatarData.
       */
      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData getAvatarData() {
        return avatarData_ == null ? de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData.getDefaultInstance() : avatarData_;
      }
      /**
       * <code>optional .PlayerInfoReplyMessage.PlayerInfoData.AvatarData avatarData = 5;</code>
       */
      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarDataOrBuilder getAvatarDataOrBuilder() {
        return avatarData_ == null ? de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData.getDefaultInstance() : avatarData_;
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        if (!hasPlayerName()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!hasIsHuman()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!hasPlayerRights()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (hasAvatarData()) {
          if (!getAvatarData().isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (((bitField0_ & 0x00000001) != 0)) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 1, playerName_);
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          output.writeBool(2, isHuman_);
        }
        if (((bitField0_ & 0x00000004) != 0)) {
          output.writeEnum(3, playerRights_);
        }
        if (((bitField0_ & 0x00000008) != 0)) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 4, countryCode_);
        }
        if (((bitField0_ & 0x00000010) != 0)) {
          output.writeMessage(5, getAvatarData());
        }
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) != 0)) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, playerName_);
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(2, isHuman_);
        }
        if (((bitField0_ & 0x00000004) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeEnumSize(3, playerRights_);
        }
        if (((bitField0_ & 0x00000008) != 0)) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, countryCode_);
        }
        if (((bitField0_ & 0x00000010) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(5, getAvatarData());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData)) {
          return super.equals(obj);
        }
        de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData other = (de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData) obj;

        if (hasPlayerName() != other.hasPlayerName()) return false;
        if (hasPlayerName()) {
          if (!getPlayerName()
              .equals(other.getPlayerName())) return false;
        }
        if (hasIsHuman() != other.hasIsHuman()) return false;
        if (hasIsHuman()) {
          if (getIsHuman()
              != other.getIsHuman()) return false;
        }
        if (hasPlayerRights() != other.hasPlayerRights()) return false;
        if (hasPlayerRights()) {
          if (playerRights_ != other.playerRights_) return false;
        }
        if (hasCountryCode() != other.hasCountryCode()) return false;
        if (hasCountryCode()) {
          if (!getCountryCode()
              .equals(other.getCountryCode())) return false;
        }
        if (hasAvatarData() != other.hasAvatarData()) return false;
        if (hasAvatarData()) {
          if (!getAvatarData()
              .equals(other.getAvatarData())) return false;
        }
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasPlayerName()) {
          hash = (37 * hash) + PLAYERNAME_FIELD_NUMBER;
          hash = (53 * hash) + getPlayerName().hashCode();
        }
        if (hasIsHuman()) {
          hash = (37 * hash) + ISHUMAN_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
              getIsHuman());
        }
        if (hasPlayerRights()) {
          hash = (37 * hash) + PLAYERRIGHTS_FIELD_NUMBER;
          hash = (53 * hash) + playerRights_;
        }
        if (hasCountryCode()) {
          hash = (37 * hash) + COUNTRYCODE_FIELD_NUMBER;
          hash = (53 * hash) + getCountryCode().hashCode();
        }
        if (hasAvatarData()) {
          hash = (37 * hash) + AVATARDATA_FIELD_NUMBER;
          hash = (53 * hash) + getAvatarData().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code PlayerInfoReplyMessage.PlayerInfoData}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:PlayerInfoReplyMessage.PlayerInfoData)
          de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoDataOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return de.pokerth.protocol.ProtoBuf.internal_static_PlayerInfoReplyMessage_PlayerInfoData_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return de.pokerth.protocol.ProtoBuf.internal_static_PlayerInfoReplyMessage_PlayerInfoData_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.class, de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.Builder.class);
        }

        // Construct using de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
            getAvatarDataFieldBuilder();
          }
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          playerName_ = "";
          isHuman_ = false;
          playerRights_ = 1;
          countryCode_ = "";
          avatarData_ = null;
          if (avatarDataBuilder_ != null) {
            avatarDataBuilder_.dispose();
            avatarDataBuilder_ = null;
          }
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return de.pokerth.protocol.ProtoBuf.internal_static_PlayerInfoReplyMessage_PlayerInfoData_descriptor;
        }

        @java.lang.Override
        public de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData getDefaultInstanceForType() {
          return de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.getDefaultInstance();
        }

        @java.lang.Override
        public de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData build() {
          de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData buildPartial() {
          de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData result = new de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData(this);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }

        private void buildPartial0(de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData result) {
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.playerName_ = playerName_;
            to_bitField0_ |= 0x00000001;
          }
          if (((from_bitField0_ & 0x00000002) != 0)) {
            result.isHuman_ = isHuman_;
            to_bitField0_ |= 0x00000002;
          }
          if (((from_bitField0_ & 0x00000004) != 0)) {
            result.playerRights_ = playerRights_;
            to_bitField0_ |= 0x00000004;
          }
          if (((from_bitField0_ & 0x00000008) != 0)) {
            result.countryCode_ = countryCode_;
            to_bitField0_ |= 0x00000008;
          }
          if (((from_bitField0_ & 0x00000010) != 0)) {
            result.avatarData_ = avatarDataBuilder_ == null
                ? avatarData_
                : avatarDataBuilder_.build();
            to_bitField0_ |= 0x00000010;
          }
          result.bitField0_ |= to_bitField0_;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData) {
            return mergeFrom((de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData other) {
          if (other == de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.getDefaultInstance()) return this;
          if (other.hasPlayerName()) {
            playerName_ = other.playerName_;
            bitField0_ |= 0x00000001;
            onChanged();
          }
          if (other.hasIsHuman()) {
            setIsHuman(other.getIsHuman());
          }
          if (other.hasPlayerRights()) {
            setPlayerRights(other.getPlayerRights());
          }
          if (other.hasCountryCode()) {
            countryCode_ = other.countryCode_;
            bitField0_ |= 0x00000008;
            onChanged();
          }
          if (other.hasAvatarData()) {
            mergeAvatarData(other.getAvatarData());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          if (!hasPlayerName()) {
            return false;
          }
          if (!hasIsHuman()) {
            return false;
          }
          if (!hasPlayerRights()) {
            return false;
          }
          if (hasAvatarData()) {
            if (!getAvatarData().isInitialized()) {
              return false;
            }
          }
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  playerName_ = input.readBytes();
                  bitField0_ |= 0x00000001;
                  break;
                } // case 10
                case 16: {
                  isHuman_ = input.readBool();
                  bitField0_ |= 0x00000002;
                  break;
                } // case 16
                case 24: {
                  int tmpRaw = input.readEnum();
                  de.pokerth.protocol.ProtoBuf.NetPlayerInfoRights tmpValue =
                      de.pokerth.protocol.ProtoBuf.NetPlayerInfoRights.forNumber(tmpRaw);
                  if (tmpValue == null) {
                    mergeUnknownVarintField(3, tmpRaw);
                  } else {
                    playerRights_ = tmpRaw;
                    bitField0_ |= 0x00000004;
                  }
                  break;
                } // case 24
                case 34: {
                  countryCode_ = input.readBytes();
                  bitField0_ |= 0x00000008;
                  break;
                } // case 34
                case 42: {
                  input.readMessage(
                      getAvatarDataFieldBuilder().getBuilder(),
                      extensionRegistry);
                  bitField0_ |= 0x00000010;
                  break;
                } // case 42
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        private int bitField0_;

        private java.lang.Object playerName_ = "";
        /**
         * <code>required string playerName = 1;</code>
         * @return Whether the playerName field is set.
         */
        public boolean hasPlayerName() {
          return ((bitField0_ & 0x00000001) != 0);
        }
        /**
         * <code>required string playerName = 1;</code>
         * @return The playerName.
         */
        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;
          }
        }
        /**
         * <code>required string playerName = 1;</code>
         * @return The bytes for playerName.
         */
        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;
          }
        }
        /**
         * <code>required string playerName = 1;</code>
         * @param value The playerName to set.
         * @return This builder for chaining.
         */
        public Builder setPlayerName(
            java.lang.String value) {
          if (value == null) { throw new NullPointerException(); }
          playerName_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <code>required string playerName = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearPlayerName() {
          playerName_ = getDefaultInstance().getPlayerName();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
          return this;
        }
        /**
         * <code>required string playerName = 1;</code>
         * @param value The bytes for playerName to set.
         * @return This builder for chaining.
         */
        public Builder setPlayerNameBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) { throw new NullPointerException(); }
          playerName_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }

        private boolean isHuman_ ;
        /**
         * <code>required bool isHuman = 2;</code>
         * @return Whether the isHuman field is set.
         */
        @java.lang.Override
        public boolean hasIsHuman() {
          return ((bitField0_ & 0x00000002) != 0);
        }
        /**
         * <code>required bool isHuman = 2;</code>
         * @return The isHuman.
         */
        @java.lang.Override
        public boolean getIsHuman() {
          return isHuman_;
        }
        /**
         * <code>required bool isHuman = 2;</code>
         * @param value The isHuman to set.
         * @return This builder for chaining.
         */
        public Builder setIsHuman(boolean value) {
          
          isHuman_ = value;
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        /**
         * <code>required bool isHuman = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearIsHuman() {
          bitField0_ = (bitField0_ & ~0x00000002);
          isHuman_ = false;
          onChanged();
          return this;
        }

        private int playerRights_ = 1;
        /**
         * <code>required .NetPlayerInfoRights playerRights = 3;</code>
         * @return Whether the playerRights field is set.
         */
        @java.lang.Override public boolean hasPlayerRights() {
          return ((bitField0_ & 0x00000004) != 0);
        }
        /**
         * <code>required .NetPlayerInfoRights playerRights = 3;</code>
         * @return The playerRights.
         */
        @java.lang.Override
        public de.pokerth.protocol.ProtoBuf.NetPlayerInfoRights getPlayerRights() {
          de.pokerth.protocol.ProtoBuf.NetPlayerInfoRights result = de.pokerth.protocol.ProtoBuf.NetPlayerInfoRights.forNumber(playerRights_);
          return result == null ? de.pokerth.protocol.ProtoBuf.NetPlayerInfoRights.netPlayerRightsGuest : result;
        }
        /**
         * <code>required .NetPlayerInfoRights playerRights = 3;</code>
         * @param value The playerRights to set.
         * @return This builder for chaining.
         */
        public Builder setPlayerRights(de.pokerth.protocol.ProtoBuf.NetPlayerInfoRights value) {
          if (value == null) {
            throw new NullPointerException();
          }
          bitField0_ |= 0x00000004;
          playerRights_ = value.getNumber();
          onChanged();
          return this;
        }
        /**
         * <code>required .NetPlayerInfoRights playerRights = 3;</code>
         * @return This builder for chaining.
         */
        public Builder clearPlayerRights() {
          bitField0_ = (bitField0_ & ~0x00000004);
          playerRights_ = 1;
          onChanged();
          return this;
        }

        private java.lang.Object countryCode_ = "";
        /**
         * <code>optional string countryCode = 4;</code>
         * @return Whether the countryCode field is set.
         */
        public boolean hasCountryCode() {
          return ((bitField0_ & 0x00000008) != 0);
        }
        /**
         * <code>optional string countryCode = 4;</code>
         * @return The countryCode.
         */
        public java.lang.String getCountryCode() {
          java.lang.Object ref = countryCode_;
          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()) {
              countryCode_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>optional string countryCode = 4;</code>
         * @return The bytes for countryCode.
         */
        public com.google.protobuf.ByteString
            getCountryCodeBytes() {
          java.lang.Object ref = countryCode_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            countryCode_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <code>optional string countryCode = 4;</code>
         * @param value The countryCode to set.
         * @return This builder for chaining.
         */
        public Builder setCountryCode(
            java.lang.String value) {
          if (value == null) { throw new NullPointerException(); }
          countryCode_ = value;
          bitField0_ |= 0x00000008;
          onChanged();
          return this;
        }
        /**
         * <code>optional string countryCode = 4;</code>
         * @return This builder for chaining.
         */
        public Builder clearCountryCode() {
          countryCode_ = getDefaultInstance().getCountryCode();
          bitField0_ = (bitField0_ & ~0x00000008);
          onChanged();
          return this;
        }
        /**
         * <code>optional string countryCode = 4;</code>
         * @param value The bytes for countryCode to set.
         * @return This builder for chaining.
         */
        public Builder setCountryCodeBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) { throw new NullPointerException(); }
          countryCode_ = value;
          bitField0_ |= 0x00000008;
          onChanged();
          return this;
        }

        private de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData avatarData_;
        private com.google.protobuf.SingleFieldBuilderV3<
            de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData, de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData.Builder, de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarDataOrBuilder> avatarDataBuilder_;
        /**
         * <code>optional .PlayerInfoReplyMessage.PlayerInfoData.AvatarData avatarData = 5;</code>
         * @return Whether the avatarData field is set.
         */
        public boolean hasAvatarData() {
          return ((bitField0_ & 0x00000010) != 0);
        }
        /**
         * <code>optional .PlayerInfoReplyMessage.PlayerInfoData.AvatarData avatarData = 5;</code>
         * @return The avatarData.
         */
        public de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData getAvatarData() {
          if (avatarDataBuilder_ == null) {
            return avatarData_ == null ? de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData.getDefaultInstance() : avatarData_;
          } else {
            return avatarDataBuilder_.getMessage();
          }
        }
        /**
         * <code>optional .PlayerInfoReplyMessage.PlayerInfoData.AvatarData avatarData = 5;</code>
         */
        public Builder setAvatarData(de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData value) {
          if (avatarDataBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            avatarData_ = value;
          } else {
            avatarDataBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000010;
          onChanged();
          return this;
        }
        /**
         * <code>optional .PlayerInfoReplyMessage.PlayerInfoData.AvatarData avatarData = 5;</code>
         */
        public Builder setAvatarData(
            de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData.Builder builderForValue) {
          if (avatarDataBuilder_ == null) {
            avatarData_ = builderForValue.build();
          } else {
            avatarDataBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000010;
          onChanged();
          return this;
        }
        /**
         * <code>optional .PlayerInfoReplyMessage.PlayerInfoData.AvatarData avatarData = 5;</code>
         */
        public Builder mergeAvatarData(de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData value) {
          if (avatarDataBuilder_ == null) {
            if (((bitField0_ & 0x00000010) != 0) &&
              avatarData_ != null &&
              avatarData_ != de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData.getDefaultInstance()) {
              getAvatarDataBuilder().mergeFrom(value);
            } else {
              avatarData_ = value;
            }
          } else {
            avatarDataBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000010;
          onChanged();
          return this;
        }
        /**
         * <code>optional .PlayerInfoReplyMessage.PlayerInfoData.AvatarData avatarData = 5;</code>
         */
        public Builder clearAvatarData() {
          bitField0_ = (bitField0_ & ~0x00000010);
          avatarData_ = null;
          if (avatarDataBuilder_ != null) {
            avatarDataBuilder_.dispose();
            avatarDataBuilder_ = null;
          }
          onChanged();
          return this;
        }
        /**
         * <code>optional .PlayerInfoReplyMessage.PlayerInfoData.AvatarData avatarData = 5;</code>
         */
        public de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData.Builder getAvatarDataBuilder() {
          bitField0_ |= 0x00000010;
          onChanged();
          return getAvatarDataFieldBuilder().getBuilder();
        }
        /**
         * <code>optional .PlayerInfoReplyMessage.PlayerInfoData.AvatarData avatarData = 5;</code>
         */
        public de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarDataOrBuilder getAvatarDataOrBuilder() {
          if (avatarDataBuilder_ != null) {
            return avatarDataBuilder_.getMessageOrBuilder();
          } else {
            return avatarData_ == null ?
                de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData.getDefaultInstance() : avatarData_;
          }
        }
        /**
         * <code>optional .PlayerInfoReplyMessage.PlayerInfoData.AvatarData avatarData = 5;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData, de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData.Builder, de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarDataOrBuilder> 
            getAvatarDataFieldBuilder() {
          if (avatarDataBuilder_ == null) {
            avatarDataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData, de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData.Builder, de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarDataOrBuilder>(
                    getAvatarData(),
                    getParentForChildren(),
                    isClean());
            avatarData_ = null;
          }
          return avatarDataBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:PlayerInfoReplyMessage.PlayerInfoData)
      }

      // @@protoc_insertion_point(class_scope:PlayerInfoReplyMessage.PlayerInfoData)
      private static final de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData();
      }

      public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      @java.lang.Deprecated public static final com.google.protobuf.Parser<PlayerInfoData>
          PARSER = new com.google.protobuf.AbstractParser<PlayerInfoData>() {
        @java.lang.Override
        public PlayerInfoData parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

      public static com.google.protobuf.Parser<PlayerInfoData> parser() {
        return PARSER;
      }

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

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private int bitField0_;
    public static final int PLAYERID_FIELD_NUMBER = 1;
    private int playerId_ = 0;
    /**
     * <code>required uint32 playerId = 1;</code>
     * @return Whether the playerId field is set.
     */
    @java.lang.Override
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 playerId = 1;</code>
     * @return The playerId.
     */
    @java.lang.Override
    public int getPlayerId() {
      return playerId_;
    }

    public static final int PLAYERINFODATA_FIELD_NUMBER = 2;
    private de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData playerInfoData_;
    /**
     * <code>optional .PlayerInfoReplyMessage.PlayerInfoData playerInfoData = 2;</code>
     * @return Whether the playerInfoData field is set.
     */
    @java.lang.Override
    public boolean hasPlayerInfoData() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional .PlayerInfoReplyMessage.PlayerInfoData playerInfoData = 2;</code>
     * @return The playerInfoData.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData getPlayerInfoData() {
      return playerInfoData_ == null ? de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.getDefaultInstance() : playerInfoData_;
    }
    /**
     * <code>optional .PlayerInfoReplyMessage.PlayerInfoData playerInfoData = 2;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoDataOrBuilder getPlayerInfoDataOrBuilder() {
      return playerInfoData_ == null ? de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.getDefaultInstance() : playerInfoData_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (hasPlayerInfoData()) {
        if (!getPlayerInfoData().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeMessage(2, getPlayerInfoData());
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getPlayerInfoData());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage other = (de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage) obj;

      if (hasPlayerId() != other.hasPlayerId()) return false;
      if (hasPlayerId()) {
        if (getPlayerId()
            != other.getPlayerId()) return false;
      }
      if (hasPlayerInfoData() != other.hasPlayerInfoData()) return false;
      if (hasPlayerInfoData()) {
        if (!getPlayerInfoData()
            .equals(other.getPlayerInfoData())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasPlayerId()) {
        hash = (37 * hash) + PLAYERID_FIELD_NUMBER;
        hash = (53 * hash) + getPlayerId();
      }
      if (hasPlayerInfoData()) {
        hash = (37 * hash) + PLAYERINFODATA_FIELD_NUMBER;
        hash = (53 * hash) + getPlayerInfoData().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code PlayerInfoReplyMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:PlayerInfoReplyMessage)
        de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_PlayerInfoReplyMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_PlayerInfoReplyMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.class, de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getPlayerInfoDataFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        playerId_ = 0;
        playerInfoData_ = null;
        if (playerInfoDataBuilder_ != null) {
          playerInfoDataBuilder_.dispose();
          playerInfoDataBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_PlayerInfoReplyMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage build() {
        de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage result = new de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.playerId_ = playerId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.playerInfoData_ = playerInfoDataBuilder_ == null
              ? playerInfoData_
              : playerInfoDataBuilder_.build();
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasPlayerInfoData()) {
          mergePlayerInfoData(other.getPlayerInfoData());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasPlayerId()) {
          return false;
        }
        if (hasPlayerInfoData()) {
          if (!getPlayerInfoData().isInitialized()) {
            return false;
          }
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                playerId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                input.readMessage(
                    getPlayerInfoDataFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * <code>required uint32 playerId = 1;</code>
       * @return Whether the playerId field is set.
       */
      @java.lang.Override
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 playerId = 1;</code>
       * @return The playerId.
       */
      @java.lang.Override
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * <code>required uint32 playerId = 1;</code>
       * @param value The playerId to set.
       * @return This builder for chaining.
       */
      public Builder setPlayerId(int value) {
        
        playerId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 playerId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData playerInfoData_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData, de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.Builder, de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoDataOrBuilder> playerInfoDataBuilder_;
      /**
       * <code>optional .PlayerInfoReplyMessage.PlayerInfoData playerInfoData = 2;</code>
       * @return Whether the playerInfoData field is set.
       */
      public boolean hasPlayerInfoData() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional .PlayerInfoReplyMessage.PlayerInfoData playerInfoData = 2;</code>
       * @return The playerInfoData.
       */
      public de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData getPlayerInfoData() {
        if (playerInfoDataBuilder_ == null) {
          return playerInfoData_ == null ? de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.getDefaultInstance() : playerInfoData_;
        } else {
          return playerInfoDataBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .PlayerInfoReplyMessage.PlayerInfoData playerInfoData = 2;</code>
       */
      public Builder setPlayerInfoData(de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData value) {
        if (playerInfoDataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          playerInfoData_ = value;
        } else {
          playerInfoDataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>optional .PlayerInfoReplyMessage.PlayerInfoData playerInfoData = 2;</code>
       */
      public Builder setPlayerInfoData(
          de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.Builder builderForValue) {
        if (playerInfoDataBuilder_ == null) {
          playerInfoData_ = builderForValue.build();
        } else {
          playerInfoDataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>optional .PlayerInfoReplyMessage.PlayerInfoData playerInfoData = 2;</code>
       */
      public Builder mergePlayerInfoData(de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData value) {
        if (playerInfoDataBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0) &&
            playerInfoData_ != null &&
            playerInfoData_ != de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.getDefaultInstance()) {
            getPlayerInfoDataBuilder().mergeFrom(value);
          } else {
            playerInfoData_ = value;
          }
        } else {
          playerInfoDataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>optional .PlayerInfoReplyMessage.PlayerInfoData playerInfoData = 2;</code>
       */
      public Builder clearPlayerInfoData() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerInfoData_ = null;
        if (playerInfoDataBuilder_ != null) {
          playerInfoDataBuilder_.dispose();
          playerInfoDataBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .PlayerInfoReplyMessage.PlayerInfoData playerInfoData = 2;</code>
       */
      public de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.Builder getPlayerInfoDataBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getPlayerInfoDataFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .PlayerInfoReplyMessage.PlayerInfoData playerInfoData = 2;</code>
       */
      public de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoDataOrBuilder getPlayerInfoDataOrBuilder() {
        if (playerInfoDataBuilder_ != null) {
          return playerInfoDataBuilder_.getMessageOrBuilder();
        } else {
          return playerInfoData_ == null ?
              de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.getDefaultInstance() : playerInfoData_;
        }
      }
      /**
       * <code>optional .PlayerInfoReplyMessage.PlayerInfoData playerInfoData = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData, de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.Builder, de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoDataOrBuilder> 
          getPlayerInfoDataFieldBuilder() {
        if (playerInfoDataBuilder_ == null) {
          playerInfoDataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData, de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.Builder, de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoDataOrBuilder>(
                  getPlayerInfoData(),
                  getParentForChildren(),
                  isClean());
          playerInfoData_ = null;
        }
        return playerInfoDataBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:PlayerInfoReplyMessage)
    }

    // @@protoc_insertion_point(class_scope:PlayerInfoReplyMessage)
    private static final de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<PlayerInfoReplyMessage>
        PARSER = new com.google.protobuf.AbstractParser<PlayerInfoReplyMessage>() {
      @java.lang.Override
      public PlayerInfoReplyMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<PlayerInfoReplyMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required .SubscriptionRequestMessage.SubscriptionAction subscriptionAction = 1;</code>
     * @return Whether the subscriptionAction field is set.
     */
    boolean hasSubscriptionAction();
    /**
     * <code>required .SubscriptionRequestMessage.SubscriptionAction subscriptionAction = 1;</code>
     * @return The subscriptionAction.
     */
    de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.SubscriptionAction getSubscriptionAction();
  }
  /**
   * <pre>
   * The following request will not be confirmed by the server. It is used,
   * optionally, to reduce server traffic. The server might ignore it.
   * </pre>
   *
   * Protobuf type {@code SubscriptionRequestMessage}
   */
  public static final class SubscriptionRequestMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:SubscriptionRequestMessage)
      SubscriptionRequestMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use SubscriptionRequestMessage.newBuilder() to construct.
    private SubscriptionRequestMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private SubscriptionRequestMessage() {
      subscriptionAction_ = 1;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new SubscriptionRequestMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_SubscriptionRequestMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_SubscriptionRequestMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.class, de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.Builder.class);
    }

    /**
     * Protobuf enum {@code SubscriptionRequestMessage.SubscriptionAction}
     */
    public enum SubscriptionAction
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>unsubscribeGameList = 1;</code>
       */
      unsubscribeGameList(1),
      /**
       * <code>resubscribeGameList = 2;</code>
       */
      resubscribeGameList(2),
      ;

      /**
       * <code>unsubscribeGameList = 1;</code>
       */
      public static final int unsubscribeGameList_VALUE = 1;
      /**
       * <code>resubscribeGameList = 2;</code>
       */
      public static final int resubscribeGameList_VALUE = 2;


      public final int getNumber() {
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static SubscriptionAction valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static SubscriptionAction forNumber(int value) {
        switch (value) {
          case 1: return unsubscribeGameList;
          case 2: return resubscribeGameList;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<SubscriptionAction>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          SubscriptionAction> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<SubscriptionAction>() {
              public SubscriptionAction findValueByNumber(int number) {
                return SubscriptionAction.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.getDescriptor().getEnumTypes().get(0);
      }

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

      public static SubscriptionAction 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 value;

      private SubscriptionAction(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:SubscriptionRequestMessage.SubscriptionAction)
    }

    private int bitField0_;
    public static final int SUBSCRIPTIONACTION_FIELD_NUMBER = 1;
    private int subscriptionAction_ = 1;
    /**
     * <code>required .SubscriptionRequestMessage.SubscriptionAction subscriptionAction = 1;</code>
     * @return Whether the subscriptionAction field is set.
     */
    @java.lang.Override public boolean hasSubscriptionAction() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required .SubscriptionRequestMessage.SubscriptionAction subscriptionAction = 1;</code>
     * @return The subscriptionAction.
     */
    @java.lang.Override public de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.SubscriptionAction getSubscriptionAction() {
      de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.SubscriptionAction result = de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.SubscriptionAction.forNumber(subscriptionAction_);
      return result == null ? de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.SubscriptionAction.unsubscribeGameList : result;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

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

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeEnum(1, subscriptionAction_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, subscriptionAction_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage other = (de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage) obj;

      if (hasSubscriptionAction() != other.hasSubscriptionAction()) return false;
      if (hasSubscriptionAction()) {
        if (subscriptionAction_ != other.subscriptionAction_) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasSubscriptionAction()) {
        hash = (37 * hash) + SUBSCRIPTIONACTION_FIELD_NUMBER;
        hash = (53 * hash) + subscriptionAction_;
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * The following request will not be confirmed by the server. It is used,
     * optionally, to reduce server traffic. The server might ignore it.
     * </pre>
     *
     * Protobuf type {@code SubscriptionRequestMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:SubscriptionRequestMessage)
        de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_SubscriptionRequestMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_SubscriptionRequestMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.class, de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        subscriptionAction_ = 1;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_SubscriptionRequestMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage build() {
        de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage result = new de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.subscriptionAction_ = subscriptionAction_;
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.getDefaultInstance()) return this;
        if (other.hasSubscriptionAction()) {
          setSubscriptionAction(other.getSubscriptionAction());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasSubscriptionAction()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                int tmpRaw = input.readEnum();
                de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.SubscriptionAction tmpValue =
                    de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.SubscriptionAction.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(1, tmpRaw);
                } else {
                  subscriptionAction_ = tmpRaw;
                  bitField0_ |= 0x00000001;
                }
                break;
              } // case 8
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int subscriptionAction_ = 1;
      /**
       * <code>required .SubscriptionRequestMessage.SubscriptionAction subscriptionAction = 1;</code>
       * @return Whether the subscriptionAction field is set.
       */
      @java.lang.Override public boolean hasSubscriptionAction() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required .SubscriptionRequestMessage.SubscriptionAction subscriptionAction = 1;</code>
       * @return The subscriptionAction.
       */
      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.SubscriptionAction getSubscriptionAction() {
        de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.SubscriptionAction result = de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.SubscriptionAction.forNumber(subscriptionAction_);
        return result == null ? de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.SubscriptionAction.unsubscribeGameList : result;
      }
      /**
       * <code>required .SubscriptionRequestMessage.SubscriptionAction subscriptionAction = 1;</code>
       * @param value The subscriptionAction to set.
       * @return This builder for chaining.
       */
      public Builder setSubscriptionAction(de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.SubscriptionAction value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        subscriptionAction_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>required .SubscriptionRequestMessage.SubscriptionAction subscriptionAction = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearSubscriptionAction() {
        bitField0_ = (bitField0_ & ~0x00000001);
        subscriptionAction_ = 1;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:SubscriptionRequestMessage)
    }

    // @@protoc_insertion_point(class_scope:SubscriptionRequestMessage)
    private static final de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<SubscriptionRequestMessage>
        PARSER = new com.google.protobuf.AbstractParser<SubscriptionRequestMessage>() {
      @java.lang.Override
      public SubscriptionRequestMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<SubscriptionRequestMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    int getGameId();

    /**
     * <code>optional string password = 2;</code>
     * @return Whether the password field is set.
     */
    boolean hasPassword();
    /**
     * <code>optional string password = 2;</code>
     * @return The password.
     */
    java.lang.String getPassword();
    /**
     * <code>optional string password = 2;</code>
     * @return The bytes for password.
     */
    com.google.protobuf.ByteString
        getPasswordBytes();

    /**
     * <code>optional bool autoLeave = 3 [default = false];</code>
     * @return Whether the autoLeave field is set.
     */
    boolean hasAutoLeave();
    /**
     * <code>optional bool autoLeave = 3 [default = false];</code>
     * @return The autoLeave.
     */
    boolean getAutoLeave();

    /**
     * <code>optional bool spectateOnly = 4 [default = false];</code>
     * @return Whether the spectateOnly field is set.
     */
    boolean hasSpectateOnly();
    /**
     * <code>optional bool spectateOnly = 4 [default = false];</code>
     * @return The spectateOnly.
     */
    boolean getSpectateOnly();
  }
  /**
   * Protobuf type {@code JoinExistingGameMessage}
   */
  public static final class JoinExistingGameMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:JoinExistingGameMessage)
      JoinExistingGameMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use JoinExistingGameMessage.newBuilder() to construct.
    private JoinExistingGameMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private JoinExistingGameMessage() {
      password_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new JoinExistingGameMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_JoinExistingGameMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_JoinExistingGameMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage.class, de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage.Builder.class);
    }

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_ = 0;
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    @java.lang.Override
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    @java.lang.Override
    public int getGameId() {
      return gameId_;
    }

    public static final int PASSWORD_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object password_ = "";
    /**
     * <code>optional string password = 2;</code>
     * @return Whether the password field is set.
     */
    @java.lang.Override
    public boolean hasPassword() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional string password = 2;</code>
     * @return The password.
     */
    @java.lang.Override
    public java.lang.String getPassword() {
      java.lang.Object ref = password_;
      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()) {
          password_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string password = 2;</code>
     * @return The bytes for password.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getPasswordBytes() {
      java.lang.Object ref = password_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        password_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int AUTOLEAVE_FIELD_NUMBER = 3;
    private boolean autoLeave_ = false;
    /**
     * <code>optional bool autoLeave = 3 [default = false];</code>
     * @return Whether the autoLeave field is set.
     */
    @java.lang.Override
    public boolean hasAutoLeave() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional bool autoLeave = 3 [default = false];</code>
     * @return The autoLeave.
     */
    @java.lang.Override
    public boolean getAutoLeave() {
      return autoLeave_;
    }

    public static final int SPECTATEONLY_FIELD_NUMBER = 4;
    private boolean spectateOnly_ = false;
    /**
     * <code>optional bool spectateOnly = 4 [default = false];</code>
     * @return Whether the spectateOnly field is set.
     */
    @java.lang.Override
    public boolean hasSpectateOnly() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>optional bool spectateOnly = 4 [default = false];</code>
     * @return The spectateOnly.
     */
    @java.lang.Override
    public boolean getSpectateOnly() {
      return spectateOnly_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

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

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, password_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeBool(3, autoLeave_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeBool(4, spectateOnly_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, password_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, autoLeave_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(4, spectateOnly_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage other = (de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage) obj;

      if (hasGameId() != other.hasGameId()) return false;
      if (hasGameId()) {
        if (getGameId()
            != other.getGameId()) return false;
      }
      if (hasPassword() != other.hasPassword()) return false;
      if (hasPassword()) {
        if (!getPassword()
            .equals(other.getPassword())) return false;
      }
      if (hasAutoLeave() != other.hasAutoLeave()) return false;
      if (hasAutoLeave()) {
        if (getAutoLeave()
            != other.getAutoLeave()) return false;
      }
      if (hasSpectateOnly() != other.hasSpectateOnly()) return false;
      if (hasSpectateOnly()) {
        if (getSpectateOnly()
            != other.getSpectateOnly()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasGameId()) {
        hash = (37 * hash) + GAMEID_FIELD_NUMBER;
        hash = (53 * hash) + getGameId();
      }
      if (hasPassword()) {
        hash = (37 * hash) + PASSWORD_FIELD_NUMBER;
        hash = (53 * hash) + getPassword().hashCode();
      }
      if (hasAutoLeave()) {
        hash = (37 * hash) + AUTOLEAVE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getAutoLeave());
      }
      if (hasSpectateOnly()) {
        hash = (37 * hash) + SPECTATEONLY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getSpectateOnly());
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code JoinExistingGameMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:JoinExistingGameMessage)
        de.pokerth.protocol.ProtoBuf.JoinExistingGameMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_JoinExistingGameMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_JoinExistingGameMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage.class, de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        gameId_ = 0;
        password_ = "";
        autoLeave_ = false;
        spectateOnly_ = false;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_JoinExistingGameMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage build() {
        de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage result = new de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.gameId_ = gameId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.password_ = password_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.autoLeave_ = autoLeave_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.spectateOnly_ = spectateOnly_;
          to_bitField0_ |= 0x00000008;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasPassword()) {
          password_ = other.password_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (other.hasAutoLeave()) {
          setAutoLeave(other.getAutoLeave());
        }
        if (other.hasSpectateOnly()) {
          setSpectateOnly(other.getSpectateOnly());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasGameId()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                gameId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                password_ = input.readBytes();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 24: {
                autoLeave_ = input.readBool();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 32: {
                spectateOnly_ = input.readBool();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return Whether the gameId field is set.
       */
      @java.lang.Override
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return The gameId.
       */
      @java.lang.Override
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @param value The gameId to set.
       * @return This builder for chaining.
       */
      public Builder setGameId(int value) {
        
        gameId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object password_ = "";
      /**
       * <code>optional string password = 2;</code>
       * @return Whether the password field is set.
       */
      public boolean hasPassword() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional string password = 2;</code>
       * @return The password.
       */
      public java.lang.String getPassword() {
        java.lang.Object ref = password_;
        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()) {
            password_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string password = 2;</code>
       * @return The bytes for password.
       */
      public com.google.protobuf.ByteString
          getPasswordBytes() {
        java.lang.Object ref = password_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          password_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string password = 2;</code>
       * @param value The password to set.
       * @return This builder for chaining.
       */
      public Builder setPassword(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        password_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>optional string password = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearPassword() {
        password_ = getDefaultInstance().getPassword();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <code>optional string password = 2;</code>
       * @param value The bytes for password to set.
       * @return This builder for chaining.
       */
      public Builder setPasswordBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        password_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private boolean autoLeave_ ;
      /**
       * <code>optional bool autoLeave = 3 [default = false];</code>
       * @return Whether the autoLeave field is set.
       */
      @java.lang.Override
      public boolean hasAutoLeave() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>optional bool autoLeave = 3 [default = false];</code>
       * @return The autoLeave.
       */
      @java.lang.Override
      public boolean getAutoLeave() {
        return autoLeave_;
      }
      /**
       * <code>optional bool autoLeave = 3 [default = false];</code>
       * @param value The autoLeave to set.
       * @return This builder for chaining.
       */
      public Builder setAutoLeave(boolean value) {
        
        autoLeave_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool autoLeave = 3 [default = false];</code>
       * @return This builder for chaining.
       */
      public Builder clearAutoLeave() {
        bitField0_ = (bitField0_ & ~0x00000004);
        autoLeave_ = false;
        onChanged();
        return this;
      }

      private boolean spectateOnly_ ;
      /**
       * <code>optional bool spectateOnly = 4 [default = false];</code>
       * @return Whether the spectateOnly field is set.
       */
      @java.lang.Override
      public boolean hasSpectateOnly() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>optional bool spectateOnly = 4 [default = false];</code>
       * @return The spectateOnly.
       */
      @java.lang.Override
      public boolean getSpectateOnly() {
        return spectateOnly_;
      }
      /**
       * <code>optional bool spectateOnly = 4 [default = false];</code>
       * @param value The spectateOnly to set.
       * @return This builder for chaining.
       */
      public Builder setSpectateOnly(boolean value) {
        
        spectateOnly_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool spectateOnly = 4 [default = false];</code>
       * @return This builder for chaining.
       */
      public Builder clearSpectateOnly() {
        bitField0_ = (bitField0_ & ~0x00000008);
        spectateOnly_ = false;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:JoinExistingGameMessage)
    }

    // @@protoc_insertion_point(class_scope:JoinExistingGameMessage)
    private static final de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<JoinExistingGameMessage>
        PARSER = new com.google.protobuf.AbstractParser<JoinExistingGameMessage>() {
      @java.lang.Override
      public JoinExistingGameMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<JoinExistingGameMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required .NetGameInfo gameInfo = 1;</code>
     * @return Whether the gameInfo field is set.
     */
    boolean hasGameInfo();
    /**
     * <code>required .NetGameInfo gameInfo = 1;</code>
     * @return The gameInfo.
     */
    de.pokerth.protocol.ProtoBuf.NetGameInfo getGameInfo();
    /**
     * <code>required .NetGameInfo gameInfo = 1;</code>
     */
    de.pokerth.protocol.ProtoBuf.NetGameInfoOrBuilder getGameInfoOrBuilder();

    /**
     * <code>optional string password = 2;</code>
     * @return Whether the password field is set.
     */
    boolean hasPassword();
    /**
     * <code>optional string password = 2;</code>
     * @return The password.
     */
    java.lang.String getPassword();
    /**
     * <code>optional string password = 2;</code>
     * @return The bytes for password.
     */
    com.google.protobuf.ByteString
        getPasswordBytes();

    /**
     * <code>optional bool autoLeave = 3;</code>
     * @return Whether the autoLeave field is set.
     */
    boolean hasAutoLeave();
    /**
     * <code>optional bool autoLeave = 3;</code>
     * @return The autoLeave.
     */
    boolean getAutoLeave();
  }
  /**
   * Protobuf type {@code JoinNewGameMessage}
   */
  public static final class JoinNewGameMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:JoinNewGameMessage)
      JoinNewGameMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use JoinNewGameMessage.newBuilder() to construct.
    private JoinNewGameMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private JoinNewGameMessage() {
      password_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new JoinNewGameMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_JoinNewGameMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_JoinNewGameMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.JoinNewGameMessage.class, de.pokerth.protocol.ProtoBuf.JoinNewGameMessage.Builder.class);
    }

    private int bitField0_;
    public static final int GAMEINFO_FIELD_NUMBER = 1;
    private de.pokerth.protocol.ProtoBuf.NetGameInfo gameInfo_;
    /**
     * <code>required .NetGameInfo gameInfo = 1;</code>
     * @return Whether the gameInfo field is set.
     */
    @java.lang.Override
    public boolean hasGameInfo() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required .NetGameInfo gameInfo = 1;</code>
     * @return The gameInfo.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.NetGameInfo getGameInfo() {
      return gameInfo_ == null ? de.pokerth.protocol.ProtoBuf.NetGameInfo.getDefaultInstance() : gameInfo_;
    }
    /**
     * <code>required .NetGameInfo gameInfo = 1;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.NetGameInfoOrBuilder getGameInfoOrBuilder() {
      return gameInfo_ == null ? de.pokerth.protocol.ProtoBuf.NetGameInfo.getDefaultInstance() : gameInfo_;
    }

    public static final int PASSWORD_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object password_ = "";
    /**
     * <code>optional string password = 2;</code>
     * @return Whether the password field is set.
     */
    @java.lang.Override
    public boolean hasPassword() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional string password = 2;</code>
     * @return The password.
     */
    @java.lang.Override
    public java.lang.String getPassword() {
      java.lang.Object ref = password_;
      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()) {
          password_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string password = 2;</code>
     * @return The bytes for password.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getPasswordBytes() {
      java.lang.Object ref = password_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        password_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int AUTOLEAVE_FIELD_NUMBER = 3;
    private boolean autoLeave_ = false;
    /**
     * <code>optional bool autoLeave = 3;</code>
     * @return Whether the autoLeave field is set.
     */
    @java.lang.Override
    public boolean hasAutoLeave() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional bool autoLeave = 3;</code>
     * @return The autoLeave.
     */
    @java.lang.Override
    public boolean getAutoLeave() {
      return autoLeave_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameInfo()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getGameInfo().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getGameInfo());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, password_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeBool(3, autoLeave_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getGameInfo());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, password_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, autoLeave_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.JoinNewGameMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.JoinNewGameMessage other = (de.pokerth.protocol.ProtoBuf.JoinNewGameMessage) obj;

      if (hasGameInfo() != other.hasGameInfo()) return false;
      if (hasGameInfo()) {
        if (!getGameInfo()
            .equals(other.getGameInfo())) return false;
      }
      if (hasPassword() != other.hasPassword()) return false;
      if (hasPassword()) {
        if (!getPassword()
            .equals(other.getPassword())) return false;
      }
      if (hasAutoLeave() != other.hasAutoLeave()) return false;
      if (hasAutoLeave()) {
        if (getAutoLeave()
            != other.getAutoLeave()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasGameInfo()) {
        hash = (37 * hash) + GAMEINFO_FIELD_NUMBER;
        hash = (53 * hash) + getGameInfo().hashCode();
      }
      if (hasPassword()) {
        hash = (37 * hash) + PASSWORD_FIELD_NUMBER;
        hash = (53 * hash) + getPassword().hashCode();
      }
      if (hasAutoLeave()) {
        hash = (37 * hash) + AUTOLEAVE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getAutoLeave());
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.JoinNewGameMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinNewGameMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinNewGameMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinNewGameMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinNewGameMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinNewGameMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinNewGameMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinNewGameMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinNewGameMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinNewGameMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinNewGameMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinNewGameMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.JoinNewGameMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code JoinNewGameMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:JoinNewGameMessage)
        de.pokerth.protocol.ProtoBuf.JoinNewGameMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_JoinNewGameMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_JoinNewGameMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.JoinNewGameMessage.class, de.pokerth.protocol.ProtoBuf.JoinNewGameMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.JoinNewGameMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getGameInfoFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        gameInfo_ = null;
        if (gameInfoBuilder_ != null) {
          gameInfoBuilder_.dispose();
          gameInfoBuilder_ = null;
        }
        password_ = "";
        autoLeave_ = false;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_JoinNewGameMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.JoinNewGameMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.JoinNewGameMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.JoinNewGameMessage build() {
        de.pokerth.protocol.ProtoBuf.JoinNewGameMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.JoinNewGameMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.JoinNewGameMessage result = new de.pokerth.protocol.ProtoBuf.JoinNewGameMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.JoinNewGameMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.gameInfo_ = gameInfoBuilder_ == null
              ? gameInfo_
              : gameInfoBuilder_.build();
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.password_ = password_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.autoLeave_ = autoLeave_;
          to_bitField0_ |= 0x00000004;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.JoinNewGameMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.JoinNewGameMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.JoinNewGameMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.JoinNewGameMessage.getDefaultInstance()) return this;
        if (other.hasGameInfo()) {
          mergeGameInfo(other.getGameInfo());
        }
        if (other.hasPassword()) {
          password_ = other.password_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (other.hasAutoLeave()) {
          setAutoLeave(other.getAutoLeave());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasGameInfo()) {
          return false;
        }
        if (!getGameInfo().isInitialized()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                input.readMessage(
                    getGameInfoFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                password_ = input.readBytes();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 24: {
                autoLeave_ = input.readBool();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private de.pokerth.protocol.ProtoBuf.NetGameInfo gameInfo_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.NetGameInfo, de.pokerth.protocol.ProtoBuf.NetGameInfo.Builder, de.pokerth.protocol.ProtoBuf.NetGameInfoOrBuilder> gameInfoBuilder_;
      /**
       * <code>required .NetGameInfo gameInfo = 1;</code>
       * @return Whether the gameInfo field is set.
       */
      public boolean hasGameInfo() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required .NetGameInfo gameInfo = 1;</code>
       * @return The gameInfo.
       */
      public de.pokerth.protocol.ProtoBuf.NetGameInfo getGameInfo() {
        if (gameInfoBuilder_ == null) {
          return gameInfo_ == null ? de.pokerth.protocol.ProtoBuf.NetGameInfo.getDefaultInstance() : gameInfo_;
        } else {
          return gameInfoBuilder_.getMessage();
        }
      }
      /**
       * <code>required .NetGameInfo gameInfo = 1;</code>
       */
      public Builder setGameInfo(de.pokerth.protocol.ProtoBuf.NetGameInfo value) {
        if (gameInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          gameInfo_ = value;
        } else {
          gameInfoBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required .NetGameInfo gameInfo = 1;</code>
       */
      public Builder setGameInfo(
          de.pokerth.protocol.ProtoBuf.NetGameInfo.Builder builderForValue) {
        if (gameInfoBuilder_ == null) {
          gameInfo_ = builderForValue.build();
        } else {
          gameInfoBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required .NetGameInfo gameInfo = 1;</code>
       */
      public Builder mergeGameInfo(de.pokerth.protocol.ProtoBuf.NetGameInfo value) {
        if (gameInfoBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
            gameInfo_ != null &&
            gameInfo_ != de.pokerth.protocol.ProtoBuf.NetGameInfo.getDefaultInstance()) {
            getGameInfoBuilder().mergeFrom(value);
          } else {
            gameInfo_ = value;
          }
        } else {
          gameInfoBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required .NetGameInfo gameInfo = 1;</code>
       */
      public Builder clearGameInfo() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameInfo_ = null;
        if (gameInfoBuilder_ != null) {
          gameInfoBuilder_.dispose();
          gameInfoBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>required .NetGameInfo gameInfo = 1;</code>
       */
      public de.pokerth.protocol.ProtoBuf.NetGameInfo.Builder getGameInfoBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getGameInfoFieldBuilder().getBuilder();
      }
      /**
       * <code>required .NetGameInfo gameInfo = 1;</code>
       */
      public de.pokerth.protocol.ProtoBuf.NetGameInfoOrBuilder getGameInfoOrBuilder() {
        if (gameInfoBuilder_ != null) {
          return gameInfoBuilder_.getMessageOrBuilder();
        } else {
          return gameInfo_ == null ?
              de.pokerth.protocol.ProtoBuf.NetGameInfo.getDefaultInstance() : gameInfo_;
        }
      }
      /**
       * <code>required .NetGameInfo gameInfo = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.NetGameInfo, de.pokerth.protocol.ProtoBuf.NetGameInfo.Builder, de.pokerth.protocol.ProtoBuf.NetGameInfoOrBuilder> 
          getGameInfoFieldBuilder() {
        if (gameInfoBuilder_ == null) {
          gameInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.NetGameInfo, de.pokerth.protocol.ProtoBuf.NetGameInfo.Builder, de.pokerth.protocol.ProtoBuf.NetGameInfoOrBuilder>(
                  getGameInfo(),
                  getParentForChildren(),
                  isClean());
          gameInfo_ = null;
        }
        return gameInfoBuilder_;
      }

      private java.lang.Object password_ = "";
      /**
       * <code>optional string password = 2;</code>
       * @return Whether the password field is set.
       */
      public boolean hasPassword() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional string password = 2;</code>
       * @return The password.
       */
      public java.lang.String getPassword() {
        java.lang.Object ref = password_;
        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()) {
            password_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string password = 2;</code>
       * @return The bytes for password.
       */
      public com.google.protobuf.ByteString
          getPasswordBytes() {
        java.lang.Object ref = password_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          password_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string password = 2;</code>
       * @param value The password to set.
       * @return This builder for chaining.
       */
      public Builder setPassword(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        password_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>optional string password = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearPassword() {
        password_ = getDefaultInstance().getPassword();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <code>optional string password = 2;</code>
       * @param value The bytes for password to set.
       * @return This builder for chaining.
       */
      public Builder setPasswordBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        password_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private boolean autoLeave_ ;
      /**
       * <code>optional bool autoLeave = 3;</code>
       * @return Whether the autoLeave field is set.
       */
      @java.lang.Override
      public boolean hasAutoLeave() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>optional bool autoLeave = 3;</code>
       * @return The autoLeave.
       */
      @java.lang.Override
      public boolean getAutoLeave() {
        return autoLeave_;
      }
      /**
       * <code>optional bool autoLeave = 3;</code>
       * @param value The autoLeave to set.
       * @return This builder for chaining.
       */
      public Builder setAutoLeave(boolean value) {
        
        autoLeave_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool autoLeave = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearAutoLeave() {
        bitField0_ = (bitField0_ & ~0x00000004);
        autoLeave_ = false;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:JoinNewGameMessage)
    }

    // @@protoc_insertion_point(class_scope:JoinNewGameMessage)
    private static final de.pokerth.protocol.ProtoBuf.JoinNewGameMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.JoinNewGameMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.JoinNewGameMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<JoinNewGameMessage>
        PARSER = new com.google.protobuf.AbstractParser<JoinNewGameMessage>() {
      @java.lang.Override
      public JoinNewGameMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<JoinNewGameMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.JoinNewGameMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    int getGameId();

    /**
     * <code>optional bool autoLeave = 2;</code>
     * @return Whether the autoLeave field is set.
     */
    boolean hasAutoLeave();
    /**
     * <code>optional bool autoLeave = 2;</code>
     * @return The autoLeave.
     */
    boolean getAutoLeave();
  }
  /**
   * Protobuf type {@code RejoinExistingGameMessage}
   */
  public static final class RejoinExistingGameMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:RejoinExistingGameMessage)
      RejoinExistingGameMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use RejoinExistingGameMessage.newBuilder() to construct.
    private RejoinExistingGameMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private RejoinExistingGameMessage() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new RejoinExistingGameMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_RejoinExistingGameMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_RejoinExistingGameMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage.class, de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage.Builder.class);
    }

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_ = 0;
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    @java.lang.Override
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    @java.lang.Override
    public int getGameId() {
      return gameId_;
    }

    public static final int AUTOLEAVE_FIELD_NUMBER = 2;
    private boolean autoLeave_ = false;
    /**
     * <code>optional bool autoLeave = 2;</code>
     * @return Whether the autoLeave field is set.
     */
    @java.lang.Override
    public boolean hasAutoLeave() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional bool autoLeave = 2;</code>
     * @return The autoLeave.
     */
    @java.lang.Override
    public boolean getAutoLeave() {
      return autoLeave_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

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

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeBool(2, autoLeave_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, autoLeave_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage other = (de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage) obj;

      if (hasGameId() != other.hasGameId()) return false;
      if (hasGameId()) {
        if (getGameId()
            != other.getGameId()) return false;
      }
      if (hasAutoLeave() != other.hasAutoLeave()) return false;
      if (hasAutoLeave()) {
        if (getAutoLeave()
            != other.getAutoLeave()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasGameId()) {
        hash = (37 * hash) + GAMEID_FIELD_NUMBER;
        hash = (53 * hash) + getGameId();
      }
      if (hasAutoLeave()) {
        hash = (37 * hash) + AUTOLEAVE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getAutoLeave());
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code RejoinExistingGameMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:RejoinExistingGameMessage)
        de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_RejoinExistingGameMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_RejoinExistingGameMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage.class, de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        gameId_ = 0;
        autoLeave_ = false;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_RejoinExistingGameMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage build() {
        de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage result = new de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.gameId_ = gameId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.autoLeave_ = autoLeave_;
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasAutoLeave()) {
          setAutoLeave(other.getAutoLeave());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasGameId()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                gameId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                autoLeave_ = input.readBool();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return Whether the gameId field is set.
       */
      @java.lang.Override
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return The gameId.
       */
      @java.lang.Override
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @param value The gameId to set.
       * @return This builder for chaining.
       */
      public Builder setGameId(int value) {
        
        gameId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        onChanged();
        return this;
      }

      private boolean autoLeave_ ;
      /**
       * <code>optional bool autoLeave = 2;</code>
       * @return Whether the autoLeave field is set.
       */
      @java.lang.Override
      public boolean hasAutoLeave() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional bool autoLeave = 2;</code>
       * @return The autoLeave.
       */
      @java.lang.Override
      public boolean getAutoLeave() {
        return autoLeave_;
      }
      /**
       * <code>optional bool autoLeave = 2;</code>
       * @param value The autoLeave to set.
       * @return This builder for chaining.
       */
      public Builder setAutoLeave(boolean value) {
        
        autoLeave_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool autoLeave = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearAutoLeave() {
        bitField0_ = (bitField0_ & ~0x00000002);
        autoLeave_ = false;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:RejoinExistingGameMessage)
    }

    // @@protoc_insertion_point(class_scope:RejoinExistingGameMessage)
    private static final de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<RejoinExistingGameMessage>
        PARSER = new com.google.protobuf.AbstractParser<RejoinExistingGameMessage>() {
      @java.lang.Override
      public RejoinExistingGameMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<RejoinExistingGameMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    int getGameId();

    /**
     * <code>required bool areYouGameAdmin = 2;</code>
     * @return Whether the areYouGameAdmin field is set.
     */
    boolean hasAreYouGameAdmin();
    /**
     * <code>required bool areYouGameAdmin = 2;</code>
     * @return The areYouGameAdmin.
     */
    boolean getAreYouGameAdmin();

    /**
     * <code>required .NetGameInfo gameInfo = 3;</code>
     * @return Whether the gameInfo field is set.
     */
    boolean hasGameInfo();
    /**
     * <code>required .NetGameInfo gameInfo = 3;</code>
     * @return The gameInfo.
     */
    de.pokerth.protocol.ProtoBuf.NetGameInfo getGameInfo();
    /**
     * <code>required .NetGameInfo gameInfo = 3;</code>
     */
    de.pokerth.protocol.ProtoBuf.NetGameInfoOrBuilder getGameInfoOrBuilder();

    /**
     * <code>optional bool spectateOnly = 4;</code>
     * @return Whether the spectateOnly field is set.
     */
    boolean hasSpectateOnly();
    /**
     * <code>optional bool spectateOnly = 4;</code>
     * @return The spectateOnly.
     */
    boolean getSpectateOnly();
  }
  /**
   * Protobuf type {@code JoinGameAckMessage}
   */
  public static final class JoinGameAckMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:JoinGameAckMessage)
      JoinGameAckMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use JoinGameAckMessage.newBuilder() to construct.
    private JoinGameAckMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private JoinGameAckMessage() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new JoinGameAckMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_JoinGameAckMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_JoinGameAckMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.JoinGameAckMessage.class, de.pokerth.protocol.ProtoBuf.JoinGameAckMessage.Builder.class);
    }

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_ = 0;
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    @java.lang.Override
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    @java.lang.Override
    public int getGameId() {
      return gameId_;
    }

    public static final int AREYOUGAMEADMIN_FIELD_NUMBER = 2;
    private boolean areYouGameAdmin_ = false;
    /**
     * <code>required bool areYouGameAdmin = 2;</code>
     * @return Whether the areYouGameAdmin field is set.
     */
    @java.lang.Override
    public boolean hasAreYouGameAdmin() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required bool areYouGameAdmin = 2;</code>
     * @return The areYouGameAdmin.
     */
    @java.lang.Override
    public boolean getAreYouGameAdmin() {
      return areYouGameAdmin_;
    }

    public static final int GAMEINFO_FIELD_NUMBER = 3;
    private de.pokerth.protocol.ProtoBuf.NetGameInfo gameInfo_;
    /**
     * <code>required .NetGameInfo gameInfo = 3;</code>
     * @return Whether the gameInfo field is set.
     */
    @java.lang.Override
    public boolean hasGameInfo() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>required .NetGameInfo gameInfo = 3;</code>
     * @return The gameInfo.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.NetGameInfo getGameInfo() {
      return gameInfo_ == null ? de.pokerth.protocol.ProtoBuf.NetGameInfo.getDefaultInstance() : gameInfo_;
    }
    /**
     * <code>required .NetGameInfo gameInfo = 3;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.NetGameInfoOrBuilder getGameInfoOrBuilder() {
      return gameInfo_ == null ? de.pokerth.protocol.ProtoBuf.NetGameInfo.getDefaultInstance() : gameInfo_;
    }

    public static final int SPECTATEONLY_FIELD_NUMBER = 4;
    private boolean spectateOnly_ = false;
    /**
     * <code>optional bool spectateOnly = 4;</code>
     * @return Whether the spectateOnly field is set.
     */
    @java.lang.Override
    public boolean hasSpectateOnly() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>optional bool spectateOnly = 4;</code>
     * @return The spectateOnly.
     */
    @java.lang.Override
    public boolean getSpectateOnly() {
      return spectateOnly_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasAreYouGameAdmin()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasGameInfo()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getGameInfo().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeBool(2, areYouGameAdmin_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeMessage(3, getGameInfo());
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeBool(4, spectateOnly_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, areYouGameAdmin_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getGameInfo());
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(4, spectateOnly_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.JoinGameAckMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.JoinGameAckMessage other = (de.pokerth.protocol.ProtoBuf.JoinGameAckMessage) obj;

      if (hasGameId() != other.hasGameId()) return false;
      if (hasGameId()) {
        if (getGameId()
            != other.getGameId()) return false;
      }
      if (hasAreYouGameAdmin() != other.hasAreYouGameAdmin()) return false;
      if (hasAreYouGameAdmin()) {
        if (getAreYouGameAdmin()
            != other.getAreYouGameAdmin()) return false;
      }
      if (hasGameInfo() != other.hasGameInfo()) return false;
      if (hasGameInfo()) {
        if (!getGameInfo()
            .equals(other.getGameInfo())) return false;
      }
      if (hasSpectateOnly() != other.hasSpectateOnly()) return false;
      if (hasSpectateOnly()) {
        if (getSpectateOnly()
            != other.getSpectateOnly()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasGameId()) {
        hash = (37 * hash) + GAMEID_FIELD_NUMBER;
        hash = (53 * hash) + getGameId();
      }
      if (hasAreYouGameAdmin()) {
        hash = (37 * hash) + AREYOUGAMEADMIN_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getAreYouGameAdmin());
      }
      if (hasGameInfo()) {
        hash = (37 * hash) + GAMEINFO_FIELD_NUMBER;
        hash = (53 * hash) + getGameInfo().hashCode();
      }
      if (hasSpectateOnly()) {
        hash = (37 * hash) + SPECTATEONLY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getSpectateOnly());
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.JoinGameAckMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinGameAckMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinGameAckMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinGameAckMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinGameAckMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinGameAckMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinGameAckMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinGameAckMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinGameAckMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinGameAckMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinGameAckMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinGameAckMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.JoinGameAckMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code JoinGameAckMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:JoinGameAckMessage)
        de.pokerth.protocol.ProtoBuf.JoinGameAckMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_JoinGameAckMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_JoinGameAckMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.JoinGameAckMessage.class, de.pokerth.protocol.ProtoBuf.JoinGameAckMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.JoinGameAckMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getGameInfoFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        gameId_ = 0;
        areYouGameAdmin_ = false;
        gameInfo_ = null;
        if (gameInfoBuilder_ != null) {
          gameInfoBuilder_.dispose();
          gameInfoBuilder_ = null;
        }
        spectateOnly_ = false;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_JoinGameAckMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.JoinGameAckMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.JoinGameAckMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.JoinGameAckMessage build() {
        de.pokerth.protocol.ProtoBuf.JoinGameAckMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.JoinGameAckMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.JoinGameAckMessage result = new de.pokerth.protocol.ProtoBuf.JoinGameAckMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.JoinGameAckMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.gameId_ = gameId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.areYouGameAdmin_ = areYouGameAdmin_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.gameInfo_ = gameInfoBuilder_ == null
              ? gameInfo_
              : gameInfoBuilder_.build();
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.spectateOnly_ = spectateOnly_;
          to_bitField0_ |= 0x00000008;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.JoinGameAckMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.JoinGameAckMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.JoinGameAckMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.JoinGameAckMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasAreYouGameAdmin()) {
          setAreYouGameAdmin(other.getAreYouGameAdmin());
        }
        if (other.hasGameInfo()) {
          mergeGameInfo(other.getGameInfo());
        }
        if (other.hasSpectateOnly()) {
          setSpectateOnly(other.getSpectateOnly());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasGameId()) {
          return false;
        }
        if (!hasAreYouGameAdmin()) {
          return false;
        }
        if (!hasGameInfo()) {
          return false;
        }
        if (!getGameInfo().isInitialized()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                gameId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                areYouGameAdmin_ = input.readBool();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 26: {
                input.readMessage(
                    getGameInfoFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 32: {
                spectateOnly_ = input.readBool();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return Whether the gameId field is set.
       */
      @java.lang.Override
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return The gameId.
       */
      @java.lang.Override
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @param value The gameId to set.
       * @return This builder for chaining.
       */
      public Builder setGameId(int value) {
        
        gameId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        onChanged();
        return this;
      }

      private boolean areYouGameAdmin_ ;
      /**
       * <code>required bool areYouGameAdmin = 2;</code>
       * @return Whether the areYouGameAdmin field is set.
       */
      @java.lang.Override
      public boolean hasAreYouGameAdmin() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required bool areYouGameAdmin = 2;</code>
       * @return The areYouGameAdmin.
       */
      @java.lang.Override
      public boolean getAreYouGameAdmin() {
        return areYouGameAdmin_;
      }
      /**
       * <code>required bool areYouGameAdmin = 2;</code>
       * @param value The areYouGameAdmin to set.
       * @return This builder for chaining.
       */
      public Builder setAreYouGameAdmin(boolean value) {
        
        areYouGameAdmin_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>required bool areYouGameAdmin = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearAreYouGameAdmin() {
        bitField0_ = (bitField0_ & ~0x00000002);
        areYouGameAdmin_ = false;
        onChanged();
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.NetGameInfo gameInfo_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.NetGameInfo, de.pokerth.protocol.ProtoBuf.NetGameInfo.Builder, de.pokerth.protocol.ProtoBuf.NetGameInfoOrBuilder> gameInfoBuilder_;
      /**
       * <code>required .NetGameInfo gameInfo = 3;</code>
       * @return Whether the gameInfo field is set.
       */
      public boolean hasGameInfo() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>required .NetGameInfo gameInfo = 3;</code>
       * @return The gameInfo.
       */
      public de.pokerth.protocol.ProtoBuf.NetGameInfo getGameInfo() {
        if (gameInfoBuilder_ == null) {
          return gameInfo_ == null ? de.pokerth.protocol.ProtoBuf.NetGameInfo.getDefaultInstance() : gameInfo_;
        } else {
          return gameInfoBuilder_.getMessage();
        }
      }
      /**
       * <code>required .NetGameInfo gameInfo = 3;</code>
       */
      public Builder setGameInfo(de.pokerth.protocol.ProtoBuf.NetGameInfo value) {
        if (gameInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          gameInfo_ = value;
        } else {
          gameInfoBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>required .NetGameInfo gameInfo = 3;</code>
       */
      public Builder setGameInfo(
          de.pokerth.protocol.ProtoBuf.NetGameInfo.Builder builderForValue) {
        if (gameInfoBuilder_ == null) {
          gameInfo_ = builderForValue.build();
        } else {
          gameInfoBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>required .NetGameInfo gameInfo = 3;</code>
       */
      public Builder mergeGameInfo(de.pokerth.protocol.ProtoBuf.NetGameInfo value) {
        if (gameInfoBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0) &&
            gameInfo_ != null &&
            gameInfo_ != de.pokerth.protocol.ProtoBuf.NetGameInfo.getDefaultInstance()) {
            getGameInfoBuilder().mergeFrom(value);
          } else {
            gameInfo_ = value;
          }
        } else {
          gameInfoBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>required .NetGameInfo gameInfo = 3;</code>
       */
      public Builder clearGameInfo() {
        bitField0_ = (bitField0_ & ~0x00000004);
        gameInfo_ = null;
        if (gameInfoBuilder_ != null) {
          gameInfoBuilder_.dispose();
          gameInfoBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>required .NetGameInfo gameInfo = 3;</code>
       */
      public de.pokerth.protocol.ProtoBuf.NetGameInfo.Builder getGameInfoBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getGameInfoFieldBuilder().getBuilder();
      }
      /**
       * <code>required .NetGameInfo gameInfo = 3;</code>
       */
      public de.pokerth.protocol.ProtoBuf.NetGameInfoOrBuilder getGameInfoOrBuilder() {
        if (gameInfoBuilder_ != null) {
          return gameInfoBuilder_.getMessageOrBuilder();
        } else {
          return gameInfo_ == null ?
              de.pokerth.protocol.ProtoBuf.NetGameInfo.getDefaultInstance() : gameInfo_;
        }
      }
      /**
       * <code>required .NetGameInfo gameInfo = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.NetGameInfo, de.pokerth.protocol.ProtoBuf.NetGameInfo.Builder, de.pokerth.protocol.ProtoBuf.NetGameInfoOrBuilder> 
          getGameInfoFieldBuilder() {
        if (gameInfoBuilder_ == null) {
          gameInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.NetGameInfo, de.pokerth.protocol.ProtoBuf.NetGameInfo.Builder, de.pokerth.protocol.ProtoBuf.NetGameInfoOrBuilder>(
                  getGameInfo(),
                  getParentForChildren(),
                  isClean());
          gameInfo_ = null;
        }
        return gameInfoBuilder_;
      }

      private boolean spectateOnly_ ;
      /**
       * <code>optional bool spectateOnly = 4;</code>
       * @return Whether the spectateOnly field is set.
       */
      @java.lang.Override
      public boolean hasSpectateOnly() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>optional bool spectateOnly = 4;</code>
       * @return The spectateOnly.
       */
      @java.lang.Override
      public boolean getSpectateOnly() {
        return spectateOnly_;
      }
      /**
       * <code>optional bool spectateOnly = 4;</code>
       * @param value The spectateOnly to set.
       * @return This builder for chaining.
       */
      public Builder setSpectateOnly(boolean value) {
        
        spectateOnly_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool spectateOnly = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearSpectateOnly() {
        bitField0_ = (bitField0_ & ~0x00000008);
        spectateOnly_ = false;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:JoinGameAckMessage)
    }

    // @@protoc_insertion_point(class_scope:JoinGameAckMessage)
    private static final de.pokerth.protocol.ProtoBuf.JoinGameAckMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.JoinGameAckMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.JoinGameAckMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<JoinGameAckMessage>
        PARSER = new com.google.protobuf.AbstractParser<JoinGameAckMessage>() {
      @java.lang.Override
      public JoinGameAckMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<JoinGameAckMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.JoinGameAckMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    int getGameId();

    /**
     * <code>required .JoinGameFailedMessage.JoinGameFailureReason joinGameFailureReason = 2;</code>
     * @return Whether the joinGameFailureReason field is set.
     */
    boolean hasJoinGameFailureReason();
    /**
     * <code>required .JoinGameFailedMessage.JoinGameFailureReason joinGameFailureReason = 2;</code>
     * @return The joinGameFailureReason.
     */
    de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.JoinGameFailureReason getJoinGameFailureReason();
  }
  /**
   * Protobuf type {@code JoinGameFailedMessage}
   */
  public static final class JoinGameFailedMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:JoinGameFailedMessage)
      JoinGameFailedMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use JoinGameFailedMessage.newBuilder() to construct.
    private JoinGameFailedMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private JoinGameFailedMessage() {
      joinGameFailureReason_ = 1;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new JoinGameFailedMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_JoinGameFailedMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_JoinGameFailedMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.class, de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.Builder.class);
    }

    /**
     * Protobuf enum {@code JoinGameFailedMessage.JoinGameFailureReason}
     */
    public enum JoinGameFailureReason
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>invalidGame = 1;</code>
       */
      invalidGame(1),
      /**
       * <code>gameIsFull = 2;</code>
       */
      gameIsFull(2),
      /**
       * <code>gameIsRunning = 3;</code>
       */
      gameIsRunning(3),
      /**
       * <code>invalidPassword = 4;</code>
       */
      invalidPassword(4),
      /**
       * <code>notAllowedAsGuest = 5;</code>
       */
      notAllowedAsGuest(5),
      /**
       * <code>notInvited = 6;</code>
       */
      notInvited(6),
      /**
       * <code>gameNameInUse = 7;</code>
       */
      gameNameInUse(7),
      /**
       * <code>badGameName = 8;</code>
       */
      badGameName(8),
      /**
       * <code>invalidSettings = 9;</code>
       */
      invalidSettings(9),
      /**
       * <code>ipAddressBlocked = 10;</code>
       */
      ipAddressBlocked(10),
      /**
       * <code>rejoinFailed = 11;</code>
       */
      rejoinFailed(11),
      /**
       * <code>noSpectatorsAllowed = 12;</code>
       */
      noSpectatorsAllowed(12),
      ;

      /**
       * <code>invalidGame = 1;</code>
       */
      public static final int invalidGame_VALUE = 1;
      /**
       * <code>gameIsFull = 2;</code>
       */
      public static final int gameIsFull_VALUE = 2;
      /**
       * <code>gameIsRunning = 3;</code>
       */
      public static final int gameIsRunning_VALUE = 3;
      /**
       * <code>invalidPassword = 4;</code>
       */
      public static final int invalidPassword_VALUE = 4;
      /**
       * <code>notAllowedAsGuest = 5;</code>
       */
      public static final int notAllowedAsGuest_VALUE = 5;
      /**
       * <code>notInvited = 6;</code>
       */
      public static final int notInvited_VALUE = 6;
      /**
       * <code>gameNameInUse = 7;</code>
       */
      public static final int gameNameInUse_VALUE = 7;
      /**
       * <code>badGameName = 8;</code>
       */
      public static final int badGameName_VALUE = 8;
      /**
       * <code>invalidSettings = 9;</code>
       */
      public static final int invalidSettings_VALUE = 9;
      /**
       * <code>ipAddressBlocked = 10;</code>
       */
      public static final int ipAddressBlocked_VALUE = 10;
      /**
       * <code>rejoinFailed = 11;</code>
       */
      public static final int rejoinFailed_VALUE = 11;
      /**
       * <code>noSpectatorsAllowed = 12;</code>
       */
      public static final int noSpectatorsAllowed_VALUE = 12;


      public final int getNumber() {
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static JoinGameFailureReason valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static JoinGameFailureReason forNumber(int value) {
        switch (value) {
          case 1: return invalidGame;
          case 2: return gameIsFull;
          case 3: return gameIsRunning;
          case 4: return invalidPassword;
          case 5: return notAllowedAsGuest;
          case 6: return notInvited;
          case 7: return gameNameInUse;
          case 8: return badGameName;
          case 9: return invalidSettings;
          case 10: return ipAddressBlocked;
          case 11: return rejoinFailed;
          case 12: return noSpectatorsAllowed;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<JoinGameFailureReason>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          JoinGameFailureReason> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<JoinGameFailureReason>() {
              public JoinGameFailureReason findValueByNumber(int number) {
                return JoinGameFailureReason.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.getDescriptor().getEnumTypes().get(0);
      }

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

      public static JoinGameFailureReason 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 value;

      private JoinGameFailureReason(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:JoinGameFailedMessage.JoinGameFailureReason)
    }

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_ = 0;
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    @java.lang.Override
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    @java.lang.Override
    public int getGameId() {
      return gameId_;
    }

    public static final int JOINGAMEFAILUREREASON_FIELD_NUMBER = 2;
    private int joinGameFailureReason_ = 1;
    /**
     * <code>required .JoinGameFailedMessage.JoinGameFailureReason joinGameFailureReason = 2;</code>
     * @return Whether the joinGameFailureReason field is set.
     */
    @java.lang.Override public boolean hasJoinGameFailureReason() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required .JoinGameFailedMessage.JoinGameFailureReason joinGameFailureReason = 2;</code>
     * @return The joinGameFailureReason.
     */
    @java.lang.Override public de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.JoinGameFailureReason getJoinGameFailureReason() {
      de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.JoinGameFailureReason result = de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.JoinGameFailureReason.forNumber(joinGameFailureReason_);
      return result == null ? de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.JoinGameFailureReason.invalidGame : result;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

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

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeEnum(2, joinGameFailureReason_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, joinGameFailureReason_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage other = (de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage) obj;

      if (hasGameId() != other.hasGameId()) return false;
      if (hasGameId()) {
        if (getGameId()
            != other.getGameId()) return false;
      }
      if (hasJoinGameFailureReason() != other.hasJoinGameFailureReason()) return false;
      if (hasJoinGameFailureReason()) {
        if (joinGameFailureReason_ != other.joinGameFailureReason_) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasGameId()) {
        hash = (37 * hash) + GAMEID_FIELD_NUMBER;
        hash = (53 * hash) + getGameId();
      }
      if (hasJoinGameFailureReason()) {
        hash = (37 * hash) + JOINGAMEFAILUREREASON_FIELD_NUMBER;
        hash = (53 * hash) + joinGameFailureReason_;
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code JoinGameFailedMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:JoinGameFailedMessage)
        de.pokerth.protocol.ProtoBuf.JoinGameFailedMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_JoinGameFailedMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_JoinGameFailedMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.class, de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        gameId_ = 0;
        joinGameFailureReason_ = 1;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_JoinGameFailedMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage build() {
        de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage result = new de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.gameId_ = gameId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.joinGameFailureReason_ = joinGameFailureReason_;
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasJoinGameFailureReason()) {
          setJoinGameFailureReason(other.getJoinGameFailureReason());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasGameId()) {
          return false;
        }
        if (!hasJoinGameFailureReason()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                gameId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                int tmpRaw = input.readEnum();
                de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.JoinGameFailureReason tmpValue =
                    de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.JoinGameFailureReason.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(2, tmpRaw);
                } else {
                  joinGameFailureReason_ = tmpRaw;
                  bitField0_ |= 0x00000002;
                }
                break;
              } // case 16
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return Whether the gameId field is set.
       */
      @java.lang.Override
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return The gameId.
       */
      @java.lang.Override
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @param value The gameId to set.
       * @return This builder for chaining.
       */
      public Builder setGameId(int value) {
        
        gameId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        onChanged();
        return this;
      }

      private int joinGameFailureReason_ = 1;
      /**
       * <code>required .JoinGameFailedMessage.JoinGameFailureReason joinGameFailureReason = 2;</code>
       * @return Whether the joinGameFailureReason field is set.
       */
      @java.lang.Override public boolean hasJoinGameFailureReason() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required .JoinGameFailedMessage.JoinGameFailureReason joinGameFailureReason = 2;</code>
       * @return The joinGameFailureReason.
       */
      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.JoinGameFailureReason getJoinGameFailureReason() {
        de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.JoinGameFailureReason result = de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.JoinGameFailureReason.forNumber(joinGameFailureReason_);
        return result == null ? de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.JoinGameFailureReason.invalidGame : result;
      }
      /**
       * <code>required .JoinGameFailedMessage.JoinGameFailureReason joinGameFailureReason = 2;</code>
       * @param value The joinGameFailureReason to set.
       * @return This builder for chaining.
       */
      public Builder setJoinGameFailureReason(de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.JoinGameFailureReason value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        joinGameFailureReason_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>required .JoinGameFailedMessage.JoinGameFailureReason joinGameFailureReason = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearJoinGameFailureReason() {
        bitField0_ = (bitField0_ & ~0x00000002);
        joinGameFailureReason_ = 1;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:JoinGameFailedMessage)
    }

    // @@protoc_insertion_point(class_scope:JoinGameFailedMessage)
    private static final de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<JoinGameFailedMessage>
        PARSER = new com.google.protobuf.AbstractParser<JoinGameFailedMessage>() {
      @java.lang.Override
      public JoinGameFailedMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<JoinGameFailedMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    int getGameId();

    /**
     * <code>required uint32 playerId = 2;</code>
     * @return Whether the playerId field is set.
     */
    boolean hasPlayerId();
    /**
     * <code>required uint32 playerId = 2;</code>
     * @return The playerId.
     */
    int getPlayerId();

    /**
     * <code>required bool isGameAdmin = 3;</code>
     * @return Whether the isGameAdmin field is set.
     */
    boolean hasIsGameAdmin();
    /**
     * <code>required bool isGameAdmin = 3;</code>
     * @return The isGameAdmin.
     */
    boolean getIsGameAdmin();
  }
  /**
   * Protobuf type {@code GamePlayerJoinedMessage}
   */
  public static final class GamePlayerJoinedMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:GamePlayerJoinedMessage)
      GamePlayerJoinedMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use GamePlayerJoinedMessage.newBuilder() to construct.
    private GamePlayerJoinedMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private GamePlayerJoinedMessage() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new GamePlayerJoinedMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_GamePlayerJoinedMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_GamePlayerJoinedMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage.class, de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage.Builder.class);
    }

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_ = 0;
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    @java.lang.Override
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    @java.lang.Override
    public int getGameId() {
      return gameId_;
    }

    public static final int PLAYERID_FIELD_NUMBER = 2;
    private int playerId_ = 0;
    /**
     * <code>required uint32 playerId = 2;</code>
     * @return Whether the playerId field is set.
     */
    @java.lang.Override
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required uint32 playerId = 2;</code>
     * @return The playerId.
     */
    @java.lang.Override
    public int getPlayerId() {
      return playerId_;
    }

    public static final int ISGAMEADMIN_FIELD_NUMBER = 3;
    private boolean isGameAdmin_ = false;
    /**
     * <code>required bool isGameAdmin = 3;</code>
     * @return Whether the isGameAdmin field is set.
     */
    @java.lang.Override
    public boolean hasIsGameAdmin() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>required bool isGameAdmin = 3;</code>
     * @return The isGameAdmin.
     */
    @java.lang.Override
    public boolean getIsGameAdmin() {
      return isGameAdmin_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasIsGameAdmin()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt32(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeBool(3, isGameAdmin_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, isGameAdmin_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage other = (de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage) obj;

      if (hasGameId() != other.hasGameId()) return false;
      if (hasGameId()) {
        if (getGameId()
            != other.getGameId()) return false;
      }
      if (hasPlayerId() != other.hasPlayerId()) return false;
      if (hasPlayerId()) {
        if (getPlayerId()
            != other.getPlayerId()) return false;
      }
      if (hasIsGameAdmin() != other.hasIsGameAdmin()) return false;
      if (hasIsGameAdmin()) {
        if (getIsGameAdmin()
            != other.getIsGameAdmin()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasGameId()) {
        hash = (37 * hash) + GAMEID_FIELD_NUMBER;
        hash = (53 * hash) + getGameId();
      }
      if (hasPlayerId()) {
        hash = (37 * hash) + PLAYERID_FIELD_NUMBER;
        hash = (53 * hash) + getPlayerId();
      }
      if (hasIsGameAdmin()) {
        hash = (37 * hash) + ISGAMEADMIN_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getIsGameAdmin());
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code GamePlayerJoinedMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:GamePlayerJoinedMessage)
        de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_GamePlayerJoinedMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_GamePlayerJoinedMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage.class, de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        gameId_ = 0;
        playerId_ = 0;
        isGameAdmin_ = false;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_GamePlayerJoinedMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage build() {
        de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage result = new de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.gameId_ = gameId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.playerId_ = playerId_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.isGameAdmin_ = isGameAdmin_;
          to_bitField0_ |= 0x00000004;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasIsGameAdmin()) {
          setIsGameAdmin(other.getIsGameAdmin());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasGameId()) {
          return false;
        }
        if (!hasPlayerId()) {
          return false;
        }
        if (!hasIsGameAdmin()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                gameId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                playerId_ = input.readUInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                isGameAdmin_ = input.readBool();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return Whether the gameId field is set.
       */
      @java.lang.Override
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return The gameId.
       */
      @java.lang.Override
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @param value The gameId to set.
       * @return This builder for chaining.
       */
      public Builder setGameId(int value) {
        
        gameId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        onChanged();
        return this;
      }

      private int playerId_ ;
      /**
       * <code>required uint32 playerId = 2;</code>
       * @return Whether the playerId field is set.
       */
      @java.lang.Override
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       * @return The playerId.
       */
      @java.lang.Override
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       * @param value The playerId to set.
       * @return This builder for chaining.
       */
      public Builder setPlayerId(int value) {
        
        playerId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private boolean isGameAdmin_ ;
      /**
       * <code>required bool isGameAdmin = 3;</code>
       * @return Whether the isGameAdmin field is set.
       */
      @java.lang.Override
      public boolean hasIsGameAdmin() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>required bool isGameAdmin = 3;</code>
       * @return The isGameAdmin.
       */
      @java.lang.Override
      public boolean getIsGameAdmin() {
        return isGameAdmin_;
      }
      /**
       * <code>required bool isGameAdmin = 3;</code>
       * @param value The isGameAdmin to set.
       * @return This builder for chaining.
       */
      public Builder setIsGameAdmin(boolean value) {
        
        isGameAdmin_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>required bool isGameAdmin = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearIsGameAdmin() {
        bitField0_ = (bitField0_ & ~0x00000004);
        isGameAdmin_ = false;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:GamePlayerJoinedMessage)
    }

    // @@protoc_insertion_point(class_scope:GamePlayerJoinedMessage)
    private static final de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<GamePlayerJoinedMessage>
        PARSER = new com.google.protobuf.AbstractParser<GamePlayerJoinedMessage>() {
      @java.lang.Override
      public GamePlayerJoinedMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<GamePlayerJoinedMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    int getGameId();

    /**
     * <code>required uint32 playerId = 2;</code>
     * @return Whether the playerId field is set.
     */
    boolean hasPlayerId();
    /**
     * <code>required uint32 playerId = 2;</code>
     * @return The playerId.
     */
    int getPlayerId();

    /**
     * <code>required .GamePlayerLeftMessage.GamePlayerLeftReason gamePlayerLeftReason = 3;</code>
     * @return Whether the gamePlayerLeftReason field is set.
     */
    boolean hasGamePlayerLeftReason();
    /**
     * <code>required .GamePlayerLeftMessage.GamePlayerLeftReason gamePlayerLeftReason = 3;</code>
     * @return The gamePlayerLeftReason.
     */
    de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason getGamePlayerLeftReason();
  }
  /**
   * Protobuf type {@code GamePlayerLeftMessage}
   */
  public static final class GamePlayerLeftMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:GamePlayerLeftMessage)
      GamePlayerLeftMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use GamePlayerLeftMessage.newBuilder() to construct.
    private GamePlayerLeftMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private GamePlayerLeftMessage() {
      gamePlayerLeftReason_ = 0;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new GamePlayerLeftMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_GamePlayerLeftMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_GamePlayerLeftMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.class, de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.Builder.class);
    }

    /**
     * Protobuf enum {@code GamePlayerLeftMessage.GamePlayerLeftReason}
     */
    public enum GamePlayerLeftReason
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>leftOnRequest = 0;</code>
       */
      leftOnRequest(0),
      /**
       * <code>leftKicked = 1;</code>
       */
      leftKicked(1),
      /**
       * <code>leftError = 2;</code>
       */
      leftError(2),
      ;

      /**
       * <code>leftOnRequest = 0;</code>
       */
      public static final int leftOnRequest_VALUE = 0;
      /**
       * <code>leftKicked = 1;</code>
       */
      public static final int leftKicked_VALUE = 1;
      /**
       * <code>leftError = 2;</code>
       */
      public static final int leftError_VALUE = 2;


      public final int getNumber() {
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static GamePlayerLeftReason valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static GamePlayerLeftReason forNumber(int value) {
        switch (value) {
          case 0: return leftOnRequest;
          case 1: return leftKicked;
          case 2: return leftError;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<GamePlayerLeftReason>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          GamePlayerLeftReason> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<GamePlayerLeftReason>() {
              public GamePlayerLeftReason findValueByNumber(int number) {
                return GamePlayerLeftReason.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.getDescriptor().getEnumTypes().get(0);
      }

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

      public static GamePlayerLeftReason 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 value;

      private GamePlayerLeftReason(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:GamePlayerLeftMessage.GamePlayerLeftReason)
    }

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_ = 0;
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    @java.lang.Override
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    @java.lang.Override
    public int getGameId() {
      return gameId_;
    }

    public static final int PLAYERID_FIELD_NUMBER = 2;
    private int playerId_ = 0;
    /**
     * <code>required uint32 playerId = 2;</code>
     * @return Whether the playerId field is set.
     */
    @java.lang.Override
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required uint32 playerId = 2;</code>
     * @return The playerId.
     */
    @java.lang.Override
    public int getPlayerId() {
      return playerId_;
    }

    public static final int GAMEPLAYERLEFTREASON_FIELD_NUMBER = 3;
    private int gamePlayerLeftReason_ = 0;
    /**
     * <code>required .GamePlayerLeftMessage.GamePlayerLeftReason gamePlayerLeftReason = 3;</code>
     * @return Whether the gamePlayerLeftReason field is set.
     */
    @java.lang.Override public boolean hasGamePlayerLeftReason() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>required .GamePlayerLeftMessage.GamePlayerLeftReason gamePlayerLeftReason = 3;</code>
     * @return The gamePlayerLeftReason.
     */
    @java.lang.Override public de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason getGamePlayerLeftReason() {
      de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason result = de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason.forNumber(gamePlayerLeftReason_);
      return result == null ? de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason.leftOnRequest : result;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasGamePlayerLeftReason()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt32(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeEnum(3, gamePlayerLeftReason_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, gamePlayerLeftReason_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage other = (de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage) obj;

      if (hasGameId() != other.hasGameId()) return false;
      if (hasGameId()) {
        if (getGameId()
            != other.getGameId()) return false;
      }
      if (hasPlayerId() != other.hasPlayerId()) return false;
      if (hasPlayerId()) {
        if (getPlayerId()
            != other.getPlayerId()) return false;
      }
      if (hasGamePlayerLeftReason() != other.hasGamePlayerLeftReason()) return false;
      if (hasGamePlayerLeftReason()) {
        if (gamePlayerLeftReason_ != other.gamePlayerLeftReason_) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasGameId()) {
        hash = (37 * hash) + GAMEID_FIELD_NUMBER;
        hash = (53 * hash) + getGameId();
      }
      if (hasPlayerId()) {
        hash = (37 * hash) + PLAYERID_FIELD_NUMBER;
        hash = (53 * hash) + getPlayerId();
      }
      if (hasGamePlayerLeftReason()) {
        hash = (37 * hash) + GAMEPLAYERLEFTREASON_FIELD_NUMBER;
        hash = (53 * hash) + gamePlayerLeftReason_;
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code GamePlayerLeftMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:GamePlayerLeftMessage)
        de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_GamePlayerLeftMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_GamePlayerLeftMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.class, de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        gameId_ = 0;
        playerId_ = 0;
        gamePlayerLeftReason_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_GamePlayerLeftMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage build() {
        de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage result = new de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.gameId_ = gameId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.playerId_ = playerId_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.gamePlayerLeftReason_ = gamePlayerLeftReason_;
          to_bitField0_ |= 0x00000004;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasGamePlayerLeftReason()) {
          setGamePlayerLeftReason(other.getGamePlayerLeftReason());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasGameId()) {
          return false;
        }
        if (!hasPlayerId()) {
          return false;
        }
        if (!hasGamePlayerLeftReason()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                gameId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                playerId_ = input.readUInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                int tmpRaw = input.readEnum();
                de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason tmpValue =
                    de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(3, tmpRaw);
                } else {
                  gamePlayerLeftReason_ = tmpRaw;
                  bitField0_ |= 0x00000004;
                }
                break;
              } // case 24
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return Whether the gameId field is set.
       */
      @java.lang.Override
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return The gameId.
       */
      @java.lang.Override
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @param value The gameId to set.
       * @return This builder for chaining.
       */
      public Builder setGameId(int value) {
        
        gameId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        onChanged();
        return this;
      }

      private int playerId_ ;
      /**
       * <code>required uint32 playerId = 2;</code>
       * @return Whether the playerId field is set.
       */
      @java.lang.Override
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       * @return The playerId.
       */
      @java.lang.Override
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       * @param value The playerId to set.
       * @return This builder for chaining.
       */
      public Builder setPlayerId(int value) {
        
        playerId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private int gamePlayerLeftReason_ = 0;
      /**
       * <code>required .GamePlayerLeftMessage.GamePlayerLeftReason gamePlayerLeftReason = 3;</code>
       * @return Whether the gamePlayerLeftReason field is set.
       */
      @java.lang.Override public boolean hasGamePlayerLeftReason() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>required .GamePlayerLeftMessage.GamePlayerLeftReason gamePlayerLeftReason = 3;</code>
       * @return The gamePlayerLeftReason.
       */
      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason getGamePlayerLeftReason() {
        de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason result = de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason.forNumber(gamePlayerLeftReason_);
        return result == null ? de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason.leftOnRequest : result;
      }
      /**
       * <code>required .GamePlayerLeftMessage.GamePlayerLeftReason gamePlayerLeftReason = 3;</code>
       * @param value The gamePlayerLeftReason to set.
       * @return This builder for chaining.
       */
      public Builder setGamePlayerLeftReason(de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        gamePlayerLeftReason_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>required .GamePlayerLeftMessage.GamePlayerLeftReason gamePlayerLeftReason = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearGamePlayerLeftReason() {
        bitField0_ = (bitField0_ & ~0x00000004);
        gamePlayerLeftReason_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:GamePlayerLeftMessage)
    }

    // @@protoc_insertion_point(class_scope:GamePlayerLeftMessage)
    private static final de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<GamePlayerLeftMessage>
        PARSER = new com.google.protobuf.AbstractParser<GamePlayerLeftMessage>() {
      @java.lang.Override
      public GamePlayerLeftMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<GamePlayerLeftMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    int getGameId();

    /**
     * <code>required uint32 playerId = 2;</code>
     * @return Whether the playerId field is set.
     */
    boolean hasPlayerId();
    /**
     * <code>required uint32 playerId = 2;</code>
     * @return The playerId.
     */
    int getPlayerId();
  }
  /**
   * Protobuf type {@code GameSpectatorJoinedMessage}
   */
  public static final class GameSpectatorJoinedMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:GameSpectatorJoinedMessage)
      GameSpectatorJoinedMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use GameSpectatorJoinedMessage.newBuilder() to construct.
    private GameSpectatorJoinedMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private GameSpectatorJoinedMessage() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new GameSpectatorJoinedMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_GameSpectatorJoinedMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_GameSpectatorJoinedMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage.class, de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage.Builder.class);
    }

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_ = 0;
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    @java.lang.Override
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    @java.lang.Override
    public int getGameId() {
      return gameId_;
    }

    public static final int PLAYERID_FIELD_NUMBER = 2;
    private int playerId_ = 0;
    /**
     * <code>required uint32 playerId = 2;</code>
     * @return Whether the playerId field is set.
     */
    @java.lang.Override
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required uint32 playerId = 2;</code>
     * @return The playerId.
     */
    @java.lang.Override
    public int getPlayerId() {
      return playerId_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

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

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt32(2, playerId_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, playerId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage other = (de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage) obj;

      if (hasGameId() != other.hasGameId()) return false;
      if (hasGameId()) {
        if (getGameId()
            != other.getGameId()) return false;
      }
      if (hasPlayerId() != other.hasPlayerId()) return false;
      if (hasPlayerId()) {
        if (getPlayerId()
            != other.getPlayerId()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasGameId()) {
        hash = (37 * hash) + GAMEID_FIELD_NUMBER;
        hash = (53 * hash) + getGameId();
      }
      if (hasPlayerId()) {
        hash = (37 * hash) + PLAYERID_FIELD_NUMBER;
        hash = (53 * hash) + getPlayerId();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code GameSpectatorJoinedMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:GameSpectatorJoinedMessage)
        de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_GameSpectatorJoinedMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_GameSpectatorJoinedMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage.class, de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        gameId_ = 0;
        playerId_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_GameSpectatorJoinedMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage build() {
        de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage result = new de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.gameId_ = gameId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.playerId_ = playerId_;
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasGameId()) {
          return false;
        }
        if (!hasPlayerId()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                gameId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                playerId_ = input.readUInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return Whether the gameId field is set.
       */
      @java.lang.Override
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return The gameId.
       */
      @java.lang.Override
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @param value The gameId to set.
       * @return This builder for chaining.
       */
      public Builder setGameId(int value) {
        
        gameId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        onChanged();
        return this;
      }

      private int playerId_ ;
      /**
       * <code>required uint32 playerId = 2;</code>
       * @return Whether the playerId field is set.
       */
      @java.lang.Override
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       * @return The playerId.
       */
      @java.lang.Override
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       * @param value The playerId to set.
       * @return This builder for chaining.
       */
      public Builder setPlayerId(int value) {
        
        playerId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:GameSpectatorJoinedMessage)
    }

    // @@protoc_insertion_point(class_scope:GameSpectatorJoinedMessage)
    private static final de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<GameSpectatorJoinedMessage>
        PARSER = new com.google.protobuf.AbstractParser<GameSpectatorJoinedMessage>() {
      @java.lang.Override
      public GameSpectatorJoinedMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<GameSpectatorJoinedMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    int getGameId();

    /**
     * <code>required uint32 playerId = 2;</code>
     * @return Whether the playerId field is set.
     */
    boolean hasPlayerId();
    /**
     * <code>required uint32 playerId = 2;</code>
     * @return The playerId.
     */
    int getPlayerId();

    /**
     * <code>required .GamePlayerLeftMessage.GamePlayerLeftReason gameSpectatorLeftReason = 3;</code>
     * @return Whether the gameSpectatorLeftReason field is set.
     */
    boolean hasGameSpectatorLeftReason();
    /**
     * <code>required .GamePlayerLeftMessage.GamePlayerLeftReason gameSpectatorLeftReason = 3;</code>
     * @return The gameSpectatorLeftReason.
     */
    de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason getGameSpectatorLeftReason();
  }
  /**
   * Protobuf type {@code GameSpectatorLeftMessage}
   */
  public static final class GameSpectatorLeftMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:GameSpectatorLeftMessage)
      GameSpectatorLeftMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use GameSpectatorLeftMessage.newBuilder() to construct.
    private GameSpectatorLeftMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private GameSpectatorLeftMessage() {
      gameSpectatorLeftReason_ = 0;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new GameSpectatorLeftMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_GameSpectatorLeftMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_GameSpectatorLeftMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage.class, de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage.Builder.class);
    }

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_ = 0;
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    @java.lang.Override
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    @java.lang.Override
    public int getGameId() {
      return gameId_;
    }

    public static final int PLAYERID_FIELD_NUMBER = 2;
    private int playerId_ = 0;
    /**
     * <code>required uint32 playerId = 2;</code>
     * @return Whether the playerId field is set.
     */
    @java.lang.Override
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required uint32 playerId = 2;</code>
     * @return The playerId.
     */
    @java.lang.Override
    public int getPlayerId() {
      return playerId_;
    }

    public static final int GAMESPECTATORLEFTREASON_FIELD_NUMBER = 3;
    private int gameSpectatorLeftReason_ = 0;
    /**
     * <code>required .GamePlayerLeftMessage.GamePlayerLeftReason gameSpectatorLeftReason = 3;</code>
     * @return Whether the gameSpectatorLeftReason field is set.
     */
    @java.lang.Override public boolean hasGameSpectatorLeftReason() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>required .GamePlayerLeftMessage.GamePlayerLeftReason gameSpectatorLeftReason = 3;</code>
     * @return The gameSpectatorLeftReason.
     */
    @java.lang.Override public de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason getGameSpectatorLeftReason() {
      de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason result = de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason.forNumber(gameSpectatorLeftReason_);
      return result == null ? de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason.leftOnRequest : result;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasGameSpectatorLeftReason()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt32(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeEnum(3, gameSpectatorLeftReason_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, gameSpectatorLeftReason_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage other = (de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage) obj;

      if (hasGameId() != other.hasGameId()) return false;
      if (hasGameId()) {
        if (getGameId()
            != other.getGameId()) return false;
      }
      if (hasPlayerId() != other.hasPlayerId()) return false;
      if (hasPlayerId()) {
        if (getPlayerId()
            != other.getPlayerId()) return false;
      }
      if (hasGameSpectatorLeftReason() != other.hasGameSpectatorLeftReason()) return false;
      if (hasGameSpectatorLeftReason()) {
        if (gameSpectatorLeftReason_ != other.gameSpectatorLeftReason_) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasGameId()) {
        hash = (37 * hash) + GAMEID_FIELD_NUMBER;
        hash = (53 * hash) + getGameId();
      }
      if (hasPlayerId()) {
        hash = (37 * hash) + PLAYERID_FIELD_NUMBER;
        hash = (53 * hash) + getPlayerId();
      }
      if (hasGameSpectatorLeftReason()) {
        hash = (37 * hash) + GAMESPECTATORLEFTREASON_FIELD_NUMBER;
        hash = (53 * hash) + gameSpectatorLeftReason_;
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code GameSpectatorLeftMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:GameSpectatorLeftMessage)
        de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_GameSpectatorLeftMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_GameSpectatorLeftMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage.class, de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        gameId_ = 0;
        playerId_ = 0;
        gameSpectatorLeftReason_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_GameSpectatorLeftMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage build() {
        de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage result = new de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.gameId_ = gameId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.playerId_ = playerId_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.gameSpectatorLeftReason_ = gameSpectatorLeftReason_;
          to_bitField0_ |= 0x00000004;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasGameSpectatorLeftReason()) {
          setGameSpectatorLeftReason(other.getGameSpectatorLeftReason());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasGameId()) {
          return false;
        }
        if (!hasPlayerId()) {
          return false;
        }
        if (!hasGameSpectatorLeftReason()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                gameId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                playerId_ = input.readUInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                int tmpRaw = input.readEnum();
                de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason tmpValue =
                    de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(3, tmpRaw);
                } else {
                  gameSpectatorLeftReason_ = tmpRaw;
                  bitField0_ |= 0x00000004;
                }
                break;
              } // case 24
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return Whether the gameId field is set.
       */
      @java.lang.Override
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return The gameId.
       */
      @java.lang.Override
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @param value The gameId to set.
       * @return This builder for chaining.
       */
      public Builder setGameId(int value) {
        
        gameId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        onChanged();
        return this;
      }

      private int playerId_ ;
      /**
       * <code>required uint32 playerId = 2;</code>
       * @return Whether the playerId field is set.
       */
      @java.lang.Override
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       * @return The playerId.
       */
      @java.lang.Override
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       * @param value The playerId to set.
       * @return This builder for chaining.
       */
      public Builder setPlayerId(int value) {
        
        playerId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private int gameSpectatorLeftReason_ = 0;
      /**
       * <code>required .GamePlayerLeftMessage.GamePlayerLeftReason gameSpectatorLeftReason = 3;</code>
       * @return Whether the gameSpectatorLeftReason field is set.
       */
      @java.lang.Override public boolean hasGameSpectatorLeftReason() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>required .GamePlayerLeftMessage.GamePlayerLeftReason gameSpectatorLeftReason = 3;</code>
       * @return The gameSpectatorLeftReason.
       */
      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason getGameSpectatorLeftReason() {
        de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason result = de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason.forNumber(gameSpectatorLeftReason_);
        return result == null ? de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason.leftOnRequest : result;
      }
      /**
       * <code>required .GamePlayerLeftMessage.GamePlayerLeftReason gameSpectatorLeftReason = 3;</code>
       * @param value The gameSpectatorLeftReason to set.
       * @return This builder for chaining.
       */
      public Builder setGameSpectatorLeftReason(de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        gameSpectatorLeftReason_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>required .GamePlayerLeftMessage.GamePlayerLeftReason gameSpectatorLeftReason = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearGameSpectatorLeftReason() {
        bitField0_ = (bitField0_ & ~0x00000004);
        gameSpectatorLeftReason_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:GameSpectatorLeftMessage)
    }

    // @@protoc_insertion_point(class_scope:GameSpectatorLeftMessage)
    private static final de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<GameSpectatorLeftMessage>
        PARSER = new com.google.protobuf.AbstractParser<GameSpectatorLeftMessage>() {
      @java.lang.Override
      public GameSpectatorLeftMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<GameSpectatorLeftMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    int getGameId();

    /**
     * <code>required uint32 newAdminPlayerId = 2;</code>
     * @return Whether the newAdminPlayerId field is set.
     */
    boolean hasNewAdminPlayerId();
    /**
     * <code>required uint32 newAdminPlayerId = 2;</code>
     * @return The newAdminPlayerId.
     */
    int getNewAdminPlayerId();
  }
  /**
   * Protobuf type {@code GameAdminChangedMessage}
   */
  public static final class GameAdminChangedMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:GameAdminChangedMessage)
      GameAdminChangedMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use GameAdminChangedMessage.newBuilder() to construct.
    private GameAdminChangedMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private GameAdminChangedMessage() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new GameAdminChangedMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_GameAdminChangedMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_GameAdminChangedMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage.class, de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage.Builder.class);
    }

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_ = 0;
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    @java.lang.Override
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    @java.lang.Override
    public int getGameId() {
      return gameId_;
    }

    public static final int NEWADMINPLAYERID_FIELD_NUMBER = 2;
    private int newAdminPlayerId_ = 0;
    /**
     * <code>required uint32 newAdminPlayerId = 2;</code>
     * @return Whether the newAdminPlayerId field is set.
     */
    @java.lang.Override
    public boolean hasNewAdminPlayerId() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required uint32 newAdminPlayerId = 2;</code>
     * @return The newAdminPlayerId.
     */
    @java.lang.Override
    public int getNewAdminPlayerId() {
      return newAdminPlayerId_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

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

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt32(2, newAdminPlayerId_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, newAdminPlayerId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage other = (de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage) obj;

      if (hasGameId() != other.hasGameId()) return false;
      if (hasGameId()) {
        if (getGameId()
            != other.getGameId()) return false;
      }
      if (hasNewAdminPlayerId() != other.hasNewAdminPlayerId()) return false;
      if (hasNewAdminPlayerId()) {
        if (getNewAdminPlayerId()
            != other.getNewAdminPlayerId()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasGameId()) {
        hash = (37 * hash) + GAMEID_FIELD_NUMBER;
        hash = (53 * hash) + getGameId();
      }
      if (hasNewAdminPlayerId()) {
        hash = (37 * hash) + NEWADMINPLAYERID_FIELD_NUMBER;
        hash = (53 * hash) + getNewAdminPlayerId();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code GameAdminChangedMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:GameAdminChangedMessage)
        de.pokerth.protocol.ProtoBuf.GameAdminChangedMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_GameAdminChangedMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_GameAdminChangedMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage.class, de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        gameId_ = 0;
        newAdminPlayerId_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_GameAdminChangedMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage build() {
        de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage result = new de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.gameId_ = gameId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.newAdminPlayerId_ = newAdminPlayerId_;
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasNewAdminPlayerId()) {
          setNewAdminPlayerId(other.getNewAdminPlayerId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasGameId()) {
          return false;
        }
        if (!hasNewAdminPlayerId()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                gameId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                newAdminPlayerId_ = input.readUInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return Whether the gameId field is set.
       */
      @java.lang.Override
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return The gameId.
       */
      @java.lang.Override
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @param value The gameId to set.
       * @return This builder for chaining.
       */
      public Builder setGameId(int value) {
        
        gameId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        onChanged();
        return this;
      }

      private int newAdminPlayerId_ ;
      /**
       * <code>required uint32 newAdminPlayerId = 2;</code>
       * @return Whether the newAdminPlayerId field is set.
       */
      @java.lang.Override
      public boolean hasNewAdminPlayerId() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required uint32 newAdminPlayerId = 2;</code>
       * @return The newAdminPlayerId.
       */
      @java.lang.Override
      public int getNewAdminPlayerId() {
        return newAdminPlayerId_;
      }
      /**
       * <code>required uint32 newAdminPlayerId = 2;</code>
       * @param value The newAdminPlayerId to set.
       * @return This builder for chaining.
       */
      public Builder setNewAdminPlayerId(int value) {
        
        newAdminPlayerId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 newAdminPlayerId = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearNewAdminPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        newAdminPlayerId_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:GameAdminChangedMessage)
    }

    // @@protoc_insertion_point(class_scope:GameAdminChangedMessage)
    private static final de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<GameAdminChangedMessage>
        PARSER = new com.google.protobuf.AbstractParser<GameAdminChangedMessage>() {
      @java.lang.Override
      public GameAdminChangedMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<GameAdminChangedMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    int getGameId();

    /**
     * <code>required .RemovedFromGameMessage.RemovedFromGameReason removedFromGameReason = 2;</code>
     * @return Whether the removedFromGameReason field is set.
     */
    boolean hasRemovedFromGameReason();
    /**
     * <code>required .RemovedFromGameMessage.RemovedFromGameReason removedFromGameReason = 2;</code>
     * @return The removedFromGameReason.
     */
    de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.RemovedFromGameReason getRemovedFromGameReason();
  }
  /**
   * Protobuf type {@code RemovedFromGameMessage}
   */
  public static final class RemovedFromGameMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:RemovedFromGameMessage)
      RemovedFromGameMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use RemovedFromGameMessage.newBuilder() to construct.
    private RemovedFromGameMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private RemovedFromGameMessage() {
      removedFromGameReason_ = 0;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new RemovedFromGameMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_RemovedFromGameMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_RemovedFromGameMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.class, de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.Builder.class);
    }

    /**
     * Protobuf enum {@code RemovedFromGameMessage.RemovedFromGameReason}
     */
    public enum RemovedFromGameReason
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <pre>
       * No error, client wished to leave.
       * </pre>
       *
       * <code>removedOnRequest = 0;</code>
       */
      removedOnRequest(0),
      /**
       * <code>kickedFromGame = 1;</code>
       */
      kickedFromGame(1),
      /**
       * <code>gameIsFull = 2;</code>
       */
      gameIsFull(2),
      /**
       * <code>gameIsRunning = 3;</code>
       */
      gameIsRunning(3),
      /**
       * <code>gameTimeout = 4;</code>
       */
      gameTimeout(4),
      /**
       * <code>removedStartFailed = 5;</code>
       */
      removedStartFailed(5),
      /**
       * <code>gameClosed = 6;</code>
       */
      gameClosed(6),
      ;

      /**
       * <pre>
       * No error, client wished to leave.
       * </pre>
       *
       * <code>removedOnRequest = 0;</code>
       */
      public static final int removedOnRequest_VALUE = 0;
      /**
       * <code>kickedFromGame = 1;</code>
       */
      public static final int kickedFromGame_VALUE = 1;
      /**
       * <code>gameIsFull = 2;</code>
       */
      public static final int gameIsFull_VALUE = 2;
      /**
       * <code>gameIsRunning = 3;</code>
       */
      public static final int gameIsRunning_VALUE = 3;
      /**
       * <code>gameTimeout = 4;</code>
       */
      public static final int gameTimeout_VALUE = 4;
      /**
       * <code>removedStartFailed = 5;</code>
       */
      public static final int removedStartFailed_VALUE = 5;
      /**
       * <code>gameClosed = 6;</code>
       */
      public static final int gameClosed_VALUE = 6;


      public final int getNumber() {
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static RemovedFromGameReason valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static RemovedFromGameReason forNumber(int value) {
        switch (value) {
          case 0: return removedOnRequest;
          case 1: return kickedFromGame;
          case 2: return gameIsFull;
          case 3: return gameIsRunning;
          case 4: return gameTimeout;
          case 5: return removedStartFailed;
          case 6: return gameClosed;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<RemovedFromGameReason>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          RemovedFromGameReason> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<RemovedFromGameReason>() {
              public RemovedFromGameReason findValueByNumber(int number) {
                return RemovedFromGameReason.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.getDescriptor().getEnumTypes().get(0);
      }

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

      public static RemovedFromGameReason 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 value;

      private RemovedFromGameReason(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:RemovedFromGameMessage.RemovedFromGameReason)
    }

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_ = 0;
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    @java.lang.Override
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    @java.lang.Override
    public int getGameId() {
      return gameId_;
    }

    public static final int REMOVEDFROMGAMEREASON_FIELD_NUMBER = 2;
    private int removedFromGameReason_ = 0;
    /**
     * <code>required .RemovedFromGameMessage.RemovedFromGameReason removedFromGameReason = 2;</code>
     * @return Whether the removedFromGameReason field is set.
     */
    @java.lang.Override public boolean hasRemovedFromGameReason() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required .RemovedFromGameMessage.RemovedFromGameReason removedFromGameReason = 2;</code>
     * @return The removedFromGameReason.
     */
    @java.lang.Override public de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.RemovedFromGameReason getRemovedFromGameReason() {
      de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.RemovedFromGameReason result = de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.RemovedFromGameReason.forNumber(removedFromGameReason_);
      return result == null ? de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.RemovedFromGameReason.removedOnRequest : result;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

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

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeEnum(2, removedFromGameReason_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, removedFromGameReason_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage other = (de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage) obj;

      if (hasGameId() != other.hasGameId()) return false;
      if (hasGameId()) {
        if (getGameId()
            != other.getGameId()) return false;
      }
      if (hasRemovedFromGameReason() != other.hasRemovedFromGameReason()) return false;
      if (hasRemovedFromGameReason()) {
        if (removedFromGameReason_ != other.removedFromGameReason_) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasGameId()) {
        hash = (37 * hash) + GAMEID_FIELD_NUMBER;
        hash = (53 * hash) + getGameId();
      }
      if (hasRemovedFromGameReason()) {
        hash = (37 * hash) + REMOVEDFROMGAMEREASON_FIELD_NUMBER;
        hash = (53 * hash) + removedFromGameReason_;
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code RemovedFromGameMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:RemovedFromGameMessage)
        de.pokerth.protocol.ProtoBuf.RemovedFromGameMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_RemovedFromGameMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_RemovedFromGameMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.class, de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        gameId_ = 0;
        removedFromGameReason_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_RemovedFromGameMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage build() {
        de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage result = new de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.gameId_ = gameId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.removedFromGameReason_ = removedFromGameReason_;
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasRemovedFromGameReason()) {
          setRemovedFromGameReason(other.getRemovedFromGameReason());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasGameId()) {
          return false;
        }
        if (!hasRemovedFromGameReason()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                gameId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                int tmpRaw = input.readEnum();
                de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.RemovedFromGameReason tmpValue =
                    de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.RemovedFromGameReason.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(2, tmpRaw);
                } else {
                  removedFromGameReason_ = tmpRaw;
                  bitField0_ |= 0x00000002;
                }
                break;
              } // case 16
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return Whether the gameId field is set.
       */
      @java.lang.Override
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return The gameId.
       */
      @java.lang.Override
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @param value The gameId to set.
       * @return This builder for chaining.
       */
      public Builder setGameId(int value) {
        
        gameId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        onChanged();
        return this;
      }

      private int removedFromGameReason_ = 0;
      /**
       * <code>required .RemovedFromGameMessage.RemovedFromGameReason removedFromGameReason = 2;</code>
       * @return Whether the removedFromGameReason field is set.
       */
      @java.lang.Override public boolean hasRemovedFromGameReason() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required .RemovedFromGameMessage.RemovedFromGameReason removedFromGameReason = 2;</code>
       * @return The removedFromGameReason.
       */
      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.RemovedFromGameReason getRemovedFromGameReason() {
        de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.RemovedFromGameReason result = de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.RemovedFromGameReason.forNumber(removedFromGameReason_);
        return result == null ? de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.RemovedFromGameReason.removedOnRequest : result;
      }
      /**
       * <code>required .RemovedFromGameMessage.RemovedFromGameReason removedFromGameReason = 2;</code>
       * @param value The removedFromGameReason to set.
       * @return This builder for chaining.
       */
      public Builder setRemovedFromGameReason(de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.RemovedFromGameReason value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        removedFromGameReason_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>required .RemovedFromGameMessage.RemovedFromGameReason removedFromGameReason = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearRemovedFromGameReason() {
        bitField0_ = (bitField0_ & ~0x00000002);
        removedFromGameReason_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:RemovedFromGameMessage)
    }

    // @@protoc_insertion_point(class_scope:RemovedFromGameMessage)
    private static final de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<RemovedFromGameMessage>
        PARSER = new com.google.protobuf.AbstractParser<RemovedFromGameMessage>() {
      @java.lang.Override
      public RemovedFromGameMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<RemovedFromGameMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    int getGameId();

    /**
     * <code>required uint32 playerId = 2;</code>
     * @return Whether the playerId field is set.
     */
    boolean hasPlayerId();
    /**
     * <code>required uint32 playerId = 2;</code>
     * @return The playerId.
     */
    int getPlayerId();
  }
  /**
   * Protobuf type {@code KickPlayerRequestMessage}
   */
  public static final class KickPlayerRequestMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:KickPlayerRequestMessage)
      KickPlayerRequestMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use KickPlayerRequestMessage.newBuilder() to construct.
    private KickPlayerRequestMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private KickPlayerRequestMessage() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new KickPlayerRequestMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_KickPlayerRequestMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_KickPlayerRequestMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage.class, de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage.Builder.class);
    }

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_ = 0;
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    @java.lang.Override
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    @java.lang.Override
    public int getGameId() {
      return gameId_;
    }

    public static final int PLAYERID_FIELD_NUMBER = 2;
    private int playerId_ = 0;
    /**
     * <code>required uint32 playerId = 2;</code>
     * @return Whether the playerId field is set.
     */
    @java.lang.Override
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required uint32 playerId = 2;</code>
     * @return The playerId.
     */
    @java.lang.Override
    public int getPlayerId() {
      return playerId_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

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

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt32(2, playerId_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, playerId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage other = (de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage) obj;

      if (hasGameId() != other.hasGameId()) return false;
      if (hasGameId()) {
        if (getGameId()
            != other.getGameId()) return false;
      }
      if (hasPlayerId() != other.hasPlayerId()) return false;
      if (hasPlayerId()) {
        if (getPlayerId()
            != other.getPlayerId()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasGameId()) {
        hash = (37 * hash) + GAMEID_FIELD_NUMBER;
        hash = (53 * hash) + getGameId();
      }
      if (hasPlayerId()) {
        hash = (37 * hash) + PLAYERID_FIELD_NUMBER;
        hash = (53 * hash) + getPlayerId();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code KickPlayerRequestMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:KickPlayerRequestMessage)
        de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_KickPlayerRequestMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_KickPlayerRequestMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage.class, de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        gameId_ = 0;
        playerId_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_KickPlayerRequestMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage build() {
        de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage result = new de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.gameId_ = gameId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.playerId_ = playerId_;
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasGameId()) {
          return false;
        }
        if (!hasPlayerId()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                gameId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                playerId_ = input.readUInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return Whether the gameId field is set.
       */
      @java.lang.Override
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return The gameId.
       */
      @java.lang.Override
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @param value The gameId to set.
       * @return This builder for chaining.
       */
      public Builder setGameId(int value) {
        
        gameId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        onChanged();
        return this;
      }

      private int playerId_ ;
      /**
       * <code>required uint32 playerId = 2;</code>
       * @return Whether the playerId field is set.
       */
      @java.lang.Override
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       * @return The playerId.
       */
      @java.lang.Override
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       * @param value The playerId to set.
       * @return This builder for chaining.
       */
      public Builder setPlayerId(int value) {
        
        playerId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:KickPlayerRequestMessage)
    }

    // @@protoc_insertion_point(class_scope:KickPlayerRequestMessage)
    private static final de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<KickPlayerRequestMessage>
        PARSER = new com.google.protobuf.AbstractParser<KickPlayerRequestMessage>() {
      @java.lang.Override
      public KickPlayerRequestMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<KickPlayerRequestMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    int getGameId();
  }
  /**
   * Protobuf type {@code LeaveGameRequestMessage}
   */
  public static final class LeaveGameRequestMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:LeaveGameRequestMessage)
      LeaveGameRequestMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use LeaveGameRequestMessage.newBuilder() to construct.
    private LeaveGameRequestMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private LeaveGameRequestMessage() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new LeaveGameRequestMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_LeaveGameRequestMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_LeaveGameRequestMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage.class, de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage.Builder.class);
    }

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_ = 0;
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    @java.lang.Override
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    @java.lang.Override
    public int getGameId() {
      return gameId_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

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

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, gameId_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage other = (de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage) obj;

      if (hasGameId() != other.hasGameId()) return false;
      if (hasGameId()) {
        if (getGameId()
            != other.getGameId()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasGameId()) {
        hash = (37 * hash) + GAMEID_FIELD_NUMBER;
        hash = (53 * hash) + getGameId();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code LeaveGameRequestMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:LeaveGameRequestMessage)
        de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_LeaveGameRequestMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_LeaveGameRequestMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage.class, de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        gameId_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_LeaveGameRequestMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage build() {
        de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage result = new de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.gameId_ = gameId_;
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasGameId()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                gameId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return Whether the gameId field is set.
       */
      @java.lang.Override
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return The gameId.
       */
      @java.lang.Override
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @param value The gameId to set.
       * @return This builder for chaining.
       */
      public Builder setGameId(int value) {
        
        gameId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:LeaveGameRequestMessage)
    }

    // @@protoc_insertion_point(class_scope:LeaveGameRequestMessage)
    private static final de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<LeaveGameRequestMessage>
        PARSER = new com.google.protobuf.AbstractParser<LeaveGameRequestMessage>() {
      @java.lang.Override
      public LeaveGameRequestMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<LeaveGameRequestMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    int getGameId();

    /**
     * <code>required uint32 playerId = 2;</code>
     * @return Whether the playerId field is set.
     */
    boolean hasPlayerId();
    /**
     * <code>required uint32 playerId = 2;</code>
     * @return The playerId.
     */
    int getPlayerId();
  }
  /**
   * Protobuf type {@code InvitePlayerToGameMessage}
   */
  public static final class InvitePlayerToGameMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:InvitePlayerToGameMessage)
      InvitePlayerToGameMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use InvitePlayerToGameMessage.newBuilder() to construct.
    private InvitePlayerToGameMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private InvitePlayerToGameMessage() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new InvitePlayerToGameMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_InvitePlayerToGameMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_InvitePlayerToGameMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage.class, de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage.Builder.class);
    }

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_ = 0;
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    @java.lang.Override
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    @java.lang.Override
    public int getGameId() {
      return gameId_;
    }

    public static final int PLAYERID_FIELD_NUMBER = 2;
    private int playerId_ = 0;
    /**
     * <code>required uint32 playerId = 2;</code>
     * @return Whether the playerId field is set.
     */
    @java.lang.Override
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required uint32 playerId = 2;</code>
     * @return The playerId.
     */
    @java.lang.Override
    public int getPlayerId() {
      return playerId_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

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

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt32(2, playerId_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, playerId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage other = (de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage) obj;

      if (hasGameId() != other.hasGameId()) return false;
      if (hasGameId()) {
        if (getGameId()
            != other.getGameId()) return false;
      }
      if (hasPlayerId() != other.hasPlayerId()) return false;
      if (hasPlayerId()) {
        if (getPlayerId()
            != other.getPlayerId()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasGameId()) {
        hash = (37 * hash) + GAMEID_FIELD_NUMBER;
        hash = (53 * hash) + getGameId();
      }
      if (hasPlayerId()) {
        hash = (37 * hash) + PLAYERID_FIELD_NUMBER;
        hash = (53 * hash) + getPlayerId();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code InvitePlayerToGameMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:InvitePlayerToGameMessage)
        de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_InvitePlayerToGameMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_InvitePlayerToGameMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage.class, de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        gameId_ = 0;
        playerId_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_InvitePlayerToGameMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage build() {
        de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage result = new de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.gameId_ = gameId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.playerId_ = playerId_;
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasGameId()) {
          return false;
        }
        if (!hasPlayerId()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                gameId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                playerId_ = input.readUInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return Whether the gameId field is set.
       */
      @java.lang.Override
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return The gameId.
       */
      @java.lang.Override
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @param value The gameId to set.
       * @return This builder for chaining.
       */
      public Builder setGameId(int value) {
        
        gameId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        onChanged();
        return this;
      }

      private int playerId_ ;
      /**
       * <code>required uint32 playerId = 2;</code>
       * @return Whether the playerId field is set.
       */
      @java.lang.Override
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       * @return The playerId.
       */
      @java.lang.Override
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       * @param value The playerId to set.
       * @return This builder for chaining.
       */
      public Builder setPlayerId(int value) {
        
        playerId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:InvitePlayerToGameMessage)
    }

    // @@protoc_insertion_point(class_scope:InvitePlayerToGameMessage)
    private static final de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<InvitePlayerToGameMessage>
        PARSER = new com.google.protobuf.AbstractParser<InvitePlayerToGameMessage>() {
      @java.lang.Override
      public InvitePlayerToGameMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<InvitePlayerToGameMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    int getGameId();

    /**
     * <code>required uint32 playerIdWho = 2;</code>
     * @return Whether the playerIdWho field is set.
     */
    boolean hasPlayerIdWho();
    /**
     * <code>required uint32 playerIdWho = 2;</code>
     * @return The playerIdWho.
     */
    int getPlayerIdWho();

    /**
     * <code>required uint32 playerIdByWhom = 3;</code>
     * @return Whether the playerIdByWhom field is set.
     */
    boolean hasPlayerIdByWhom();
    /**
     * <code>required uint32 playerIdByWhom = 3;</code>
     * @return The playerIdByWhom.
     */
    int getPlayerIdByWhom();
  }
  /**
   * Protobuf type {@code InviteNotifyMessage}
   */
  public static final class InviteNotifyMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:InviteNotifyMessage)
      InviteNotifyMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use InviteNotifyMessage.newBuilder() to construct.
    private InviteNotifyMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private InviteNotifyMessage() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new InviteNotifyMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_InviteNotifyMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_InviteNotifyMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.InviteNotifyMessage.class, de.pokerth.protocol.ProtoBuf.InviteNotifyMessage.Builder.class);
    }

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_ = 0;
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    @java.lang.Override
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    @java.lang.Override
    public int getGameId() {
      return gameId_;
    }

    public static final int PLAYERIDWHO_FIELD_NUMBER = 2;
    private int playerIdWho_ = 0;
    /**
     * <code>required uint32 playerIdWho = 2;</code>
     * @return Whether the playerIdWho field is set.
     */
    @java.lang.Override
    public boolean hasPlayerIdWho() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required uint32 playerIdWho = 2;</code>
     * @return The playerIdWho.
     */
    @java.lang.Override
    public int getPlayerIdWho() {
      return playerIdWho_;
    }

    public static final int PLAYERIDBYWHOM_FIELD_NUMBER = 3;
    private int playerIdByWhom_ = 0;
    /**
     * <code>required uint32 playerIdByWhom = 3;</code>
     * @return Whether the playerIdByWhom field is set.
     */
    @java.lang.Override
    public boolean hasPlayerIdByWhom() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>required uint32 playerIdByWhom = 3;</code>
     * @return The playerIdByWhom.
     */
    @java.lang.Override
    public int getPlayerIdByWhom() {
      return playerIdByWhom_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerIdWho()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerIdByWhom()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt32(2, playerIdWho_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeUInt32(3, playerIdByWhom_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, playerIdWho_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, playerIdByWhom_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.InviteNotifyMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.InviteNotifyMessage other = (de.pokerth.protocol.ProtoBuf.InviteNotifyMessage) obj;

      if (hasGameId() != other.hasGameId()) return false;
      if (hasGameId()) {
        if (getGameId()
            != other.getGameId()) return false;
      }
      if (hasPlayerIdWho() != other.hasPlayerIdWho()) return false;
      if (hasPlayerIdWho()) {
        if (getPlayerIdWho()
            != other.getPlayerIdWho()) return false;
      }
      if (hasPlayerIdByWhom() != other.hasPlayerIdByWhom()) return false;
      if (hasPlayerIdByWhom()) {
        if (getPlayerIdByWhom()
            != other.getPlayerIdByWhom()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasGameId()) {
        hash = (37 * hash) + GAMEID_FIELD_NUMBER;
        hash = (53 * hash) + getGameId();
      }
      if (hasPlayerIdWho()) {
        hash = (37 * hash) + PLAYERIDWHO_FIELD_NUMBER;
        hash = (53 * hash) + getPlayerIdWho();
      }
      if (hasPlayerIdByWhom()) {
        hash = (37 * hash) + PLAYERIDBYWHOM_FIELD_NUMBER;
        hash = (53 * hash) + getPlayerIdByWhom();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.InviteNotifyMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.InviteNotifyMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.InviteNotifyMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.InviteNotifyMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.InviteNotifyMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.InviteNotifyMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.InviteNotifyMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.InviteNotifyMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.InviteNotifyMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.InviteNotifyMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.InviteNotifyMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.InviteNotifyMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.InviteNotifyMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code InviteNotifyMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:InviteNotifyMessage)
        de.pokerth.protocol.ProtoBuf.InviteNotifyMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_InviteNotifyMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_InviteNotifyMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.InviteNotifyMessage.class, de.pokerth.protocol.ProtoBuf.InviteNotifyMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.InviteNotifyMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        gameId_ = 0;
        playerIdWho_ = 0;
        playerIdByWhom_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_InviteNotifyMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.InviteNotifyMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.InviteNotifyMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.InviteNotifyMessage build() {
        de.pokerth.protocol.ProtoBuf.InviteNotifyMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.InviteNotifyMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.InviteNotifyMessage result = new de.pokerth.protocol.ProtoBuf.InviteNotifyMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.InviteNotifyMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.gameId_ = gameId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.playerIdWho_ = playerIdWho_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.playerIdByWhom_ = playerIdByWhom_;
          to_bitField0_ |= 0x00000004;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.InviteNotifyMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.InviteNotifyMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.InviteNotifyMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.InviteNotifyMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasPlayerIdWho()) {
          setPlayerIdWho(other.getPlayerIdWho());
        }
        if (other.hasPlayerIdByWhom()) {
          setPlayerIdByWhom(other.getPlayerIdByWhom());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasGameId()) {
          return false;
        }
        if (!hasPlayerIdWho()) {
          return false;
        }
        if (!hasPlayerIdByWhom()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                gameId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                playerIdWho_ = input.readUInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                playerIdByWhom_ = input.readUInt32();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return Whether the gameId field is set.
       */
      @java.lang.Override
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return The gameId.
       */
      @java.lang.Override
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @param value The gameId to set.
       * @return This builder for chaining.
       */
      public Builder setGameId(int value) {
        
        gameId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        onChanged();
        return this;
      }

      private int playerIdWho_ ;
      /**
       * <code>required uint32 playerIdWho = 2;</code>
       * @return Whether the playerIdWho field is set.
       */
      @java.lang.Override
      public boolean hasPlayerIdWho() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required uint32 playerIdWho = 2;</code>
       * @return The playerIdWho.
       */
      @java.lang.Override
      public int getPlayerIdWho() {
        return playerIdWho_;
      }
      /**
       * <code>required uint32 playerIdWho = 2;</code>
       * @param value The playerIdWho to set.
       * @return This builder for chaining.
       */
      public Builder setPlayerIdWho(int value) {
        
        playerIdWho_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 playerIdWho = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearPlayerIdWho() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerIdWho_ = 0;
        onChanged();
        return this;
      }

      private int playerIdByWhom_ ;
      /**
       * <code>required uint32 playerIdByWhom = 3;</code>
       * @return Whether the playerIdByWhom field is set.
       */
      @java.lang.Override
      public boolean hasPlayerIdByWhom() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>required uint32 playerIdByWhom = 3;</code>
       * @return The playerIdByWhom.
       */
      @java.lang.Override
      public int getPlayerIdByWhom() {
        return playerIdByWhom_;
      }
      /**
       * <code>required uint32 playerIdByWhom = 3;</code>
       * @param value The playerIdByWhom to set.
       * @return This builder for chaining.
       */
      public Builder setPlayerIdByWhom(int value) {
        
        playerIdByWhom_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 playerIdByWhom = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearPlayerIdByWhom() {
        bitField0_ = (bitField0_ & ~0x00000004);
        playerIdByWhom_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:InviteNotifyMessage)
    }

    // @@protoc_insertion_point(class_scope:InviteNotifyMessage)
    private static final de.pokerth.protocol.ProtoBuf.InviteNotifyMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.InviteNotifyMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.InviteNotifyMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<InviteNotifyMessage>
        PARSER = new com.google.protobuf.AbstractParser<InviteNotifyMessage>() {
      @java.lang.Override
      public InviteNotifyMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<InviteNotifyMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.InviteNotifyMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    int getGameId();

    /**
     * <code>required .RejectGameInvitationMessage.RejectGameInvReason myRejectReason = 2;</code>
     * @return Whether the myRejectReason field is set.
     */
    boolean hasMyRejectReason();
    /**
     * <code>required .RejectGameInvitationMessage.RejectGameInvReason myRejectReason = 2;</code>
     * @return The myRejectReason.
     */
    de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason getMyRejectReason();
  }
  /**
   * Protobuf type {@code RejectGameInvitationMessage}
   */
  public static final class RejectGameInvitationMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:RejectGameInvitationMessage)
      RejectGameInvitationMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use RejectGameInvitationMessage.newBuilder() to construct.
    private RejectGameInvitationMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private RejectGameInvitationMessage() {
      myRejectReason_ = 0;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new RejectGameInvitationMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_RejectGameInvitationMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_RejectGameInvitationMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.class, de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.Builder.class);
    }

    /**
     * Protobuf enum {@code RejectGameInvitationMessage.RejectGameInvReason}
     */
    public enum RejectGameInvReason
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>rejectReasonNo = 0;</code>
       */
      rejectReasonNo(0),
      /**
       * <code>rejectReasonBusy = 1;</code>
       */
      rejectReasonBusy(1),
      ;

      /**
       * <code>rejectReasonNo = 0;</code>
       */
      public static final int rejectReasonNo_VALUE = 0;
      /**
       * <code>rejectReasonBusy = 1;</code>
       */
      public static final int rejectReasonBusy_VALUE = 1;


      public final int getNumber() {
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static RejectGameInvReason valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static RejectGameInvReason forNumber(int value) {
        switch (value) {
          case 0: return rejectReasonNo;
          case 1: return rejectReasonBusy;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<RejectGameInvReason>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          RejectGameInvReason> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<RejectGameInvReason>() {
              public RejectGameInvReason findValueByNumber(int number) {
                return RejectGameInvReason.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.getDescriptor().getEnumTypes().get(0);
      }

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

      public static RejectGameInvReason 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 value;

      private RejectGameInvReason(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:RejectGameInvitationMessage.RejectGameInvReason)
    }

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_ = 0;
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    @java.lang.Override
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    @java.lang.Override
    public int getGameId() {
      return gameId_;
    }

    public static final int MYREJECTREASON_FIELD_NUMBER = 2;
    private int myRejectReason_ = 0;
    /**
     * <code>required .RejectGameInvitationMessage.RejectGameInvReason myRejectReason = 2;</code>
     * @return Whether the myRejectReason field is set.
     */
    @java.lang.Override public boolean hasMyRejectReason() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required .RejectGameInvitationMessage.RejectGameInvReason myRejectReason = 2;</code>
     * @return The myRejectReason.
     */
    @java.lang.Override public de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason getMyRejectReason() {
      de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason result = de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason.forNumber(myRejectReason_);
      return result == null ? de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason.rejectReasonNo : result;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

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

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeEnum(2, myRejectReason_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, myRejectReason_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage other = (de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage) obj;

      if (hasGameId() != other.hasGameId()) return false;
      if (hasGameId()) {
        if (getGameId()
            != other.getGameId()) return false;
      }
      if (hasMyRejectReason() != other.hasMyRejectReason()) return false;
      if (hasMyRejectReason()) {
        if (myRejectReason_ != other.myRejectReason_) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasGameId()) {
        hash = (37 * hash) + GAMEID_FIELD_NUMBER;
        hash = (53 * hash) + getGameId();
      }
      if (hasMyRejectReason()) {
        hash = (37 * hash) + MYREJECTREASON_FIELD_NUMBER;
        hash = (53 * hash) + myRejectReason_;
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code RejectGameInvitationMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:RejectGameInvitationMessage)
        de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_RejectGameInvitationMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_RejectGameInvitationMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.class, de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        gameId_ = 0;
        myRejectReason_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_RejectGameInvitationMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage build() {
        de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage result = new de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.gameId_ = gameId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.myRejectReason_ = myRejectReason_;
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasMyRejectReason()) {
          setMyRejectReason(other.getMyRejectReason());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasGameId()) {
          return false;
        }
        if (!hasMyRejectReason()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                gameId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                int tmpRaw = input.readEnum();
                de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason tmpValue =
                    de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(2, tmpRaw);
                } else {
                  myRejectReason_ = tmpRaw;
                  bitField0_ |= 0x00000002;
                }
                break;
              } // case 16
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return Whether the gameId field is set.
       */
      @java.lang.Override
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return The gameId.
       */
      @java.lang.Override
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @param value The gameId to set.
       * @return This builder for chaining.
       */
      public Builder setGameId(int value) {
        
        gameId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        onChanged();
        return this;
      }

      private int myRejectReason_ = 0;
      /**
       * <code>required .RejectGameInvitationMessage.RejectGameInvReason myRejectReason = 2;</code>
       * @return Whether the myRejectReason field is set.
       */
      @java.lang.Override public boolean hasMyRejectReason() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required .RejectGameInvitationMessage.RejectGameInvReason myRejectReason = 2;</code>
       * @return The myRejectReason.
       */
      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason getMyRejectReason() {
        de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason result = de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason.forNumber(myRejectReason_);
        return result == null ? de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason.rejectReasonNo : result;
      }
      /**
       * <code>required .RejectGameInvitationMessage.RejectGameInvReason myRejectReason = 2;</code>
       * @param value The myRejectReason to set.
       * @return This builder for chaining.
       */
      public Builder setMyRejectReason(de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        myRejectReason_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>required .RejectGameInvitationMessage.RejectGameInvReason myRejectReason = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearMyRejectReason() {
        bitField0_ = (bitField0_ & ~0x00000002);
        myRejectReason_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:RejectGameInvitationMessage)
    }

    // @@protoc_insertion_point(class_scope:RejectGameInvitationMessage)
    private static final de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<RejectGameInvitationMessage>
        PARSER = new com.google.protobuf.AbstractParser<RejectGameInvitationMessage>() {
      @java.lang.Override
      public RejectGameInvitationMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<RejectGameInvitationMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    int getGameId();

    /**
     * <code>required uint32 playerId = 2;</code>
     * @return Whether the playerId field is set.
     */
    boolean hasPlayerId();
    /**
     * <code>required uint32 playerId = 2;</code>
     * @return The playerId.
     */
    int getPlayerId();

    /**
     * <code>required .RejectGameInvitationMessage.RejectGameInvReason playerRejectReason = 3;</code>
     * @return Whether the playerRejectReason field is set.
     */
    boolean hasPlayerRejectReason();
    /**
     * <code>required .RejectGameInvitationMessage.RejectGameInvReason playerRejectReason = 3;</code>
     * @return The playerRejectReason.
     */
    de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason getPlayerRejectReason();
  }
  /**
   * Protobuf type {@code RejectInvNotifyMessage}
   */
  public static final class RejectInvNotifyMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:RejectInvNotifyMessage)
      RejectInvNotifyMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use RejectInvNotifyMessage.newBuilder() to construct.
    private RejectInvNotifyMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private RejectInvNotifyMessage() {
      playerRejectReason_ = 0;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new RejectInvNotifyMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_RejectInvNotifyMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_RejectInvNotifyMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage.class, de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage.Builder.class);
    }

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_ = 0;
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    @java.lang.Override
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    @java.lang.Override
    public int getGameId() {
      return gameId_;
    }

    public static final int PLAYERID_FIELD_NUMBER = 2;
    private int playerId_ = 0;
    /**
     * <code>required uint32 playerId = 2;</code>
     * @return Whether the playerId field is set.
     */
    @java.lang.Override
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required uint32 playerId = 2;</code>
     * @return The playerId.
     */
    @java.lang.Override
    public int getPlayerId() {
      return playerId_;
    }

    public static final int PLAYERREJECTREASON_FIELD_NUMBER = 3;
    private int playerRejectReason_ = 0;
    /**
     * <code>required .RejectGameInvitationMessage.RejectGameInvReason playerRejectReason = 3;</code>
     * @return Whether the playerRejectReason field is set.
     */
    @java.lang.Override public boolean hasPlayerRejectReason() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>required .RejectGameInvitationMessage.RejectGameInvReason playerRejectReason = 3;</code>
     * @return The playerRejectReason.
     */
    @java.lang.Override public de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason getPlayerRejectReason() {
      de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason result = de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason.forNumber(playerRejectReason_);
      return result == null ? de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason.rejectReasonNo : result;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerRejectReason()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt32(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeEnum(3, playerRejectReason_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, playerRejectReason_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage other = (de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage) obj;

      if (hasGameId() != other.hasGameId()) return false;
      if (hasGameId()) {
        if (getGameId()
            != other.getGameId()) return false;
      }
      if (hasPlayerId() != other.hasPlayerId()) return false;
      if (hasPlayerId()) {
        if (getPlayerId()
            != other.getPlayerId()) return false;
      }
      if (hasPlayerRejectReason() != other.hasPlayerRejectReason()) return false;
      if (hasPlayerRejectReason()) {
        if (playerRejectReason_ != other.playerRejectReason_) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasGameId()) {
        hash = (37 * hash) + GAMEID_FIELD_NUMBER;
        hash = (53 * hash) + getGameId();
      }
      if (hasPlayerId()) {
        hash = (37 * hash) + PLAYERID_FIELD_NUMBER;
        hash = (53 * hash) + getPlayerId();
      }
      if (hasPlayerRejectReason()) {
        hash = (37 * hash) + PLAYERREJECTREASON_FIELD_NUMBER;
        hash = (53 * hash) + playerRejectReason_;
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code RejectInvNotifyMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:RejectInvNotifyMessage)
        de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_RejectInvNotifyMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_RejectInvNotifyMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage.class, de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        gameId_ = 0;
        playerId_ = 0;
        playerRejectReason_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_RejectInvNotifyMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage build() {
        de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage result = new de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.gameId_ = gameId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.playerId_ = playerId_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.playerRejectReason_ = playerRejectReason_;
          to_bitField0_ |= 0x00000004;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasPlayerRejectReason()) {
          setPlayerRejectReason(other.getPlayerRejectReason());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasGameId()) {
          return false;
        }
        if (!hasPlayerId()) {
          return false;
        }
        if (!hasPlayerRejectReason()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                gameId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                playerId_ = input.readUInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                int tmpRaw = input.readEnum();
                de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason tmpValue =
                    de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(3, tmpRaw);
                } else {
                  playerRejectReason_ = tmpRaw;
                  bitField0_ |= 0x00000004;
                }
                break;
              } // case 24
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return Whether the gameId field is set.
       */
      @java.lang.Override
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return The gameId.
       */
      @java.lang.Override
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @param value The gameId to set.
       * @return This builder for chaining.
       */
      public Builder setGameId(int value) {
        
        gameId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        onChanged();
        return this;
      }

      private int playerId_ ;
      /**
       * <code>required uint32 playerId = 2;</code>
       * @return Whether the playerId field is set.
       */
      @java.lang.Override
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       * @return The playerId.
       */
      @java.lang.Override
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       * @param value The playerId to set.
       * @return This builder for chaining.
       */
      public Builder setPlayerId(int value) {
        
        playerId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private int playerRejectReason_ = 0;
      /**
       * <code>required .RejectGameInvitationMessage.RejectGameInvReason playerRejectReason = 3;</code>
       * @return Whether the playerRejectReason field is set.
       */
      @java.lang.Override public boolean hasPlayerRejectReason() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>required .RejectGameInvitationMessage.RejectGameInvReason playerRejectReason = 3;</code>
       * @return The playerRejectReason.
       */
      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason getPlayerRejectReason() {
        de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason result = de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason.forNumber(playerRejectReason_);
        return result == null ? de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason.rejectReasonNo : result;
      }
      /**
       * <code>required .RejectGameInvitationMessage.RejectGameInvReason playerRejectReason = 3;</code>
       * @param value The playerRejectReason to set.
       * @return This builder for chaining.
       */
      public Builder setPlayerRejectReason(de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        playerRejectReason_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>required .RejectGameInvitationMessage.RejectGameInvReason playerRejectReason = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearPlayerRejectReason() {
        bitField0_ = (bitField0_ & ~0x00000004);
        playerRejectReason_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:RejectInvNotifyMessage)
    }

    // @@protoc_insertion_point(class_scope:RejectInvNotifyMessage)
    private static final de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<RejectInvNotifyMessage>
        PARSER = new com.google.protobuf.AbstractParser<RejectInvNotifyMessage>() {
      @java.lang.Override
      public RejectInvNotifyMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<RejectInvNotifyMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    int getGameId();

    /**
     * <code>required .StartEventMessage.StartEventType startEventType = 2;</code>
     * @return Whether the startEventType field is set.
     */
    boolean hasStartEventType();
    /**
     * <code>required .StartEventMessage.StartEventType startEventType = 2;</code>
     * @return The startEventType.
     */
    de.pokerth.protocol.ProtoBuf.StartEventMessage.StartEventType getStartEventType();

    /**
     * <code>optional bool fillWithComputerPlayers = 3;</code>
     * @return Whether the fillWithComputerPlayers field is set.
     */
    boolean hasFillWithComputerPlayers();
    /**
     * <code>optional bool fillWithComputerPlayers = 3;</code>
     * @return The fillWithComputerPlayers.
     */
    boolean getFillWithComputerPlayers();
  }
  /**
   * Protobuf type {@code StartEventMessage}
   */
  public static final class StartEventMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:StartEventMessage)
      StartEventMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use StartEventMessage.newBuilder() to construct.
    private StartEventMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private StartEventMessage() {
      startEventType_ = 0;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new StartEventMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_StartEventMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_StartEventMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.StartEventMessage.class, de.pokerth.protocol.ProtoBuf.StartEventMessage.Builder.class);
    }

    /**
     * Protobuf enum {@code StartEventMessage.StartEventType}
     */
    public enum StartEventType
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>startEvent = 0;</code>
       */
      startEvent(0),
      /**
       * <code>rejoinEvent = 1;</code>
       */
      rejoinEvent(1),
      ;

      /**
       * <code>startEvent = 0;</code>
       */
      public static final int startEvent_VALUE = 0;
      /**
       * <code>rejoinEvent = 1;</code>
       */
      public static final int rejoinEvent_VALUE = 1;


      public final int getNumber() {
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static StartEventType valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static StartEventType forNumber(int value) {
        switch (value) {
          case 0: return startEvent;
          case 1: return rejoinEvent;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<StartEventType>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          StartEventType> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<StartEventType>() {
              public StartEventType findValueByNumber(int number) {
                return StartEventType.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.StartEventMessage.getDescriptor().getEnumTypes().get(0);
      }

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

      public static StartEventType 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 value;

      private StartEventType(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:StartEventMessage.StartEventType)
    }

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_ = 0;
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    @java.lang.Override
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    @java.lang.Override
    public int getGameId() {
      return gameId_;
    }

    public static final int STARTEVENTTYPE_FIELD_NUMBER = 2;
    private int startEventType_ = 0;
    /**
     * <code>required .StartEventMessage.StartEventType startEventType = 2;</code>
     * @return Whether the startEventType field is set.
     */
    @java.lang.Override public boolean hasStartEventType() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required .StartEventMessage.StartEventType startEventType = 2;</code>
     * @return The startEventType.
     */
    @java.lang.Override public de.pokerth.protocol.ProtoBuf.StartEventMessage.StartEventType getStartEventType() {
      de.pokerth.protocol.ProtoBuf.StartEventMessage.StartEventType result = de.pokerth.protocol.ProtoBuf.StartEventMessage.StartEventType.forNumber(startEventType_);
      return result == null ? de.pokerth.protocol.ProtoBuf.StartEventMessage.StartEventType.startEvent : result;
    }

    public static final int FILLWITHCOMPUTERPLAYERS_FIELD_NUMBER = 3;
    private boolean fillWithComputerPlayers_ = false;
    /**
     * <code>optional bool fillWithComputerPlayers = 3;</code>
     * @return Whether the fillWithComputerPlayers field is set.
     */
    @java.lang.Override
    public boolean hasFillWithComputerPlayers() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional bool fillWithComputerPlayers = 3;</code>
     * @return The fillWithComputerPlayers.
     */
    @java.lang.Override
    public boolean getFillWithComputerPlayers() {
      return fillWithComputerPlayers_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

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

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeEnum(2, startEventType_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeBool(3, fillWithComputerPlayers_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, startEventType_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, fillWithComputerPlayers_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.StartEventMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.StartEventMessage other = (de.pokerth.protocol.ProtoBuf.StartEventMessage) obj;

      if (hasGameId() != other.hasGameId()) return false;
      if (hasGameId()) {
        if (getGameId()
            != other.getGameId()) return false;
      }
      if (hasStartEventType() != other.hasStartEventType()) return false;
      if (hasStartEventType()) {
        if (startEventType_ != other.startEventType_) return false;
      }
      if (hasFillWithComputerPlayers() != other.hasFillWithComputerPlayers()) return false;
      if (hasFillWithComputerPlayers()) {
        if (getFillWithComputerPlayers()
            != other.getFillWithComputerPlayers()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasGameId()) {
        hash = (37 * hash) + GAMEID_FIELD_NUMBER;
        hash = (53 * hash) + getGameId();
      }
      if (hasStartEventType()) {
        hash = (37 * hash) + STARTEVENTTYPE_FIELD_NUMBER;
        hash = (53 * hash) + startEventType_;
      }
      if (hasFillWithComputerPlayers()) {
        hash = (37 * hash) + FILLWITHCOMPUTERPLAYERS_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getFillWithComputerPlayers());
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.StartEventMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.StartEventMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.StartEventMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.StartEventMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.StartEventMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.StartEventMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.StartEventMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.StartEventMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.StartEventMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.StartEventMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.StartEventMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.StartEventMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.StartEventMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code StartEventMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:StartEventMessage)
        de.pokerth.protocol.ProtoBuf.StartEventMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_StartEventMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_StartEventMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.StartEventMessage.class, de.pokerth.protocol.ProtoBuf.StartEventMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.StartEventMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        gameId_ = 0;
        startEventType_ = 0;
        fillWithComputerPlayers_ = false;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_StartEventMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.StartEventMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.StartEventMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.StartEventMessage build() {
        de.pokerth.protocol.ProtoBuf.StartEventMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.StartEventMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.StartEventMessage result = new de.pokerth.protocol.ProtoBuf.StartEventMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.StartEventMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.gameId_ = gameId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.startEventType_ = startEventType_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.fillWithComputerPlayers_ = fillWithComputerPlayers_;
          to_bitField0_ |= 0x00000004;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.StartEventMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.StartEventMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.StartEventMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.StartEventMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasStartEventType()) {
          setStartEventType(other.getStartEventType());
        }
        if (other.hasFillWithComputerPlayers()) {
          setFillWithComputerPlayers(other.getFillWithComputerPlayers());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasGameId()) {
          return false;
        }
        if (!hasStartEventType()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                gameId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                int tmpRaw = input.readEnum();
                de.pokerth.protocol.ProtoBuf.StartEventMessage.StartEventType tmpValue =
                    de.pokerth.protocol.ProtoBuf.StartEventMessage.StartEventType.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(2, tmpRaw);
                } else {
                  startEventType_ = tmpRaw;
                  bitField0_ |= 0x00000002;
                }
                break;
              } // case 16
              case 24: {
                fillWithComputerPlayers_ = input.readBool();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return Whether the gameId field is set.
       */
      @java.lang.Override
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return The gameId.
       */
      @java.lang.Override
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @param value The gameId to set.
       * @return This builder for chaining.
       */
      public Builder setGameId(int value) {
        
        gameId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        onChanged();
        return this;
      }

      private int startEventType_ = 0;
      /**
       * <code>required .StartEventMessage.StartEventType startEventType = 2;</code>
       * @return Whether the startEventType field is set.
       */
      @java.lang.Override public boolean hasStartEventType() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required .StartEventMessage.StartEventType startEventType = 2;</code>
       * @return The startEventType.
       */
      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.StartEventMessage.StartEventType getStartEventType() {
        de.pokerth.protocol.ProtoBuf.StartEventMessage.StartEventType result = de.pokerth.protocol.ProtoBuf.StartEventMessage.StartEventType.forNumber(startEventType_);
        return result == null ? de.pokerth.protocol.ProtoBuf.StartEventMessage.StartEventType.startEvent : result;
      }
      /**
       * <code>required .StartEventMessage.StartEventType startEventType = 2;</code>
       * @param value The startEventType to set.
       * @return This builder for chaining.
       */
      public Builder setStartEventType(de.pokerth.protocol.ProtoBuf.StartEventMessage.StartEventType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        startEventType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>required .StartEventMessage.StartEventType startEventType = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearStartEventType() {
        bitField0_ = (bitField0_ & ~0x00000002);
        startEventType_ = 0;
        onChanged();
        return this;
      }

      private boolean fillWithComputerPlayers_ ;
      /**
       * <code>optional bool fillWithComputerPlayers = 3;</code>
       * @return Whether the fillWithComputerPlayers field is set.
       */
      @java.lang.Override
      public boolean hasFillWithComputerPlayers() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>optional bool fillWithComputerPlayers = 3;</code>
       * @return The fillWithComputerPlayers.
       */
      @java.lang.Override
      public boolean getFillWithComputerPlayers() {
        return fillWithComputerPlayers_;
      }
      /**
       * <code>optional bool fillWithComputerPlayers = 3;</code>
       * @param value The fillWithComputerPlayers to set.
       * @return This builder for chaining.
       */
      public Builder setFillWithComputerPlayers(boolean value) {
        
        fillWithComputerPlayers_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool fillWithComputerPlayers = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearFillWithComputerPlayers() {
        bitField0_ = (bitField0_ & ~0x00000004);
        fillWithComputerPlayers_ = false;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:StartEventMessage)
    }

    // @@protoc_insertion_point(class_scope:StartEventMessage)
    private static final de.pokerth.protocol.ProtoBuf.StartEventMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.StartEventMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.StartEventMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<StartEventMessage>
        PARSER = new com.google.protobuf.AbstractParser<StartEventMessage>() {
      @java.lang.Override
      public StartEventMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<StartEventMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.StartEventMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    int getGameId();
  }
  /**
   * Protobuf type {@code StartEventAckMessage}
   */
  public static final class StartEventAckMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:StartEventAckMessage)
      StartEventAckMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use StartEventAckMessage.newBuilder() to construct.
    private StartEventAckMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private StartEventAckMessage() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new StartEventAckMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_StartEventAckMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_StartEventAckMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.StartEventAckMessage.class, de.pokerth.protocol.ProtoBuf.StartEventAckMessage.Builder.class);
    }

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_ = 0;
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    @java.lang.Override
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    @java.lang.Override
    public int getGameId() {
      return gameId_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

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

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, gameId_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.StartEventAckMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.StartEventAckMessage other = (de.pokerth.protocol.ProtoBuf.StartEventAckMessage) obj;

      if (hasGameId() != other.hasGameId()) return false;
      if (hasGameId()) {
        if (getGameId()
            != other.getGameId()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasGameId()) {
        hash = (37 * hash) + GAMEID_FIELD_NUMBER;
        hash = (53 * hash) + getGameId();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.StartEventAckMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.StartEventAckMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.StartEventAckMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.StartEventAckMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.StartEventAckMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.StartEventAckMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.StartEventAckMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.StartEventAckMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.StartEventAckMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.StartEventAckMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.StartEventAckMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.StartEventAckMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.StartEventAckMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code StartEventAckMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:StartEventAckMessage)
        de.pokerth.protocol.ProtoBuf.StartEventAckMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_StartEventAckMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_StartEventAckMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.StartEventAckMessage.class, de.pokerth.protocol.ProtoBuf.StartEventAckMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.StartEventAckMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        gameId_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_StartEventAckMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.StartEventAckMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.StartEventAckMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.StartEventAckMessage build() {
        de.pokerth.protocol.ProtoBuf.StartEventAckMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.StartEventAckMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.StartEventAckMessage result = new de.pokerth.protocol.ProtoBuf.StartEventAckMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.StartEventAckMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.gameId_ = gameId_;
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.StartEventAckMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.StartEventAckMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.StartEventAckMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.StartEventAckMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasGameId()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                gameId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return Whether the gameId field is set.
       */
      @java.lang.Override
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return The gameId.
       */
      @java.lang.Override
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @param value The gameId to set.
       * @return This builder for chaining.
       */
      public Builder setGameId(int value) {
        
        gameId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:StartEventAckMessage)
    }

    // @@protoc_insertion_point(class_scope:StartEventAckMessage)
    private static final de.pokerth.protocol.ProtoBuf.StartEventAckMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.StartEventAckMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.StartEventAckMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<StartEventAckMessage>
        PARSER = new com.google.protobuf.AbstractParser<StartEventAckMessage>() {
      @java.lang.Override
      public StartEventAckMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<StartEventAckMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.StartEventAckMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    int getGameId();

    /**
     * <code>required uint32 startDealerPlayerId = 2;</code>
     * @return Whether the startDealerPlayerId field is set.
     */
    boolean hasStartDealerPlayerId();
    /**
     * <code>required uint32 startDealerPlayerId = 2;</code>
     * @return The startDealerPlayerId.
     */
    int getStartDealerPlayerId();

    /**
     * <code>repeated uint32 playerSeats = 3 [packed = true];</code>
     * @return A list containing the playerSeats.
     */
    java.util.List<java.lang.Integer> getPlayerSeatsList();
    /**
     * <code>repeated uint32 playerSeats = 3 [packed = true];</code>
     * @return The count of playerSeats.
     */
    int getPlayerSeatsCount();
    /**
     * <code>repeated uint32 playerSeats = 3 [packed = true];</code>
     * @param index The index of the element to return.
     * @return The playerSeats at the given index.
     */
    int getPlayerSeats(int index);
  }
  /**
   * Protobuf type {@code GameStartInitialMessage}
   */
  public static final class GameStartInitialMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:GameStartInitialMessage)
      GameStartInitialMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use GameStartInitialMessage.newBuilder() to construct.
    private GameStartInitialMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private GameStartInitialMessage() {
      playerSeats_ = emptyIntList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new GameStartInitialMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_GameStartInitialMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_GameStartInitialMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.GameStartInitialMessage.class, de.pokerth.protocol.ProtoBuf.GameStartInitialMessage.Builder.class);
    }

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_ = 0;
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    @java.lang.Override
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    @java.lang.Override
    public int getGameId() {
      return gameId_;
    }

    public static final int STARTDEALERPLAYERID_FIELD_NUMBER = 2;
    private int startDealerPlayerId_ = 0;
    /**
     * <code>required uint32 startDealerPlayerId = 2;</code>
     * @return Whether the startDealerPlayerId field is set.
     */
    @java.lang.Override
    public boolean hasStartDealerPlayerId() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required uint32 startDealerPlayerId = 2;</code>
     * @return The startDealerPlayerId.
     */
    @java.lang.Override
    public int getStartDealerPlayerId() {
      return startDealerPlayerId_;
    }

    public static final int PLAYERSEATS_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private com.google.protobuf.Internal.IntList playerSeats_;
    /**
     * <code>repeated uint32 playerSeats = 3 [packed = true];</code>
     * @return A list containing the playerSeats.
     */
    @java.lang.Override
    public java.util.List<java.lang.Integer>
        getPlayerSeatsList() {
      return playerSeats_;
    }
    /**
     * <code>repeated uint32 playerSeats = 3 [packed = true];</code>
     * @return The count of playerSeats.
     */
    public int getPlayerSeatsCount() {
      return playerSeats_.size();
    }
    /**
     * <code>repeated uint32 playerSeats = 3 [packed = true];</code>
     * @param index The index of the element to return.
     * @return The playerSeats at the given index.
     */
    public int getPlayerSeats(int index) {
      return playerSeats_.getInt(index);
    }
    private int playerSeatsMemoizedSerializedSize = -1;

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

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

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt32(2, startDealerPlayerId_);
      }
      if (getPlayerSeatsList().size() > 0) {
        output.writeUInt32NoTag(26);
        output.writeUInt32NoTag(playerSeatsMemoizedSerializedSize);
      }
      for (int i = 0; i < playerSeats_.size(); i++) {
        output.writeUInt32NoTag(playerSeats_.getInt(i));
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, startDealerPlayerId_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < playerSeats_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeUInt32SizeNoTag(playerSeats_.getInt(i));
        }
        size += dataSize;
        if (!getPlayerSeatsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        playerSeatsMemoizedSerializedSize = dataSize;
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.GameStartInitialMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.GameStartInitialMessage other = (de.pokerth.protocol.ProtoBuf.GameStartInitialMessage) obj;

      if (hasGameId() != other.hasGameId()) return false;
      if (hasGameId()) {
        if (getGameId()
            != other.getGameId()) return false;
      }
      if (hasStartDealerPlayerId() != other.hasStartDealerPlayerId()) return false;
      if (hasStartDealerPlayerId()) {
        if (getStartDealerPlayerId()
            != other.getStartDealerPlayerId()) return false;
      }
      if (!getPlayerSeatsList()
          .equals(other.getPlayerSeatsList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasGameId()) {
        hash = (37 * hash) + GAMEID_FIELD_NUMBER;
        hash = (53 * hash) + getGameId();
      }
      if (hasStartDealerPlayerId()) {
        hash = (37 * hash) + STARTDEALERPLAYERID_FIELD_NUMBER;
        hash = (53 * hash) + getStartDealerPlayerId();
      }
      if (getPlayerSeatsCount() > 0) {
        hash = (37 * hash) + PLAYERSEATS_FIELD_NUMBER;
        hash = (53 * hash) + getPlayerSeatsList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.GameStartInitialMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GameStartInitialMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameStartInitialMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GameStartInitialMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameStartInitialMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GameStartInitialMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameStartInitialMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameStartInitialMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameStartInitialMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameStartInitialMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameStartInitialMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameStartInitialMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.GameStartInitialMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code GameStartInitialMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:GameStartInitialMessage)
        de.pokerth.protocol.ProtoBuf.GameStartInitialMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_GameStartInitialMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_GameStartInitialMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.GameStartInitialMessage.class, de.pokerth.protocol.ProtoBuf.GameStartInitialMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.GameStartInitialMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        gameId_ = 0;
        startDealerPlayerId_ = 0;
        playerSeats_ = emptyIntList();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_GameStartInitialMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.GameStartInitialMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.GameStartInitialMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.GameStartInitialMessage build() {
        de.pokerth.protocol.ProtoBuf.GameStartInitialMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.GameStartInitialMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.GameStartInitialMessage result = new de.pokerth.protocol.ProtoBuf.GameStartInitialMessage(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(de.pokerth.protocol.ProtoBuf.GameStartInitialMessage result) {
        if (((bitField0_ & 0x00000004) != 0)) {
          playerSeats_.makeImmutable();
          bitField0_ = (bitField0_ & ~0x00000004);
        }
        result.playerSeats_ = playerSeats_;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.GameStartInitialMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.gameId_ = gameId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.startDealerPlayerId_ = startDealerPlayerId_;
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.GameStartInitialMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.GameStartInitialMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.GameStartInitialMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.GameStartInitialMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasStartDealerPlayerId()) {
          setStartDealerPlayerId(other.getStartDealerPlayerId());
        }
        if (!other.playerSeats_.isEmpty()) {
          if (playerSeats_.isEmpty()) {
            playerSeats_ = other.playerSeats_;
            bitField0_ = (bitField0_ & ~0x00000004);
          } else {
            ensurePlayerSeatsIsMutable();
            playerSeats_.addAll(other.playerSeats_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasGameId()) {
          return false;
        }
        if (!hasStartDealerPlayerId()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                gameId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                startDealerPlayerId_ = input.readUInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                int v = input.readUInt32();
                ensurePlayerSeatsIsMutable();
                playerSeats_.addInt(v);
                break;
              } // case 24
              case 26: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                ensurePlayerSeatsIsMutable();
                while (input.getBytesUntilLimit() > 0) {
                  playerSeats_.addInt(input.readUInt32());
                }
                input.popLimit(limit);
                break;
              } // case 26
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return Whether the gameId field is set.
       */
      @java.lang.Override
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return The gameId.
       */
      @java.lang.Override
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @param value The gameId to set.
       * @return This builder for chaining.
       */
      public Builder setGameId(int value) {
        
        gameId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        onChanged();
        return this;
      }

      private int startDealerPlayerId_ ;
      /**
       * <code>required uint32 startDealerPlayerId = 2;</code>
       * @return Whether the startDealerPlayerId field is set.
       */
      @java.lang.Override
      public boolean hasStartDealerPlayerId() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required uint32 startDealerPlayerId = 2;</code>
       * @return The startDealerPlayerId.
       */
      @java.lang.Override
      public int getStartDealerPlayerId() {
        return startDealerPlayerId_;
      }
      /**
       * <code>required uint32 startDealerPlayerId = 2;</code>
       * @param value The startDealerPlayerId to set.
       * @return This builder for chaining.
       */
      public Builder setStartDealerPlayerId(int value) {
        
        startDealerPlayerId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 startDealerPlayerId = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearStartDealerPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        startDealerPlayerId_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.IntList playerSeats_ = emptyIntList();
      private void ensurePlayerSeatsIsMutable() {
        if (!((bitField0_ & 0x00000004) != 0)) {
          playerSeats_ = mutableCopy(playerSeats_);
          bitField0_ |= 0x00000004;
        }
      }
      /**
       * <code>repeated uint32 playerSeats = 3 [packed = true];</code>
       * @return A list containing the playerSeats.
       */
      public java.util.List<java.lang.Integer>
          getPlayerSeatsList() {
        return ((bitField0_ & 0x00000004) != 0) ?
                 java.util.Collections.unmodifiableList(playerSeats_) : playerSeats_;
      }
      /**
       * <code>repeated uint32 playerSeats = 3 [packed = true];</code>
       * @return The count of playerSeats.
       */
      public int getPlayerSeatsCount() {
        return playerSeats_.size();
      }
      /**
       * <code>repeated uint32 playerSeats = 3 [packed = true];</code>
       * @param index The index of the element to return.
       * @return The playerSeats at the given index.
       */
      public int getPlayerSeats(int index) {
        return playerSeats_.getInt(index);
      }
      /**
       * <code>repeated uint32 playerSeats = 3 [packed = true];</code>
       * @param index The index to set the value at.
       * @param value The playerSeats to set.
       * @return This builder for chaining.
       */
      public Builder setPlayerSeats(
          int index, int value) {
        
        ensurePlayerSeatsIsMutable();
        playerSeats_.setInt(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated uint32 playerSeats = 3 [packed = true];</code>
       * @param value The playerSeats to add.
       * @return This builder for chaining.
       */
      public Builder addPlayerSeats(int value) {
        
        ensurePlayerSeatsIsMutable();
        playerSeats_.addInt(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated uint32 playerSeats = 3 [packed = true];</code>
       * @param values The playerSeats to add.
       * @return This builder for chaining.
       */
      public Builder addAllPlayerSeats(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensurePlayerSeatsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, playerSeats_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated uint32 playerSeats = 3 [packed = true];</code>
       * @return This builder for chaining.
       */
      public Builder clearPlayerSeats() {
        playerSeats_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:GameStartInitialMessage)
    }

    // @@protoc_insertion_point(class_scope:GameStartInitialMessage)
    private static final de.pokerth.protocol.ProtoBuf.GameStartInitialMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.GameStartInitialMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.GameStartInitialMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<GameStartInitialMessage>
        PARSER = new com.google.protobuf.AbstractParser<GameStartInitialMessage>() {
      @java.lang.Override
      public GameStartInitialMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<GameStartInitialMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.GameStartInitialMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    int getGameId();

    /**
     * <code>required uint32 startDealerPlayerId = 2;</code>
     * @return Whether the startDealerPlayerId field is set.
     */
    boolean hasStartDealerPlayerId();
    /**
     * <code>required uint32 startDealerPlayerId = 2;</code>
     * @return The startDealerPlayerId.
     */
    int getStartDealerPlayerId();

    /**
     * <code>required uint32 handNum = 3;</code>
     * @return Whether the handNum field is set.
     */
    boolean hasHandNum();
    /**
     * <code>required uint32 handNum = 3;</code>
     * @return The handNum.
     */
    int getHandNum();

    /**
     * <code>repeated .GameStartRejoinMessage.RejoinPlayerData rejoinPlayerData = 4;</code>
     */
    java.util.List<de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData> 
        getRejoinPlayerDataList();
    /**
     * <code>repeated .GameStartRejoinMessage.RejoinPlayerData rejoinPlayerData = 4;</code>
     */
    de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData getRejoinPlayerData(int index);
    /**
     * <code>repeated .GameStartRejoinMessage.RejoinPlayerData rejoinPlayerData = 4;</code>
     */
    int getRejoinPlayerDataCount();
    /**
     * <code>repeated .GameStartRejoinMessage.RejoinPlayerData rejoinPlayerData = 4;</code>
     */
    java.util.List<? extends de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerDataOrBuilder> 
        getRejoinPlayerDataOrBuilderList();
    /**
     * <code>repeated .GameStartRejoinMessage.RejoinPlayerData rejoinPlayerData = 4;</code>
     */
    de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerDataOrBuilder getRejoinPlayerDataOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code GameStartRejoinMessage}
   */
  public static final class GameStartRejoinMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:GameStartRejoinMessage)
      GameStartRejoinMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use GameStartRejoinMessage.newBuilder() to construct.
    private GameStartRejoinMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private GameStartRejoinMessage() {
      rejoinPlayerData_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new GameStartRejoinMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_GameStartRejoinMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_GameStartRejoinMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.class, de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.Builder.class);
    }

    public interface RejoinPlayerDataOrBuilder extends
        // @@protoc_insertion_point(interface_extends:GameStartRejoinMessage.RejoinPlayerData)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>required uint32 playerId = 1;</code>
       * @return Whether the playerId field is set.
       */
      boolean hasPlayerId();
      /**
       * <code>required uint32 playerId = 1;</code>
       * @return The playerId.
       */
      int getPlayerId();

      /**
       * <code>required uint32 playerMoney = 2;</code>
       * @return Whether the playerMoney field is set.
       */
      boolean hasPlayerMoney();
      /**
       * <code>required uint32 playerMoney = 2;</code>
       * @return The playerMoney.
       */
      int getPlayerMoney();
    }
    /**
     * Protobuf type {@code GameStartRejoinMessage.RejoinPlayerData}
     */
    public static final class RejoinPlayerData extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:GameStartRejoinMessage.RejoinPlayerData)
        RejoinPlayerDataOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use RejoinPlayerData.newBuilder() to construct.
      private RejoinPlayerData(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private RejoinPlayerData() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new RejoinPlayerData();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_GameStartRejoinMessage_RejoinPlayerData_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_GameStartRejoinMessage_RejoinPlayerData_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData.class, de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData.Builder.class);
      }

      private int bitField0_;
      public static final int PLAYERID_FIELD_NUMBER = 1;
      private int playerId_ = 0;
      /**
       * <code>required uint32 playerId = 1;</code>
       * @return Whether the playerId field is set.
       */
      @java.lang.Override
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 playerId = 1;</code>
       * @return The playerId.
       */
      @java.lang.Override
      public int getPlayerId() {
        return playerId_;
      }

      public static final int PLAYERMONEY_FIELD_NUMBER = 2;
      private int playerMoney_ = 0;
      /**
       * <code>required uint32 playerMoney = 2;</code>
       * @return Whether the playerMoney field is set.
       */
      @java.lang.Override
      public boolean hasPlayerMoney() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required uint32 playerMoney = 2;</code>
       * @return The playerMoney.
       */
      @java.lang.Override
      public int getPlayerMoney() {
        return playerMoney_;
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

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

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (((bitField0_ & 0x00000001) != 0)) {
          output.writeUInt32(1, playerId_);
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          output.writeUInt32(2, playerMoney_);
        }
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(1, playerId_);
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(2, playerMoney_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData)) {
          return super.equals(obj);
        }
        de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData other = (de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData) obj;

        if (hasPlayerId() != other.hasPlayerId()) return false;
        if (hasPlayerId()) {
          if (getPlayerId()
              != other.getPlayerId()) return false;
        }
        if (hasPlayerMoney() != other.hasPlayerMoney()) return false;
        if (hasPlayerMoney()) {
          if (getPlayerMoney()
              != other.getPlayerMoney()) return false;
        }
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasPlayerId()) {
          hash = (37 * hash) + PLAYERID_FIELD_NUMBER;
          hash = (53 * hash) + getPlayerId();
        }
        if (hasPlayerMoney()) {
          hash = (37 * hash) + PLAYERMONEY_FIELD_NUMBER;
          hash = (53 * hash) + getPlayerMoney();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code GameStartRejoinMessage.RejoinPlayerData}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:GameStartRejoinMessage.RejoinPlayerData)
          de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerDataOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return de.pokerth.protocol.ProtoBuf.internal_static_GameStartRejoinMessage_RejoinPlayerData_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return de.pokerth.protocol.ProtoBuf.internal_static_GameStartRejoinMessage_RejoinPlayerData_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData.class, de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData.Builder.class);
        }

        // Construct using de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          playerId_ = 0;
          playerMoney_ = 0;
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return de.pokerth.protocol.ProtoBuf.internal_static_GameStartRejoinMessage_RejoinPlayerData_descriptor;
        }

        @java.lang.Override
        public de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData getDefaultInstanceForType() {
          return de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData.getDefaultInstance();
        }

        @java.lang.Override
        public de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData build() {
          de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData buildPartial() {
          de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData result = new de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData(this);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }

        private void buildPartial0(de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData result) {
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.playerId_ = playerId_;
            to_bitField0_ |= 0x00000001;
          }
          if (((from_bitField0_ & 0x00000002) != 0)) {
            result.playerMoney_ = playerMoney_;
            to_bitField0_ |= 0x00000002;
          }
          result.bitField0_ |= to_bitField0_;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData) {
            return mergeFrom((de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData other) {
          if (other == de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData.getDefaultInstance()) return this;
          if (other.hasPlayerId()) {
            setPlayerId(other.getPlayerId());
          }
          if (other.hasPlayerMoney()) {
            setPlayerMoney(other.getPlayerMoney());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          if (!hasPlayerId()) {
            return false;
          }
          if (!hasPlayerMoney()) {
            return false;
          }
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 8: {
                  playerId_ = input.readUInt32();
                  bitField0_ |= 0x00000001;
                  break;
                } // case 8
                case 16: {
                  playerMoney_ = input.readUInt32();
                  bitField0_ |= 0x00000002;
                  break;
                } // case 16
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        private int bitField0_;

        private int playerId_ ;
        /**
         * <code>required uint32 playerId = 1;</code>
         * @return Whether the playerId field is set.
         */
        @java.lang.Override
        public boolean hasPlayerId() {
          return ((bitField0_ & 0x00000001) != 0);
        }
        /**
         * <code>required uint32 playerId = 1;</code>
         * @return The playerId.
         */
        @java.lang.Override
        public int getPlayerId() {
          return playerId_;
        }
        /**
         * <code>required uint32 playerId = 1;</code>
         * @param value The playerId to set.
         * @return This builder for chaining.
         */
        public Builder setPlayerId(int value) {
          
          playerId_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <code>required uint32 playerId = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearPlayerId() {
          bitField0_ = (bitField0_ & ~0x00000001);
          playerId_ = 0;
          onChanged();
          return this;
        }

        private int playerMoney_ ;
        /**
         * <code>required uint32 playerMoney = 2;</code>
         * @return Whether the playerMoney field is set.
         */
        @java.lang.Override
        public boolean hasPlayerMoney() {
          return ((bitField0_ & 0x00000002) != 0);
        }
        /**
         * <code>required uint32 playerMoney = 2;</code>
         * @return The playerMoney.
         */
        @java.lang.Override
        public int getPlayerMoney() {
          return playerMoney_;
        }
        /**
         * <code>required uint32 playerMoney = 2;</code>
         * @param value The playerMoney to set.
         * @return This builder for chaining.
         */
        public Builder setPlayerMoney(int value) {
          
          playerMoney_ = value;
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        /**
         * <code>required uint32 playerMoney = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearPlayerMoney() {
          bitField0_ = (bitField0_ & ~0x00000002);
          playerMoney_ = 0;
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:GameStartRejoinMessage.RejoinPlayerData)
      }

      // @@protoc_insertion_point(class_scope:GameStartRejoinMessage.RejoinPlayerData)
      private static final de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData();
      }

      public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      @java.lang.Deprecated public static final com.google.protobuf.Parser<RejoinPlayerData>
          PARSER = new com.google.protobuf.AbstractParser<RejoinPlayerData>() {
        @java.lang.Override
        public RejoinPlayerData parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

      public static com.google.protobuf.Parser<RejoinPlayerData> parser() {
        return PARSER;
      }

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

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_ = 0;
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    @java.lang.Override
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    @java.lang.Override
    public int getGameId() {
      return gameId_;
    }

    public static final int STARTDEALERPLAYERID_FIELD_NUMBER = 2;
    private int startDealerPlayerId_ = 0;
    /**
     * <code>required uint32 startDealerPlayerId = 2;</code>
     * @return Whether the startDealerPlayerId field is set.
     */
    @java.lang.Override
    public boolean hasStartDealerPlayerId() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required uint32 startDealerPlayerId = 2;</code>
     * @return The startDealerPlayerId.
     */
    @java.lang.Override
    public int getStartDealerPlayerId() {
      return startDealerPlayerId_;
    }

    public static final int HANDNUM_FIELD_NUMBER = 3;
    private int handNum_ = 0;
    /**
     * <code>required uint32 handNum = 3;</code>
     * @return Whether the handNum field is set.
     */
    @java.lang.Override
    public boolean hasHandNum() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>required uint32 handNum = 3;</code>
     * @return The handNum.
     */
    @java.lang.Override
    public int getHandNum() {
      return handNum_;
    }

    public static final int REJOINPLAYERDATA_FIELD_NUMBER = 4;
    @SuppressWarnings("serial")
    private java.util.List<de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData> rejoinPlayerData_;
    /**
     * <code>repeated .GameStartRejoinMessage.RejoinPlayerData rejoinPlayerData = 4;</code>
     */
    @java.lang.Override
    public java.util.List<de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData> getRejoinPlayerDataList() {
      return rejoinPlayerData_;
    }
    /**
     * <code>repeated .GameStartRejoinMessage.RejoinPlayerData rejoinPlayerData = 4;</code>
     */
    @java.lang.Override
    public java.util.List<? extends de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerDataOrBuilder> 
        getRejoinPlayerDataOrBuilderList() {
      return rejoinPlayerData_;
    }
    /**
     * <code>repeated .GameStartRejoinMessage.RejoinPlayerData rejoinPlayerData = 4;</code>
     */
    @java.lang.Override
    public int getRejoinPlayerDataCount() {
      return rejoinPlayerData_.size();
    }
    /**
     * <code>repeated .GameStartRejoinMessage.RejoinPlayerData rejoinPlayerData = 4;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData getRejoinPlayerData(int index) {
      return rejoinPlayerData_.get(index);
    }
    /**
     * <code>repeated .GameStartRejoinMessage.RejoinPlayerData rejoinPlayerData = 4;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerDataOrBuilder getRejoinPlayerDataOrBuilder(
        int index) {
      return rejoinPlayerData_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasStartDealerPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasHandNum()) {
        memoizedIsInitialized = 0;
        return false;
      }
      for (int i = 0; i < getRejoinPlayerDataCount(); i++) {
        if (!getRejoinPlayerData(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt32(2, startDealerPlayerId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeUInt32(3, handNum_);
      }
      for (int i = 0; i < rejoinPlayerData_.size(); i++) {
        output.writeMessage(4, rejoinPlayerData_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, startDealerPlayerId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, handNum_);
      }
      for (int i = 0; i < rejoinPlayerData_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, rejoinPlayerData_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage other = (de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage) obj;

      if (hasGameId() != other.hasGameId()) return false;
      if (hasGameId()) {
        if (getGameId()
            != other.getGameId()) return false;
      }
      if (hasStartDealerPlayerId() != other.hasStartDealerPlayerId()) return false;
      if (hasStartDealerPlayerId()) {
        if (getStartDealerPlayerId()
            != other.getStartDealerPlayerId()) return false;
      }
      if (hasHandNum() != other.hasHandNum()) return false;
      if (hasHandNum()) {
        if (getHandNum()
            != other.getHandNum()) return false;
      }
      if (!getRejoinPlayerDataList()
          .equals(other.getRejoinPlayerDataList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasGameId()) {
        hash = (37 * hash) + GAMEID_FIELD_NUMBER;
        hash = (53 * hash) + getGameId();
      }
      if (hasStartDealerPlayerId()) {
        hash = (37 * hash) + STARTDEALERPLAYERID_FIELD_NUMBER;
        hash = (53 * hash) + getStartDealerPlayerId();
      }
      if (hasHandNum()) {
        hash = (37 * hash) + HANDNUM_FIELD_NUMBER;
        hash = (53 * hash) + getHandNum();
      }
      if (getRejoinPlayerDataCount() > 0) {
        hash = (37 * hash) + REJOINPLAYERDATA_FIELD_NUMBER;
        hash = (53 * hash) + getRejoinPlayerDataList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code GameStartRejoinMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:GameStartRejoinMessage)
        de.pokerth.protocol.ProtoBuf.GameStartRejoinMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_GameStartRejoinMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_GameStartRejoinMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.class, de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        gameId_ = 0;
        startDealerPlayerId_ = 0;
        handNum_ = 0;
        if (rejoinPlayerDataBuilder_ == null) {
          rejoinPlayerData_ = java.util.Collections.emptyList();
        } else {
          rejoinPlayerData_ = null;
          rejoinPlayerDataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_GameStartRejoinMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage build() {
        de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage result = new de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage result) {
        if (rejoinPlayerDataBuilder_ == null) {
          if (((bitField0_ & 0x00000008) != 0)) {
            rejoinPlayerData_ = java.util.Collections.unmodifiableList(rejoinPlayerData_);
            bitField0_ = (bitField0_ & ~0x00000008);
          }
          result.rejoinPlayerData_ = rejoinPlayerData_;
        } else {
          result.rejoinPlayerData_ = rejoinPlayerDataBuilder_.build();
        }
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.gameId_ = gameId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.startDealerPlayerId_ = startDealerPlayerId_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.handNum_ = handNum_;
          to_bitField0_ |= 0x00000004;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasStartDealerPlayerId()) {
          setStartDealerPlayerId(other.getStartDealerPlayerId());
        }
        if (other.hasHandNum()) {
          setHandNum(other.getHandNum());
        }
        if (rejoinPlayerDataBuilder_ == null) {
          if (!other.rejoinPlayerData_.isEmpty()) {
            if (rejoinPlayerData_.isEmpty()) {
              rejoinPlayerData_ = other.rejoinPlayerData_;
              bitField0_ = (bitField0_ & ~0x00000008);
            } else {
              ensureRejoinPlayerDataIsMutable();
              rejoinPlayerData_.addAll(other.rejoinPlayerData_);
            }
            onChanged();
          }
        } else {
          if (!other.rejoinPlayerData_.isEmpty()) {
            if (rejoinPlayerDataBuilder_.isEmpty()) {
              rejoinPlayerDataBuilder_.dispose();
              rejoinPlayerDataBuilder_ = null;
              rejoinPlayerData_ = other.rejoinPlayerData_;
              bitField0_ = (bitField0_ & ~0x00000008);
              rejoinPlayerDataBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getRejoinPlayerDataFieldBuilder() : null;
            } else {
              rejoinPlayerDataBuilder_.addAllMessages(other.rejoinPlayerData_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasGameId()) {
          return false;
        }
        if (!hasStartDealerPlayerId()) {
          return false;
        }
        if (!hasHandNum()) {
          return false;
        }
        for (int i = 0; i < getRejoinPlayerDataCount(); i++) {
          if (!getRejoinPlayerData(i).isInitialized()) {
            return false;
          }
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                gameId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                startDealerPlayerId_ = input.readUInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                handNum_ = input.readUInt32();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 34: {
                de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData m =
                    input.readMessage(
                        de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData.PARSER,
                        extensionRegistry);
                if (rejoinPlayerDataBuilder_ == null) {
                  ensureRejoinPlayerDataIsMutable();
                  rejoinPlayerData_.add(m);
                } else {
                  rejoinPlayerDataBuilder_.addMessage(m);
                }
                break;
              } // case 34
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return Whether the gameId field is set.
       */
      @java.lang.Override
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return The gameId.
       */
      @java.lang.Override
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @param value The gameId to set.
       * @return This builder for chaining.
       */
      public Builder setGameId(int value) {
        
        gameId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        onChanged();
        return this;
      }

      private int startDealerPlayerId_ ;
      /**
       * <code>required uint32 startDealerPlayerId = 2;</code>
       * @return Whether the startDealerPlayerId field is set.
       */
      @java.lang.Override
      public boolean hasStartDealerPlayerId() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required uint32 startDealerPlayerId = 2;</code>
       * @return The startDealerPlayerId.
       */
      @java.lang.Override
      public int getStartDealerPlayerId() {
        return startDealerPlayerId_;
      }
      /**
       * <code>required uint32 startDealerPlayerId = 2;</code>
       * @param value The startDealerPlayerId to set.
       * @return This builder for chaining.
       */
      public Builder setStartDealerPlayerId(int value) {
        
        startDealerPlayerId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 startDealerPlayerId = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearStartDealerPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        startDealerPlayerId_ = 0;
        onChanged();
        return this;
      }

      private int handNum_ ;
      /**
       * <code>required uint32 handNum = 3;</code>
       * @return Whether the handNum field is set.
       */
      @java.lang.Override
      public boolean hasHandNum() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>required uint32 handNum = 3;</code>
       * @return The handNum.
       */
      @java.lang.Override
      public int getHandNum() {
        return handNum_;
      }
      /**
       * <code>required uint32 handNum = 3;</code>
       * @param value The handNum to set.
       * @return This builder for chaining.
       */
      public Builder setHandNum(int value) {
        
        handNum_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 handNum = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearHandNum() {
        bitField0_ = (bitField0_ & ~0x00000004);
        handNum_ = 0;
        onChanged();
        return this;
      }

      private java.util.List<de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData> rejoinPlayerData_ =
        java.util.Collections.emptyList();
      private void ensureRejoinPlayerDataIsMutable() {
        if (!((bitField0_ & 0x00000008) != 0)) {
          rejoinPlayerData_ = new java.util.ArrayList<de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData>(rejoinPlayerData_);
          bitField0_ |= 0x00000008;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData, de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData.Builder, de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerDataOrBuilder> rejoinPlayerDataBuilder_;

      /**
       * <code>repeated .GameStartRejoinMessage.RejoinPlayerData rejoinPlayerData = 4;</code>
       */
      public java.util.List<de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData> getRejoinPlayerDataList() {
        if (rejoinPlayerDataBuilder_ == null) {
          return java.util.Collections.unmodifiableList(rejoinPlayerData_);
        } else {
          return rejoinPlayerDataBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .GameStartRejoinMessage.RejoinPlayerData rejoinPlayerData = 4;</code>
       */
      public int getRejoinPlayerDataCount() {
        if (rejoinPlayerDataBuilder_ == null) {
          return rejoinPlayerData_.size();
        } else {
          return rejoinPlayerDataBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .GameStartRejoinMessage.RejoinPlayerData rejoinPlayerData = 4;</code>
       */
      public de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData getRejoinPlayerData(int index) {
        if (rejoinPlayerDataBuilder_ == null) {
          return rejoinPlayerData_.get(index);
        } else {
          return rejoinPlayerDataBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .GameStartRejoinMessage.RejoinPlayerData rejoinPlayerData = 4;</code>
       */
      public Builder setRejoinPlayerData(
          int index, de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData value) {
        if (rejoinPlayerDataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRejoinPlayerDataIsMutable();
          rejoinPlayerData_.set(index, value);
          onChanged();
        } else {
          rejoinPlayerDataBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .GameStartRejoinMessage.RejoinPlayerData rejoinPlayerData = 4;</code>
       */
      public Builder setRejoinPlayerData(
          int index, de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData.Builder builderForValue) {
        if (rejoinPlayerDataBuilder_ == null) {
          ensureRejoinPlayerDataIsMutable();
          rejoinPlayerData_.set(index, builderForValue.build());
          onChanged();
        } else {
          rejoinPlayerDataBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .GameStartRejoinMessage.RejoinPlayerData rejoinPlayerData = 4;</code>
       */
      public Builder addRejoinPlayerData(de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData value) {
        if (rejoinPlayerDataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRejoinPlayerDataIsMutable();
          rejoinPlayerData_.add(value);
          onChanged();
        } else {
          rejoinPlayerDataBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .GameStartRejoinMessage.RejoinPlayerData rejoinPlayerData = 4;</code>
       */
      public Builder addRejoinPlayerData(
          int index, de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData value) {
        if (rejoinPlayerDataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRejoinPlayerDataIsMutable();
          rejoinPlayerData_.add(index, value);
          onChanged();
        } else {
          rejoinPlayerDataBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .GameStartRejoinMessage.RejoinPlayerData rejoinPlayerData = 4;</code>
       */
      public Builder addRejoinPlayerData(
          de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData.Builder builderForValue) {
        if (rejoinPlayerDataBuilder_ == null) {
          ensureRejoinPlayerDataIsMutable();
          rejoinPlayerData_.add(builderForValue.build());
          onChanged();
        } else {
          rejoinPlayerDataBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .GameStartRejoinMessage.RejoinPlayerData rejoinPlayerData = 4;</code>
       */
      public Builder addRejoinPlayerData(
          int index, de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData.Builder builderForValue) {
        if (rejoinPlayerDataBuilder_ == null) {
          ensureRejoinPlayerDataIsMutable();
          rejoinPlayerData_.add(index, builderForValue.build());
          onChanged();
        } else {
          rejoinPlayerDataBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .GameStartRejoinMessage.RejoinPlayerData rejoinPlayerData = 4;</code>
       */
      public Builder addAllRejoinPlayerData(
          java.lang.Iterable<? extends de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData> values) {
        if (rejoinPlayerDataBuilder_ == null) {
          ensureRejoinPlayerDataIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, rejoinPlayerData_);
          onChanged();
        } else {
          rejoinPlayerDataBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .GameStartRejoinMessage.RejoinPlayerData rejoinPlayerData = 4;</code>
       */
      public Builder clearRejoinPlayerData() {
        if (rejoinPlayerDataBuilder_ == null) {
          rejoinPlayerData_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
          onChanged();
        } else {
          rejoinPlayerDataBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .GameStartRejoinMessage.RejoinPlayerData rejoinPlayerData = 4;</code>
       */
      public Builder removeRejoinPlayerData(int index) {
        if (rejoinPlayerDataBuilder_ == null) {
          ensureRejoinPlayerDataIsMutable();
          rejoinPlayerData_.remove(index);
          onChanged();
        } else {
          rejoinPlayerDataBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .GameStartRejoinMessage.RejoinPlayerData rejoinPlayerData = 4;</code>
       */
      public de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData.Builder getRejoinPlayerDataBuilder(
          int index) {
        return getRejoinPlayerDataFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .GameStartRejoinMessage.RejoinPlayerData rejoinPlayerData = 4;</code>
       */
      public de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerDataOrBuilder getRejoinPlayerDataOrBuilder(
          int index) {
        if (rejoinPlayerDataBuilder_ == null) {
          return rejoinPlayerData_.get(index);  } else {
          return rejoinPlayerDataBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .GameStartRejoinMessage.RejoinPlayerData rejoinPlayerData = 4;</code>
       */
      public java.util.List<? extends de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerDataOrBuilder> 
           getRejoinPlayerDataOrBuilderList() {
        if (rejoinPlayerDataBuilder_ != null) {
          return rejoinPlayerDataBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(rejoinPlayerData_);
        }
      }
      /**
       * <code>repeated .GameStartRejoinMessage.RejoinPlayerData rejoinPlayerData = 4;</code>
       */
      public de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData.Builder addRejoinPlayerDataBuilder() {
        return getRejoinPlayerDataFieldBuilder().addBuilder(
            de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData.getDefaultInstance());
      }
      /**
       * <code>repeated .GameStartRejoinMessage.RejoinPlayerData rejoinPlayerData = 4;</code>
       */
      public de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData.Builder addRejoinPlayerDataBuilder(
          int index) {
        return getRejoinPlayerDataFieldBuilder().addBuilder(
            index, de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData.getDefaultInstance());
      }
      /**
       * <code>repeated .GameStartRejoinMessage.RejoinPlayerData rejoinPlayerData = 4;</code>
       */
      public java.util.List<de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData.Builder> 
           getRejoinPlayerDataBuilderList() {
        return getRejoinPlayerDataFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData, de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData.Builder, de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerDataOrBuilder> 
          getRejoinPlayerDataFieldBuilder() {
        if (rejoinPlayerDataBuilder_ == null) {
          rejoinPlayerDataBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData, de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData.Builder, de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerDataOrBuilder>(
                  rejoinPlayerData_,
                  ((bitField0_ & 0x00000008) != 0),
                  getParentForChildren(),
                  isClean());
          rejoinPlayerData_ = null;
        }
        return rejoinPlayerDataBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:GameStartRejoinMessage)
    }

    // @@protoc_insertion_point(class_scope:GameStartRejoinMessage)
    private static final de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<GameStartRejoinMessage>
        PARSER = new com.google.protobuf.AbstractParser<GameStartRejoinMessage>() {
      @java.lang.Override
      public GameStartRejoinMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<GameStartRejoinMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    int getGameId();

    /**
     * <code>optional .HandStartMessage.PlainCards plainCards = 2;</code>
     * @return Whether the plainCards field is set.
     */
    boolean hasPlainCards();
    /**
     * <code>optional .HandStartMessage.PlainCards plainCards = 2;</code>
     * @return The plainCards.
     */
    de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards getPlainCards();
    /**
     * <code>optional .HandStartMessage.PlainCards plainCards = 2;</code>
     */
    de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCardsOrBuilder getPlainCardsOrBuilder();

    /**
     * <code>optional bytes encryptedCards = 3;</code>
     * @return Whether the encryptedCards field is set.
     */
    boolean hasEncryptedCards();
    /**
     * <code>optional bytes encryptedCards = 3;</code>
     * @return The encryptedCards.
     */
    com.google.protobuf.ByteString getEncryptedCards();

    /**
     * <code>required uint32 smallBlind = 4;</code>
     * @return Whether the smallBlind field is set.
     */
    boolean hasSmallBlind();
    /**
     * <code>required uint32 smallBlind = 4;</code>
     * @return The smallBlind.
     */
    int getSmallBlind();

    /**
     * <code>repeated .NetPlayerState seatStates = 5;</code>
     * @return A list containing the seatStates.
     */
    java.util.List<de.pokerth.protocol.ProtoBuf.NetPlayerState> getSeatStatesList();
    /**
     * <code>repeated .NetPlayerState seatStates = 5;</code>
     * @return The count of seatStates.
     */
    int getSeatStatesCount();
    /**
     * <code>repeated .NetPlayerState seatStates = 5;</code>
     * @param index The index of the element to return.
     * @return The seatStates at the given index.
     */
    de.pokerth.protocol.ProtoBuf.NetPlayerState getSeatStates(int index);

    /**
     * <code>optional uint32 dealerPlayerId = 6;</code>
     * @return Whether the dealerPlayerId field is set.
     */
    boolean hasDealerPlayerId();
    /**
     * <code>optional uint32 dealerPlayerId = 6;</code>
     * @return The dealerPlayerId.
     */
    int getDealerPlayerId();
  }
  /**
   * Protobuf type {@code HandStartMessage}
   */
  public static final class HandStartMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:HandStartMessage)
      HandStartMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use HandStartMessage.newBuilder() to construct.
    private HandStartMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private HandStartMessage() {
      encryptedCards_ = com.google.protobuf.ByteString.EMPTY;
      seatStates_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new HandStartMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_HandStartMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_HandStartMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.HandStartMessage.class, de.pokerth.protocol.ProtoBuf.HandStartMessage.Builder.class);
    }

    public interface PlainCardsOrBuilder extends
        // @@protoc_insertion_point(interface_extends:HandStartMessage.PlainCards)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>required uint32 plainCard1 = 1;</code>
       * @return Whether the plainCard1 field is set.
       */
      boolean hasPlainCard1();
      /**
       * <code>required uint32 plainCard1 = 1;</code>
       * @return The plainCard1.
       */
      int getPlainCard1();

      /**
       * <code>required uint32 plainCard2 = 2;</code>
       * @return Whether the plainCard2 field is set.
       */
      boolean hasPlainCard2();
      /**
       * <code>required uint32 plainCard2 = 2;</code>
       * @return The plainCard2.
       */
      int getPlainCard2();
    }
    /**
     * Protobuf type {@code HandStartMessage.PlainCards}
     */
    public static final class PlainCards extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:HandStartMessage.PlainCards)
        PlainCardsOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use PlainCards.newBuilder() to construct.
      private PlainCards(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private PlainCards() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new PlainCards();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_HandStartMessage_PlainCards_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_HandStartMessage_PlainCards_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards.class, de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards.Builder.class);
      }

      private int bitField0_;
      public static final int PLAINCARD1_FIELD_NUMBER = 1;
      private int plainCard1_ = 0;
      /**
       * <code>required uint32 plainCard1 = 1;</code>
       * @return Whether the plainCard1 field is set.
       */
      @java.lang.Override
      public boolean hasPlainCard1() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 plainCard1 = 1;</code>
       * @return The plainCard1.
       */
      @java.lang.Override
      public int getPlainCard1() {
        return plainCard1_;
      }

      public static final int PLAINCARD2_FIELD_NUMBER = 2;
      private int plainCard2_ = 0;
      /**
       * <code>required uint32 plainCard2 = 2;</code>
       * @return Whether the plainCard2 field is set.
       */
      @java.lang.Override
      public boolean hasPlainCard2() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required uint32 plainCard2 = 2;</code>
       * @return The plainCard2.
       */
      @java.lang.Override
      public int getPlainCard2() {
        return plainCard2_;
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

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

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (((bitField0_ & 0x00000001) != 0)) {
          output.writeUInt32(1, plainCard1_);
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          output.writeUInt32(2, plainCard2_);
        }
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(1, plainCard1_);
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(2, plainCard2_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards)) {
          return super.equals(obj);
        }
        de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards other = (de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards) obj;

        if (hasPlainCard1() != other.hasPlainCard1()) return false;
        if (hasPlainCard1()) {
          if (getPlainCard1()
              != other.getPlainCard1()) return false;
        }
        if (hasPlainCard2() != other.hasPlainCard2()) return false;
        if (hasPlainCard2()) {
          if (getPlainCard2()
              != other.getPlainCard2()) return false;
        }
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasPlainCard1()) {
          hash = (37 * hash) + PLAINCARD1_FIELD_NUMBER;
          hash = (53 * hash) + getPlainCard1();
        }
        if (hasPlainCard2()) {
          hash = (37 * hash) + PLAINCARD2_FIELD_NUMBER;
          hash = (53 * hash) + getPlainCard2();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code HandStartMessage.PlainCards}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:HandStartMessage.PlainCards)
          de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCardsOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return de.pokerth.protocol.ProtoBuf.internal_static_HandStartMessage_PlainCards_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return de.pokerth.protocol.ProtoBuf.internal_static_HandStartMessage_PlainCards_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards.class, de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards.Builder.class);
        }

        // Construct using de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          plainCard1_ = 0;
          plainCard2_ = 0;
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return de.pokerth.protocol.ProtoBuf.internal_static_HandStartMessage_PlainCards_descriptor;
        }

        @java.lang.Override
        public de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards getDefaultInstanceForType() {
          return de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards.getDefaultInstance();
        }

        @java.lang.Override
        public de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards build() {
          de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards buildPartial() {
          de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards result = new de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards(this);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }

        private void buildPartial0(de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards result) {
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.plainCard1_ = plainCard1_;
            to_bitField0_ |= 0x00000001;
          }
          if (((from_bitField0_ & 0x00000002) != 0)) {
            result.plainCard2_ = plainCard2_;
            to_bitField0_ |= 0x00000002;
          }
          result.bitField0_ |= to_bitField0_;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards) {
            return mergeFrom((de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards other) {
          if (other == de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards.getDefaultInstance()) return this;
          if (other.hasPlainCard1()) {
            setPlainCard1(other.getPlainCard1());
          }
          if (other.hasPlainCard2()) {
            setPlainCard2(other.getPlainCard2());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          if (!hasPlainCard1()) {
            return false;
          }
          if (!hasPlainCard2()) {
            return false;
          }
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 8: {
                  plainCard1_ = input.readUInt32();
                  bitField0_ |= 0x00000001;
                  break;
                } // case 8
                case 16: {
                  plainCard2_ = input.readUInt32();
                  bitField0_ |= 0x00000002;
                  break;
                } // case 16
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        private int bitField0_;

        private int plainCard1_ ;
        /**
         * <code>required uint32 plainCard1 = 1;</code>
         * @return Whether the plainCard1 field is set.
         */
        @java.lang.Override
        public boolean hasPlainCard1() {
          return ((bitField0_ & 0x00000001) != 0);
        }
        /**
         * <code>required uint32 plainCard1 = 1;</code>
         * @return The plainCard1.
         */
        @java.lang.Override
        public int getPlainCard1() {
          return plainCard1_;
        }
        /**
         * <code>required uint32 plainCard1 = 1;</code>
         * @param value The plainCard1 to set.
         * @return This builder for chaining.
         */
        public Builder setPlainCard1(int value) {
          
          plainCard1_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <code>required uint32 plainCard1 = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearPlainCard1() {
          bitField0_ = (bitField0_ & ~0x00000001);
          plainCard1_ = 0;
          onChanged();
          return this;
        }

        private int plainCard2_ ;
        /**
         * <code>required uint32 plainCard2 = 2;</code>
         * @return Whether the plainCard2 field is set.
         */
        @java.lang.Override
        public boolean hasPlainCard2() {
          return ((bitField0_ & 0x00000002) != 0);
        }
        /**
         * <code>required uint32 plainCard2 = 2;</code>
         * @return The plainCard2.
         */
        @java.lang.Override
        public int getPlainCard2() {
          return plainCard2_;
        }
        /**
         * <code>required uint32 plainCard2 = 2;</code>
         * @param value The plainCard2 to set.
         * @return This builder for chaining.
         */
        public Builder setPlainCard2(int value) {
          
          plainCard2_ = value;
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        /**
         * <code>required uint32 plainCard2 = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearPlainCard2() {
          bitField0_ = (bitField0_ & ~0x00000002);
          plainCard2_ = 0;
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:HandStartMessage.PlainCards)
      }

      // @@protoc_insertion_point(class_scope:HandStartMessage.PlainCards)
      private static final de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards();
      }

      public static de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      @java.lang.Deprecated public static final com.google.protobuf.Parser<PlainCards>
          PARSER = new com.google.protobuf.AbstractParser<PlainCards>() {
        @java.lang.Override
        public PlainCards parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

      public static com.google.protobuf.Parser<PlainCards> parser() {
        return PARSER;
      }

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

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_ = 0;
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    @java.lang.Override
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    @java.lang.Override
    public int getGameId() {
      return gameId_;
    }

    public static final int PLAINCARDS_FIELD_NUMBER = 2;
    private de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards plainCards_;
    /**
     * <code>optional .HandStartMessage.PlainCards plainCards = 2;</code>
     * @return Whether the plainCards field is set.
     */
    @java.lang.Override
    public boolean hasPlainCards() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional .HandStartMessage.PlainCards plainCards = 2;</code>
     * @return The plainCards.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards getPlainCards() {
      return plainCards_ == null ? de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards.getDefaultInstance() : plainCards_;
    }
    /**
     * <code>optional .HandStartMessage.PlainCards plainCards = 2;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCardsOrBuilder getPlainCardsOrBuilder() {
      return plainCards_ == null ? de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards.getDefaultInstance() : plainCards_;
    }

    public static final int ENCRYPTEDCARDS_FIELD_NUMBER = 3;
    private com.google.protobuf.ByteString encryptedCards_ = com.google.protobuf.ByteString.EMPTY;
    /**
     * <code>optional bytes encryptedCards = 3;</code>
     * @return Whether the encryptedCards field is set.
     */
    @java.lang.Override
    public boolean hasEncryptedCards() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional bytes encryptedCards = 3;</code>
     * @return The encryptedCards.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getEncryptedCards() {
      return encryptedCards_;
    }

    public static final int SMALLBLIND_FIELD_NUMBER = 4;
    private int smallBlind_ = 0;
    /**
     * <code>required uint32 smallBlind = 4;</code>
     * @return Whether the smallBlind field is set.
     */
    @java.lang.Override
    public boolean hasSmallBlind() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>required uint32 smallBlind = 4;</code>
     * @return The smallBlind.
     */
    @java.lang.Override
    public int getSmallBlind() {
      return smallBlind_;
    }

    public static final int SEATSTATES_FIELD_NUMBER = 5;
    @SuppressWarnings("serial")
    private java.util.List<java.lang.Integer> seatStates_;
    private static final com.google.protobuf.Internal.ListAdapter.Converter<
        java.lang.Integer, de.pokerth.protocol.ProtoBuf.NetPlayerState> seatStates_converter_ =
            new com.google.protobuf.Internal.ListAdapter.Converter<
                java.lang.Integer, de.pokerth.protocol.ProtoBuf.NetPlayerState>() {
              public de.pokerth.protocol.ProtoBuf.NetPlayerState convert(java.lang.Integer from) {
                de.pokerth.protocol.ProtoBuf.NetPlayerState result = de.pokerth.protocol.ProtoBuf.NetPlayerState.forNumber(from);
                return result == null ? de.pokerth.protocol.ProtoBuf.NetPlayerState.netPlayerStateNormal : result;
              }
            };
    /**
     * <code>repeated .NetPlayerState seatStates = 5;</code>
     * @return A list containing the seatStates.
     */
    @java.lang.Override
    public java.util.List<de.pokerth.protocol.ProtoBuf.NetPlayerState> getSeatStatesList() {
      return new com.google.protobuf.Internal.ListAdapter<
          java.lang.Integer, de.pokerth.protocol.ProtoBuf.NetPlayerState>(seatStates_, seatStates_converter_);
    }
    /**
     * <code>repeated .NetPlayerState seatStates = 5;</code>
     * @return The count of seatStates.
     */
    @java.lang.Override
    public int getSeatStatesCount() {
      return seatStates_.size();
    }
    /**
     * <code>repeated .NetPlayerState seatStates = 5;</code>
     * @param index The index of the element to return.
     * @return The seatStates at the given index.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.NetPlayerState getSeatStates(int index) {
      return seatStates_converter_.convert(seatStates_.get(index));
    }

    public static final int DEALERPLAYERID_FIELD_NUMBER = 6;
    private int dealerPlayerId_ = 0;
    /**
     * <code>optional uint32 dealerPlayerId = 6;</code>
     * @return Whether the dealerPlayerId field is set.
     */
    @java.lang.Override
    public boolean hasDealerPlayerId() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <code>optional uint32 dealerPlayerId = 6;</code>
     * @return The dealerPlayerId.
     */
    @java.lang.Override
    public int getDealerPlayerId() {
      return dealerPlayerId_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasSmallBlind()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (hasPlainCards()) {
        if (!getPlainCards().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeMessage(2, getPlainCards());
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeBytes(3, encryptedCards_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeUInt32(4, smallBlind_);
      }
      for (int i = 0; i < seatStates_.size(); i++) {
        output.writeEnum(5, seatStates_.get(i));
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeUInt32(6, dealerPlayerId_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getPlainCards());
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, encryptedCards_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, smallBlind_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < seatStates_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeEnumSizeNoTag(seatStates_.get(i));
        }
        size += dataSize;
        size += 1 * seatStates_.size();
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(6, dealerPlayerId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.HandStartMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.HandStartMessage other = (de.pokerth.protocol.ProtoBuf.HandStartMessage) obj;

      if (hasGameId() != other.hasGameId()) return false;
      if (hasGameId()) {
        if (getGameId()
            != other.getGameId()) return false;
      }
      if (hasPlainCards() != other.hasPlainCards()) return false;
      if (hasPlainCards()) {
        if (!getPlainCards()
            .equals(other.getPlainCards())) return false;
      }
      if (hasEncryptedCards() != other.hasEncryptedCards()) return false;
      if (hasEncryptedCards()) {
        if (!getEncryptedCards()
            .equals(other.getEncryptedCards())) return false;
      }
      if (hasSmallBlind() != other.hasSmallBlind()) return false;
      if (hasSmallBlind()) {
        if (getSmallBlind()
            != other.getSmallBlind()) return false;
      }
      if (!seatStates_.equals(other.seatStates_)) return false;
      if (hasDealerPlayerId() != other.hasDealerPlayerId()) return false;
      if (hasDealerPlayerId()) {
        if (getDealerPlayerId()
            != other.getDealerPlayerId()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasGameId()) {
        hash = (37 * hash) + GAMEID_FIELD_NUMBER;
        hash = (53 * hash) + getGameId();
      }
      if (hasPlainCards()) {
        hash = (37 * hash) + PLAINCARDS_FIELD_NUMBER;
        hash = (53 * hash) + getPlainCards().hashCode();
      }
      if (hasEncryptedCards()) {
        hash = (37 * hash) + ENCRYPTEDCARDS_FIELD_NUMBER;
        hash = (53 * hash) + getEncryptedCards().hashCode();
      }
      if (hasSmallBlind()) {
        hash = (37 * hash) + SMALLBLIND_FIELD_NUMBER;
        hash = (53 * hash) + getSmallBlind();
      }
      if (getSeatStatesCount() > 0) {
        hash = (37 * hash) + SEATSTATES_FIELD_NUMBER;
        hash = (53 * hash) + seatStates_.hashCode();
      }
      if (hasDealerPlayerId()) {
        hash = (37 * hash) + DEALERPLAYERID_FIELD_NUMBER;
        hash = (53 * hash) + getDealerPlayerId();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.HandStartMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.HandStartMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.HandStartMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.HandStartMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.HandStartMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.HandStartMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.HandStartMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.HandStartMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.HandStartMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.HandStartMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.HandStartMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.HandStartMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.HandStartMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code HandStartMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:HandStartMessage)
        de.pokerth.protocol.ProtoBuf.HandStartMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_HandStartMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_HandStartMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.HandStartMessage.class, de.pokerth.protocol.ProtoBuf.HandStartMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.HandStartMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getPlainCardsFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        gameId_ = 0;
        plainCards_ = null;
        if (plainCardsBuilder_ != null) {
          plainCardsBuilder_.dispose();
          plainCardsBuilder_ = null;
        }
        encryptedCards_ = com.google.protobuf.ByteString.EMPTY;
        smallBlind_ = 0;
        seatStates_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000010);
        dealerPlayerId_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_HandStartMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.HandStartMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.HandStartMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.HandStartMessage build() {
        de.pokerth.protocol.ProtoBuf.HandStartMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.HandStartMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.HandStartMessage result = new de.pokerth.protocol.ProtoBuf.HandStartMessage(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(de.pokerth.protocol.ProtoBuf.HandStartMessage result) {
        if (((bitField0_ & 0x00000010) != 0)) {
          seatStates_ = java.util.Collections.unmodifiableList(seatStates_);
          bitField0_ = (bitField0_ & ~0x00000010);
        }
        result.seatStates_ = seatStates_;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.HandStartMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.gameId_ = gameId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.plainCards_ = plainCardsBuilder_ == null
              ? plainCards_
              : plainCardsBuilder_.build();
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.encryptedCards_ = encryptedCards_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.smallBlind_ = smallBlind_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.dealerPlayerId_ = dealerPlayerId_;
          to_bitField0_ |= 0x00000010;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.HandStartMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.HandStartMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.HandStartMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.HandStartMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasPlainCards()) {
          mergePlainCards(other.getPlainCards());
        }
        if (other.hasEncryptedCards()) {
          setEncryptedCards(other.getEncryptedCards());
        }
        if (other.hasSmallBlind()) {
          setSmallBlind(other.getSmallBlind());
        }
        if (!other.seatStates_.isEmpty()) {
          if (seatStates_.isEmpty()) {
            seatStates_ = other.seatStates_;
            bitField0_ = (bitField0_ & ~0x00000010);
          } else {
            ensureSeatStatesIsMutable();
            seatStates_.addAll(other.seatStates_);
          }
          onChanged();
        }
        if (other.hasDealerPlayerId()) {
          setDealerPlayerId(other.getDealerPlayerId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasGameId()) {
          return false;
        }
        if (!hasSmallBlind()) {
          return false;
        }
        if (hasPlainCards()) {
          if (!getPlainCards().isInitialized()) {
            return false;
          }
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                gameId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                input.readMessage(
                    getPlainCardsFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 26: {
                encryptedCards_ = input.readBytes();
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 32: {
                smallBlind_ = input.readUInt32();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              case 40: {
                int tmpRaw = input.readEnum();
                de.pokerth.protocol.ProtoBuf.NetPlayerState tmpValue =
                    de.pokerth.protocol.ProtoBuf.NetPlayerState.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(5, tmpRaw);
                } else {
                  ensureSeatStatesIsMutable();
                  seatStates_.add(tmpRaw);
                }
                break;
              } // case 40
              case 42: {
                int length = input.readRawVarint32();
                int oldLimit = input.pushLimit(length);
                while(input.getBytesUntilLimit() > 0) {
                  int tmpRaw = input.readEnum();
                  de.pokerth.protocol.ProtoBuf.NetPlayerState tmpValue =
                      de.pokerth.protocol.ProtoBuf.NetPlayerState.forNumber(tmpRaw);
                  if (tmpValue == null) {
                    mergeUnknownVarintField(5, tmpRaw);
                  } else {
                    ensureSeatStatesIsMutable();
                    seatStates_.add(tmpRaw);
                  }
                }
                input.popLimit(oldLimit);
                break;
              } // case 42
              case 48: {
                dealerPlayerId_ = input.readUInt32();
                bitField0_ |= 0x00000020;
                break;
              } // case 48
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return Whether the gameId field is set.
       */
      @java.lang.Override
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return The gameId.
       */
      @java.lang.Override
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @param value The gameId to set.
       * @return This builder for chaining.
       */
      public Builder setGameId(int value) {
        
        gameId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        onChanged();
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards plainCards_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards, de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards.Builder, de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCardsOrBuilder> plainCardsBuilder_;
      /**
       * <code>optional .HandStartMessage.PlainCards plainCards = 2;</code>
       * @return Whether the plainCards field is set.
       */
      public boolean hasPlainCards() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional .HandStartMessage.PlainCards plainCards = 2;</code>
       * @return The plainCards.
       */
      public de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards getPlainCards() {
        if (plainCardsBuilder_ == null) {
          return plainCards_ == null ? de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards.getDefaultInstance() : plainCards_;
        } else {
          return plainCardsBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .HandStartMessage.PlainCards plainCards = 2;</code>
       */
      public Builder setPlainCards(de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards value) {
        if (plainCardsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          plainCards_ = value;
        } else {
          plainCardsBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>optional .HandStartMessage.PlainCards plainCards = 2;</code>
       */
      public Builder setPlainCards(
          de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards.Builder builderForValue) {
        if (plainCardsBuilder_ == null) {
          plainCards_ = builderForValue.build();
        } else {
          plainCardsBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>optional .HandStartMessage.PlainCards plainCards = 2;</code>
       */
      public Builder mergePlainCards(de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards value) {
        if (plainCardsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0) &&
            plainCards_ != null &&
            plainCards_ != de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards.getDefaultInstance()) {
            getPlainCardsBuilder().mergeFrom(value);
          } else {
            plainCards_ = value;
          }
        } else {
          plainCardsBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>optional .HandStartMessage.PlainCards plainCards = 2;</code>
       */
      public Builder clearPlainCards() {
        bitField0_ = (bitField0_ & ~0x00000002);
        plainCards_ = null;
        if (plainCardsBuilder_ != null) {
          plainCardsBuilder_.dispose();
          plainCardsBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .HandStartMessage.PlainCards plainCards = 2;</code>
       */
      public de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards.Builder getPlainCardsBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getPlainCardsFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .HandStartMessage.PlainCards plainCards = 2;</code>
       */
      public de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCardsOrBuilder getPlainCardsOrBuilder() {
        if (plainCardsBuilder_ != null) {
          return plainCardsBuilder_.getMessageOrBuilder();
        } else {
          return plainCards_ == null ?
              de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards.getDefaultInstance() : plainCards_;
        }
      }
      /**
       * <code>optional .HandStartMessage.PlainCards plainCards = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards, de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards.Builder, de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCardsOrBuilder> 
          getPlainCardsFieldBuilder() {
        if (plainCardsBuilder_ == null) {
          plainCardsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards, de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards.Builder, de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCardsOrBuilder>(
                  getPlainCards(),
                  getParentForChildren(),
                  isClean());
          plainCards_ = null;
        }
        return plainCardsBuilder_;
      }

      private com.google.protobuf.ByteString encryptedCards_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <code>optional bytes encryptedCards = 3;</code>
       * @return Whether the encryptedCards field is set.
       */
      @java.lang.Override
      public boolean hasEncryptedCards() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>optional bytes encryptedCards = 3;</code>
       * @return The encryptedCards.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getEncryptedCards() {
        return encryptedCards_;
      }
      /**
       * <code>optional bytes encryptedCards = 3;</code>
       * @param value The encryptedCards to set.
       * @return This builder for chaining.
       */
      public Builder setEncryptedCards(com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        encryptedCards_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>optional bytes encryptedCards = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearEncryptedCards() {
        bitField0_ = (bitField0_ & ~0x00000004);
        encryptedCards_ = getDefaultInstance().getEncryptedCards();
        onChanged();
        return this;
      }

      private int smallBlind_ ;
      /**
       * <code>required uint32 smallBlind = 4;</code>
       * @return Whether the smallBlind field is set.
       */
      @java.lang.Override
      public boolean hasSmallBlind() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>required uint32 smallBlind = 4;</code>
       * @return The smallBlind.
       */
      @java.lang.Override
      public int getSmallBlind() {
        return smallBlind_;
      }
      /**
       * <code>required uint32 smallBlind = 4;</code>
       * @param value The smallBlind to set.
       * @return This builder for chaining.
       */
      public Builder setSmallBlind(int value) {
        
        smallBlind_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 smallBlind = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearSmallBlind() {
        bitField0_ = (bitField0_ & ~0x00000008);
        smallBlind_ = 0;
        onChanged();
        return this;
      }

      private java.util.List<java.lang.Integer> seatStates_ =
        java.util.Collections.emptyList();
      private void ensureSeatStatesIsMutable() {
        if (!((bitField0_ & 0x00000010) != 0)) {
          seatStates_ = new java.util.ArrayList<java.lang.Integer>(seatStates_);
          bitField0_ |= 0x00000010;
        }
      }
      /**
       * <code>repeated .NetPlayerState seatStates = 5;</code>
       * @return A list containing the seatStates.
       */
      public java.util.List<de.pokerth.protocol.ProtoBuf.NetPlayerState> getSeatStatesList() {
        return new com.google.protobuf.Internal.ListAdapter<
            java.lang.Integer, de.pokerth.protocol.ProtoBuf.NetPlayerState>(seatStates_, seatStates_converter_);
      }
      /**
       * <code>repeated .NetPlayerState seatStates = 5;</code>
       * @return The count of seatStates.
       */
      public int getSeatStatesCount() {
        return seatStates_.size();
      }
      /**
       * <code>repeated .NetPlayerState seatStates = 5;</code>
       * @param index The index of the element to return.
       * @return The seatStates at the given index.
       */
      public de.pokerth.protocol.ProtoBuf.NetPlayerState getSeatStates(int index) {
        return seatStates_converter_.convert(seatStates_.get(index));
      }
      /**
       * <code>repeated .NetPlayerState seatStates = 5;</code>
       * @param index The index to set the value at.
       * @param value The seatStates to set.
       * @return This builder for chaining.
       */
      public Builder setSeatStates(
          int index, de.pokerth.protocol.ProtoBuf.NetPlayerState value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureSeatStatesIsMutable();
        seatStates_.set(index, value.getNumber());
        onChanged();
        return this;
      }
      /**
       * <code>repeated .NetPlayerState seatStates = 5;</code>
       * @param value The seatStates to add.
       * @return This builder for chaining.
       */
      public Builder addSeatStates(de.pokerth.protocol.ProtoBuf.NetPlayerState value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureSeatStatesIsMutable();
        seatStates_.add(value.getNumber());
        onChanged();
        return this;
      }
      /**
       * <code>repeated .NetPlayerState seatStates = 5;</code>
       * @param values The seatStates to add.
       * @return This builder for chaining.
       */
      public Builder addAllSeatStates(
          java.lang.Iterable<? extends de.pokerth.protocol.ProtoBuf.NetPlayerState> values) {
        ensureSeatStatesIsMutable();
        for (de.pokerth.protocol.ProtoBuf.NetPlayerState value : values) {
          seatStates_.add(value.getNumber());
        }
        onChanged();
        return this;
      }
      /**
       * <code>repeated .NetPlayerState seatStates = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearSeatStates() {
        seatStates_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000010);
        onChanged();
        return this;
      }

      private int dealerPlayerId_ ;
      /**
       * <code>optional uint32 dealerPlayerId = 6;</code>
       * @return Whether the dealerPlayerId field is set.
       */
      @java.lang.Override
      public boolean hasDealerPlayerId() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <code>optional uint32 dealerPlayerId = 6;</code>
       * @return The dealerPlayerId.
       */
      @java.lang.Override
      public int getDealerPlayerId() {
        return dealerPlayerId_;
      }
      /**
       * <code>optional uint32 dealerPlayerId = 6;</code>
       * @param value The dealerPlayerId to set.
       * @return This builder for chaining.
       */
      public Builder setDealerPlayerId(int value) {
        
        dealerPlayerId_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>optional uint32 dealerPlayerId = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearDealerPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000020);
        dealerPlayerId_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:HandStartMessage)
    }

    // @@protoc_insertion_point(class_scope:HandStartMessage)
    private static final de.pokerth.protocol.ProtoBuf.HandStartMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.HandStartMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.HandStartMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<HandStartMessage>
        PARSER = new com.google.protobuf.AbstractParser<HandStartMessage>() {
      @java.lang.Override
      public HandStartMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<HandStartMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.HandStartMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    int getGameId();

    /**
     * <code>required uint32 playerId = 2;</code>
     * @return Whether the playerId field is set.
     */
    boolean hasPlayerId();
    /**
     * <code>required uint32 playerId = 2;</code>
     * @return The playerId.
     */
    int getPlayerId();

    /**
     * <code>required .NetGameState gameState = 3;</code>
     * @return Whether the gameState field is set.
     */
    boolean hasGameState();
    /**
     * <code>required .NetGameState gameState = 3;</code>
     * @return The gameState.
     */
    de.pokerth.protocol.ProtoBuf.NetGameState getGameState();
  }
  /**
   * Protobuf type {@code PlayersTurnMessage}
   */
  public static final class PlayersTurnMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:PlayersTurnMessage)
      PlayersTurnMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PlayersTurnMessage.newBuilder() to construct.
    private PlayersTurnMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PlayersTurnMessage() {
      gameState_ = 0;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new PlayersTurnMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_PlayersTurnMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_PlayersTurnMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.PlayersTurnMessage.class, de.pokerth.protocol.ProtoBuf.PlayersTurnMessage.Builder.class);
    }

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_ = 0;
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    @java.lang.Override
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    @java.lang.Override
    public int getGameId() {
      return gameId_;
    }

    public static final int PLAYERID_FIELD_NUMBER = 2;
    private int playerId_ = 0;
    /**
     * <code>required uint32 playerId = 2;</code>
     * @return Whether the playerId field is set.
     */
    @java.lang.Override
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required uint32 playerId = 2;</code>
     * @return The playerId.
     */
    @java.lang.Override
    public int getPlayerId() {
      return playerId_;
    }

    public static final int GAMESTATE_FIELD_NUMBER = 3;
    private int gameState_ = 0;
    /**
     * <code>required .NetGameState gameState = 3;</code>
     * @return Whether the gameState field is set.
     */
    @java.lang.Override public boolean hasGameState() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>required .NetGameState gameState = 3;</code>
     * @return The gameState.
     */
    @java.lang.Override public de.pokerth.protocol.ProtoBuf.NetGameState getGameState() {
      de.pokerth.protocol.ProtoBuf.NetGameState result = de.pokerth.protocol.ProtoBuf.NetGameState.forNumber(gameState_);
      return result == null ? de.pokerth.protocol.ProtoBuf.NetGameState.netStatePreflop : result;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasGameState()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt32(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeEnum(3, gameState_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, gameState_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.PlayersTurnMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.PlayersTurnMessage other = (de.pokerth.protocol.ProtoBuf.PlayersTurnMessage) obj;

      if (hasGameId() != other.hasGameId()) return false;
      if (hasGameId()) {
        if (getGameId()
            != other.getGameId()) return false;
      }
      if (hasPlayerId() != other.hasPlayerId()) return false;
      if (hasPlayerId()) {
        if (getPlayerId()
            != other.getPlayerId()) return false;
      }
      if (hasGameState() != other.hasGameState()) return false;
      if (hasGameState()) {
        if (gameState_ != other.gameState_) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasGameId()) {
        hash = (37 * hash) + GAMEID_FIELD_NUMBER;
        hash = (53 * hash) + getGameId();
      }
      if (hasPlayerId()) {
        hash = (37 * hash) + PLAYERID_FIELD_NUMBER;
        hash = (53 * hash) + getPlayerId();
      }
      if (hasGameState()) {
        hash = (37 * hash) + GAMESTATE_FIELD_NUMBER;
        hash = (53 * hash) + gameState_;
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.PlayersTurnMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayersTurnMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayersTurnMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayersTurnMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayersTurnMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayersTurnMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayersTurnMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayersTurnMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayersTurnMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayersTurnMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayersTurnMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayersTurnMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.PlayersTurnMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code PlayersTurnMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:PlayersTurnMessage)
        de.pokerth.protocol.ProtoBuf.PlayersTurnMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_PlayersTurnMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_PlayersTurnMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.PlayersTurnMessage.class, de.pokerth.protocol.ProtoBuf.PlayersTurnMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.PlayersTurnMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        gameId_ = 0;
        playerId_ = 0;
        gameState_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_PlayersTurnMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.PlayersTurnMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.PlayersTurnMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.PlayersTurnMessage build() {
        de.pokerth.protocol.ProtoBuf.PlayersTurnMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.PlayersTurnMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.PlayersTurnMessage result = new de.pokerth.protocol.ProtoBuf.PlayersTurnMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.PlayersTurnMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.gameId_ = gameId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.playerId_ = playerId_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.gameState_ = gameState_;
          to_bitField0_ |= 0x00000004;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.PlayersTurnMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.PlayersTurnMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.PlayersTurnMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.PlayersTurnMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasGameState()) {
          setGameState(other.getGameState());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasGameId()) {
          return false;
        }
        if (!hasPlayerId()) {
          return false;
        }
        if (!hasGameState()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                gameId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                playerId_ = input.readUInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                int tmpRaw = input.readEnum();
                de.pokerth.protocol.ProtoBuf.NetGameState tmpValue =
                    de.pokerth.protocol.ProtoBuf.NetGameState.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(3, tmpRaw);
                } else {
                  gameState_ = tmpRaw;
                  bitField0_ |= 0x00000004;
                }
                break;
              } // case 24
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return Whether the gameId field is set.
       */
      @java.lang.Override
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return The gameId.
       */
      @java.lang.Override
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @param value The gameId to set.
       * @return This builder for chaining.
       */
      public Builder setGameId(int value) {
        
        gameId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        onChanged();
        return this;
      }

      private int playerId_ ;
      /**
       * <code>required uint32 playerId = 2;</code>
       * @return Whether the playerId field is set.
       */
      @java.lang.Override
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       * @return The playerId.
       */
      @java.lang.Override
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       * @param value The playerId to set.
       * @return This builder for chaining.
       */
      public Builder setPlayerId(int value) {
        
        playerId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private int gameState_ = 0;
      /**
       * <code>required .NetGameState gameState = 3;</code>
       * @return Whether the gameState field is set.
       */
      @java.lang.Override public boolean hasGameState() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>required .NetGameState gameState = 3;</code>
       * @return The gameState.
       */
      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.NetGameState getGameState() {
        de.pokerth.protocol.ProtoBuf.NetGameState result = de.pokerth.protocol.ProtoBuf.NetGameState.forNumber(gameState_);
        return result == null ? de.pokerth.protocol.ProtoBuf.NetGameState.netStatePreflop : result;
      }
      /**
       * <code>required .NetGameState gameState = 3;</code>
       * @param value The gameState to set.
       * @return This builder for chaining.
       */
      public Builder setGameState(de.pokerth.protocol.ProtoBuf.NetGameState value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        gameState_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>required .NetGameState gameState = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearGameState() {
        bitField0_ = (bitField0_ & ~0x00000004);
        gameState_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:PlayersTurnMessage)
    }

    // @@protoc_insertion_point(class_scope:PlayersTurnMessage)
    private static final de.pokerth.protocol.ProtoBuf.PlayersTurnMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.PlayersTurnMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.PlayersTurnMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<PlayersTurnMessage>
        PARSER = new com.google.protobuf.AbstractParser<PlayersTurnMessage>() {
      @java.lang.Override
      public PlayersTurnMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<PlayersTurnMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.PlayersTurnMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    int getGameId();

    /**
     * <code>required uint32 handNum = 2;</code>
     * @return Whether the handNum field is set.
     */
    boolean hasHandNum();
    /**
     * <code>required uint32 handNum = 2;</code>
     * @return The handNum.
     */
    int getHandNum();

    /**
     * <code>required .NetGameState gameState = 3;</code>
     * @return Whether the gameState field is set.
     */
    boolean hasGameState();
    /**
     * <code>required .NetGameState gameState = 3;</code>
     * @return The gameState.
     */
    de.pokerth.protocol.ProtoBuf.NetGameState getGameState();

    /**
     * <code>required .NetPlayerAction myAction = 4;</code>
     * @return Whether the myAction field is set.
     */
    boolean hasMyAction();
    /**
     * <code>required .NetPlayerAction myAction = 4;</code>
     * @return The myAction.
     */
    de.pokerth.protocol.ProtoBuf.NetPlayerAction getMyAction();

    /**
     * <code>required uint32 myRelativeBet = 5;</code>
     * @return Whether the myRelativeBet field is set.
     */
    boolean hasMyRelativeBet();
    /**
     * <code>required uint32 myRelativeBet = 5;</code>
     * @return The myRelativeBet.
     */
    int getMyRelativeBet();
  }
  /**
   * Protobuf type {@code MyActionRequestMessage}
   */
  public static final class MyActionRequestMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:MyActionRequestMessage)
      MyActionRequestMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use MyActionRequestMessage.newBuilder() to construct.
    private MyActionRequestMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private MyActionRequestMessage() {
      gameState_ = 0;
      myAction_ = 0;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new MyActionRequestMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_MyActionRequestMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_MyActionRequestMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.MyActionRequestMessage.class, de.pokerth.protocol.ProtoBuf.MyActionRequestMessage.Builder.class);
    }

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_ = 0;
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    @java.lang.Override
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    @java.lang.Override
    public int getGameId() {
      return gameId_;
    }

    public static final int HANDNUM_FIELD_NUMBER = 2;
    private int handNum_ = 0;
    /**
     * <code>required uint32 handNum = 2;</code>
     * @return Whether the handNum field is set.
     */
    @java.lang.Override
    public boolean hasHandNum() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required uint32 handNum = 2;</code>
     * @return The handNum.
     */
    @java.lang.Override
    public int getHandNum() {
      return handNum_;
    }

    public static final int GAMESTATE_FIELD_NUMBER = 3;
    private int gameState_ = 0;
    /**
     * <code>required .NetGameState gameState = 3;</code>
     * @return Whether the gameState field is set.
     */
    @java.lang.Override public boolean hasGameState() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>required .NetGameState gameState = 3;</code>
     * @return The gameState.
     */
    @java.lang.Override public de.pokerth.protocol.ProtoBuf.NetGameState getGameState() {
      de.pokerth.protocol.ProtoBuf.NetGameState result = de.pokerth.protocol.ProtoBuf.NetGameState.forNumber(gameState_);
      return result == null ? de.pokerth.protocol.ProtoBuf.NetGameState.netStatePreflop : result;
    }

    public static final int MYACTION_FIELD_NUMBER = 4;
    private int myAction_ = 0;
    /**
     * <code>required .NetPlayerAction myAction = 4;</code>
     * @return Whether the myAction field is set.
     */
    @java.lang.Override public boolean hasMyAction() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>required .NetPlayerAction myAction = 4;</code>
     * @return The myAction.
     */
    @java.lang.Override public de.pokerth.protocol.ProtoBuf.NetPlayerAction getMyAction() {
      de.pokerth.protocol.ProtoBuf.NetPlayerAction result = de.pokerth.protocol.ProtoBuf.NetPlayerAction.forNumber(myAction_);
      return result == null ? de.pokerth.protocol.ProtoBuf.NetPlayerAction.netActionNone : result;
    }

    public static final int MYRELATIVEBET_FIELD_NUMBER = 5;
    private int myRelativeBet_ = 0;
    /**
     * <code>required uint32 myRelativeBet = 5;</code>
     * @return Whether the myRelativeBet field is set.
     */
    @java.lang.Override
    public boolean hasMyRelativeBet() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <code>required uint32 myRelativeBet = 5;</code>
     * @return The myRelativeBet.
     */
    @java.lang.Override
    public int getMyRelativeBet() {
      return myRelativeBet_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasHandNum()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasGameState()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasMyAction()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasMyRelativeBet()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt32(2, handNum_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeEnum(3, gameState_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeEnum(4, myAction_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeUInt32(5, myRelativeBet_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, handNum_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, gameState_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(4, myAction_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, myRelativeBet_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.MyActionRequestMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.MyActionRequestMessage other = (de.pokerth.protocol.ProtoBuf.MyActionRequestMessage) obj;

      if (hasGameId() != other.hasGameId()) return false;
      if (hasGameId()) {
        if (getGameId()
            != other.getGameId()) return false;
      }
      if (hasHandNum() != other.hasHandNum()) return false;
      if (hasHandNum()) {
        if (getHandNum()
            != other.getHandNum()) return false;
      }
      if (hasGameState() != other.hasGameState()) return false;
      if (hasGameState()) {
        if (gameState_ != other.gameState_) return false;
      }
      if (hasMyAction() != other.hasMyAction()) return false;
      if (hasMyAction()) {
        if (myAction_ != other.myAction_) return false;
      }
      if (hasMyRelativeBet() != other.hasMyRelativeBet()) return false;
      if (hasMyRelativeBet()) {
        if (getMyRelativeBet()
            != other.getMyRelativeBet()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasGameId()) {
        hash = (37 * hash) + GAMEID_FIELD_NUMBER;
        hash = (53 * hash) + getGameId();
      }
      if (hasHandNum()) {
        hash = (37 * hash) + HANDNUM_FIELD_NUMBER;
        hash = (53 * hash) + getHandNum();
      }
      if (hasGameState()) {
        hash = (37 * hash) + GAMESTATE_FIELD_NUMBER;
        hash = (53 * hash) + gameState_;
      }
      if (hasMyAction()) {
        hash = (37 * hash) + MYACTION_FIELD_NUMBER;
        hash = (53 * hash) + myAction_;
      }
      if (hasMyRelativeBet()) {
        hash = (37 * hash) + MYRELATIVEBET_FIELD_NUMBER;
        hash = (53 * hash) + getMyRelativeBet();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.MyActionRequestMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.MyActionRequestMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.MyActionRequestMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.MyActionRequestMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.MyActionRequestMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.MyActionRequestMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.MyActionRequestMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.MyActionRequestMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.MyActionRequestMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.MyActionRequestMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.MyActionRequestMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.MyActionRequestMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.MyActionRequestMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code MyActionRequestMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:MyActionRequestMessage)
        de.pokerth.protocol.ProtoBuf.MyActionRequestMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_MyActionRequestMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_MyActionRequestMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.MyActionRequestMessage.class, de.pokerth.protocol.ProtoBuf.MyActionRequestMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.MyActionRequestMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        gameId_ = 0;
        handNum_ = 0;
        gameState_ = 0;
        myAction_ = 0;
        myRelativeBet_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_MyActionRequestMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.MyActionRequestMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.MyActionRequestMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.MyActionRequestMessage build() {
        de.pokerth.protocol.ProtoBuf.MyActionRequestMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.MyActionRequestMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.MyActionRequestMessage result = new de.pokerth.protocol.ProtoBuf.MyActionRequestMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.MyActionRequestMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.gameId_ = gameId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.handNum_ = handNum_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.gameState_ = gameState_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.myAction_ = myAction_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.myRelativeBet_ = myRelativeBet_;
          to_bitField0_ |= 0x00000010;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.MyActionRequestMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.MyActionRequestMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.MyActionRequestMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.MyActionRequestMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasHandNum()) {
          setHandNum(other.getHandNum());
        }
        if (other.hasGameState()) {
          setGameState(other.getGameState());
        }
        if (other.hasMyAction()) {
          setMyAction(other.getMyAction());
        }
        if (other.hasMyRelativeBet()) {
          setMyRelativeBet(other.getMyRelativeBet());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasGameId()) {
          return false;
        }
        if (!hasHandNum()) {
          return false;
        }
        if (!hasGameState()) {
          return false;
        }
        if (!hasMyAction()) {
          return false;
        }
        if (!hasMyRelativeBet()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                gameId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                handNum_ = input.readUInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                int tmpRaw = input.readEnum();
                de.pokerth.protocol.ProtoBuf.NetGameState tmpValue =
                    de.pokerth.protocol.ProtoBuf.NetGameState.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(3, tmpRaw);
                } else {
                  gameState_ = tmpRaw;
                  bitField0_ |= 0x00000004;
                }
                break;
              } // case 24
              case 32: {
                int tmpRaw = input.readEnum();
                de.pokerth.protocol.ProtoBuf.NetPlayerAction tmpValue =
                    de.pokerth.protocol.ProtoBuf.NetPlayerAction.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(4, tmpRaw);
                } else {
                  myAction_ = tmpRaw;
                  bitField0_ |= 0x00000008;
                }
                break;
              } // case 32
              case 40: {
                myRelativeBet_ = input.readUInt32();
                bitField0_ |= 0x00000010;
                break;
              } // case 40
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return Whether the gameId field is set.
       */
      @java.lang.Override
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return The gameId.
       */
      @java.lang.Override
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @param value The gameId to set.
       * @return This builder for chaining.
       */
      public Builder setGameId(int value) {
        
        gameId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        onChanged();
        return this;
      }

      private int handNum_ ;
      /**
       * <code>required uint32 handNum = 2;</code>
       * @return Whether the handNum field is set.
       */
      @java.lang.Override
      public boolean hasHandNum() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required uint32 handNum = 2;</code>
       * @return The handNum.
       */
      @java.lang.Override
      public int getHandNum() {
        return handNum_;
      }
      /**
       * <code>required uint32 handNum = 2;</code>
       * @param value The handNum to set.
       * @return This builder for chaining.
       */
      public Builder setHandNum(int value) {
        
        handNum_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 handNum = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearHandNum() {
        bitField0_ = (bitField0_ & ~0x00000002);
        handNum_ = 0;
        onChanged();
        return this;
      }

      private int gameState_ = 0;
      /**
       * <code>required .NetGameState gameState = 3;</code>
       * @return Whether the gameState field is set.
       */
      @java.lang.Override public boolean hasGameState() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>required .NetGameState gameState = 3;</code>
       * @return The gameState.
       */
      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.NetGameState getGameState() {
        de.pokerth.protocol.ProtoBuf.NetGameState result = de.pokerth.protocol.ProtoBuf.NetGameState.forNumber(gameState_);
        return result == null ? de.pokerth.protocol.ProtoBuf.NetGameState.netStatePreflop : result;
      }
      /**
       * <code>required .NetGameState gameState = 3;</code>
       * @param value The gameState to set.
       * @return This builder for chaining.
       */
      public Builder setGameState(de.pokerth.protocol.ProtoBuf.NetGameState value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        gameState_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>required .NetGameState gameState = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearGameState() {
        bitField0_ = (bitField0_ & ~0x00000004);
        gameState_ = 0;
        onChanged();
        return this;
      }

      private int myAction_ = 0;
      /**
       * <code>required .NetPlayerAction myAction = 4;</code>
       * @return Whether the myAction field is set.
       */
      @java.lang.Override public boolean hasMyAction() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>required .NetPlayerAction myAction = 4;</code>
       * @return The myAction.
       */
      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.NetPlayerAction getMyAction() {
        de.pokerth.protocol.ProtoBuf.NetPlayerAction result = de.pokerth.protocol.ProtoBuf.NetPlayerAction.forNumber(myAction_);
        return result == null ? de.pokerth.protocol.ProtoBuf.NetPlayerAction.netActionNone : result;
      }
      /**
       * <code>required .NetPlayerAction myAction = 4;</code>
       * @param value The myAction to set.
       * @return This builder for chaining.
       */
      public Builder setMyAction(de.pokerth.protocol.ProtoBuf.NetPlayerAction value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        myAction_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>required .NetPlayerAction myAction = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearMyAction() {
        bitField0_ = (bitField0_ & ~0x00000008);
        myAction_ = 0;
        onChanged();
        return this;
      }

      private int myRelativeBet_ ;
      /**
       * <code>required uint32 myRelativeBet = 5;</code>
       * @return Whether the myRelativeBet field is set.
       */
      @java.lang.Override
      public boolean hasMyRelativeBet() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <code>required uint32 myRelativeBet = 5;</code>
       * @return The myRelativeBet.
       */
      @java.lang.Override
      public int getMyRelativeBet() {
        return myRelativeBet_;
      }
      /**
       * <code>required uint32 myRelativeBet = 5;</code>
       * @param value The myRelativeBet to set.
       * @return This builder for chaining.
       */
      public Builder setMyRelativeBet(int value) {
        
        myRelativeBet_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 myRelativeBet = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearMyRelativeBet() {
        bitField0_ = (bitField0_ & ~0x00000010);
        myRelativeBet_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:MyActionRequestMessage)
    }

    // @@protoc_insertion_point(class_scope:MyActionRequestMessage)
    private static final de.pokerth.protocol.ProtoBuf.MyActionRequestMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.MyActionRequestMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.MyActionRequestMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<MyActionRequestMessage>
        PARSER = new com.google.protobuf.AbstractParser<MyActionRequestMessage>() {
      @java.lang.Override
      public MyActionRequestMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<MyActionRequestMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.MyActionRequestMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    int getGameId();

    /**
     * <code>required .NetGameState gameState = 2;</code>
     * @return Whether the gameState field is set.
     */
    boolean hasGameState();
    /**
     * <code>required .NetGameState gameState = 2;</code>
     * @return The gameState.
     */
    de.pokerth.protocol.ProtoBuf.NetGameState getGameState();

    /**
     * <code>required .NetPlayerAction yourAction = 3;</code>
     * @return Whether the yourAction field is set.
     */
    boolean hasYourAction();
    /**
     * <code>required .NetPlayerAction yourAction = 3;</code>
     * @return The yourAction.
     */
    de.pokerth.protocol.ProtoBuf.NetPlayerAction getYourAction();

    /**
     * <code>required uint32 yourRelativeBet = 4;</code>
     * @return Whether the yourRelativeBet field is set.
     */
    boolean hasYourRelativeBet();
    /**
     * <code>required uint32 yourRelativeBet = 4;</code>
     * @return The yourRelativeBet.
     */
    int getYourRelativeBet();

    /**
     * <code>required .YourActionRejectedMessage.RejectionReason rejectionReason = 5;</code>
     * @return Whether the rejectionReason field is set.
     */
    boolean hasRejectionReason();
    /**
     * <code>required .YourActionRejectedMessage.RejectionReason rejectionReason = 5;</code>
     * @return The rejectionReason.
     */
    de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.RejectionReason getRejectionReason();
  }
  /**
   * Protobuf type {@code YourActionRejectedMessage}
   */
  public static final class YourActionRejectedMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:YourActionRejectedMessage)
      YourActionRejectedMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use YourActionRejectedMessage.newBuilder() to construct.
    private YourActionRejectedMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private YourActionRejectedMessage() {
      gameState_ = 0;
      yourAction_ = 0;
      rejectionReason_ = 1;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new YourActionRejectedMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_YourActionRejectedMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_YourActionRejectedMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.class, de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.Builder.class);
    }

    /**
     * Protobuf enum {@code YourActionRejectedMessage.RejectionReason}
     */
    public enum RejectionReason
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>rejectedInvalidGameState = 1;</code>
       */
      rejectedInvalidGameState(1),
      /**
       * <code>rejectedNotYourTurn = 2;</code>
       */
      rejectedNotYourTurn(2),
      /**
       * <code>rejectedActionNotAllowed = 3;</code>
       */
      rejectedActionNotAllowed(3),
      ;

      /**
       * <code>rejectedInvalidGameState = 1;</code>
       */
      public static final int rejectedInvalidGameState_VALUE = 1;
      /**
       * <code>rejectedNotYourTurn = 2;</code>
       */
      public static final int rejectedNotYourTurn_VALUE = 2;
      /**
       * <code>rejectedActionNotAllowed = 3;</code>
       */
      public static final int rejectedActionNotAllowed_VALUE = 3;


      public final int getNumber() {
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static RejectionReason valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static RejectionReason forNumber(int value) {
        switch (value) {
          case 1: return rejectedInvalidGameState;
          case 2: return rejectedNotYourTurn;
          case 3: return rejectedActionNotAllowed;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<RejectionReason>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          RejectionReason> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<RejectionReason>() {
              public RejectionReason findValueByNumber(int number) {
                return RejectionReason.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.getDescriptor().getEnumTypes().get(0);
      }

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

      public static RejectionReason 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 value;

      private RejectionReason(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:YourActionRejectedMessage.RejectionReason)
    }

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_ = 0;
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    @java.lang.Override
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    @java.lang.Override
    public int getGameId() {
      return gameId_;
    }

    public static final int GAMESTATE_FIELD_NUMBER = 2;
    private int gameState_ = 0;
    /**
     * <code>required .NetGameState gameState = 2;</code>
     * @return Whether the gameState field is set.
     */
    @java.lang.Override public boolean hasGameState() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required .NetGameState gameState = 2;</code>
     * @return The gameState.
     */
    @java.lang.Override public de.pokerth.protocol.ProtoBuf.NetGameState getGameState() {
      de.pokerth.protocol.ProtoBuf.NetGameState result = de.pokerth.protocol.ProtoBuf.NetGameState.forNumber(gameState_);
      return result == null ? de.pokerth.protocol.ProtoBuf.NetGameState.netStatePreflop : result;
    }

    public static final int YOURACTION_FIELD_NUMBER = 3;
    private int yourAction_ = 0;
    /**
     * <code>required .NetPlayerAction yourAction = 3;</code>
     * @return Whether the yourAction field is set.
     */
    @java.lang.Override public boolean hasYourAction() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>required .NetPlayerAction yourAction = 3;</code>
     * @return The yourAction.
     */
    @java.lang.Override public de.pokerth.protocol.ProtoBuf.NetPlayerAction getYourAction() {
      de.pokerth.protocol.ProtoBuf.NetPlayerAction result = de.pokerth.protocol.ProtoBuf.NetPlayerAction.forNumber(yourAction_);
      return result == null ? de.pokerth.protocol.ProtoBuf.NetPlayerAction.netActionNone : result;
    }

    public static final int YOURRELATIVEBET_FIELD_NUMBER = 4;
    private int yourRelativeBet_ = 0;
    /**
     * <code>required uint32 yourRelativeBet = 4;</code>
     * @return Whether the yourRelativeBet field is set.
     */
    @java.lang.Override
    public boolean hasYourRelativeBet() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>required uint32 yourRelativeBet = 4;</code>
     * @return The yourRelativeBet.
     */
    @java.lang.Override
    public int getYourRelativeBet() {
      return yourRelativeBet_;
    }

    public static final int REJECTIONREASON_FIELD_NUMBER = 5;
    private int rejectionReason_ = 1;
    /**
     * <code>required .YourActionRejectedMessage.RejectionReason rejectionReason = 5;</code>
     * @return Whether the rejectionReason field is set.
     */
    @java.lang.Override public boolean hasRejectionReason() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <code>required .YourActionRejectedMessage.RejectionReason rejectionReason = 5;</code>
     * @return The rejectionReason.
     */
    @java.lang.Override public de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.RejectionReason getRejectionReason() {
      de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.RejectionReason result = de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.RejectionReason.forNumber(rejectionReason_);
      return result == null ? de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.RejectionReason.rejectedInvalidGameState : result;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasGameState()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasYourAction()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasYourRelativeBet()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasRejectionReason()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeEnum(2, gameState_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeEnum(3, yourAction_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeUInt32(4, yourRelativeBet_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeEnum(5, rejectionReason_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, gameState_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, yourAction_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, yourRelativeBet_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(5, rejectionReason_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage other = (de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage) obj;

      if (hasGameId() != other.hasGameId()) return false;
      if (hasGameId()) {
        if (getGameId()
            != other.getGameId()) return false;
      }
      if (hasGameState() != other.hasGameState()) return false;
      if (hasGameState()) {
        if (gameState_ != other.gameState_) return false;
      }
      if (hasYourAction() != other.hasYourAction()) return false;
      if (hasYourAction()) {
        if (yourAction_ != other.yourAction_) return false;
      }
      if (hasYourRelativeBet() != other.hasYourRelativeBet()) return false;
      if (hasYourRelativeBet()) {
        if (getYourRelativeBet()
            != other.getYourRelativeBet()) return false;
      }
      if (hasRejectionReason() != other.hasRejectionReason()) return false;
      if (hasRejectionReason()) {
        if (rejectionReason_ != other.rejectionReason_) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasGameId()) {
        hash = (37 * hash) + GAMEID_FIELD_NUMBER;
        hash = (53 * hash) + getGameId();
      }
      if (hasGameState()) {
        hash = (37 * hash) + GAMESTATE_FIELD_NUMBER;
        hash = (53 * hash) + gameState_;
      }
      if (hasYourAction()) {
        hash = (37 * hash) + YOURACTION_FIELD_NUMBER;
        hash = (53 * hash) + yourAction_;
      }
      if (hasYourRelativeBet()) {
        hash = (37 * hash) + YOURRELATIVEBET_FIELD_NUMBER;
        hash = (53 * hash) + getYourRelativeBet();
      }
      if (hasRejectionReason()) {
        hash = (37 * hash) + REJECTIONREASON_FIELD_NUMBER;
        hash = (53 * hash) + rejectionReason_;
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code YourActionRejectedMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:YourActionRejectedMessage)
        de.pokerth.protocol.ProtoBuf.YourActionRejectedMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_YourActionRejectedMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_YourActionRejectedMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.class, de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        gameId_ = 0;
        gameState_ = 0;
        yourAction_ = 0;
        yourRelativeBet_ = 0;
        rejectionReason_ = 1;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_YourActionRejectedMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage build() {
        de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage result = new de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.gameId_ = gameId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.gameState_ = gameState_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.yourAction_ = yourAction_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.yourRelativeBet_ = yourRelativeBet_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.rejectionReason_ = rejectionReason_;
          to_bitField0_ |= 0x00000010;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasGameState()) {
          setGameState(other.getGameState());
        }
        if (other.hasYourAction()) {
          setYourAction(other.getYourAction());
        }
        if (other.hasYourRelativeBet()) {
          setYourRelativeBet(other.getYourRelativeBet());
        }
        if (other.hasRejectionReason()) {
          setRejectionReason(other.getRejectionReason());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasGameId()) {
          return false;
        }
        if (!hasGameState()) {
          return false;
        }
        if (!hasYourAction()) {
          return false;
        }
        if (!hasYourRelativeBet()) {
          return false;
        }
        if (!hasRejectionReason()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                gameId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                int tmpRaw = input.readEnum();
                de.pokerth.protocol.ProtoBuf.NetGameState tmpValue =
                    de.pokerth.protocol.ProtoBuf.NetGameState.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(2, tmpRaw);
                } else {
                  gameState_ = tmpRaw;
                  bitField0_ |= 0x00000002;
                }
                break;
              } // case 16
              case 24: {
                int tmpRaw = input.readEnum();
                de.pokerth.protocol.ProtoBuf.NetPlayerAction tmpValue =
                    de.pokerth.protocol.ProtoBuf.NetPlayerAction.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(3, tmpRaw);
                } else {
                  yourAction_ = tmpRaw;
                  bitField0_ |= 0x00000004;
                }
                break;
              } // case 24
              case 32: {
                yourRelativeBet_ = input.readUInt32();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              case 40: {
                int tmpRaw = input.readEnum();
                de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.RejectionReason tmpValue =
                    de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.RejectionReason.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(5, tmpRaw);
                } else {
                  rejectionReason_ = tmpRaw;
                  bitField0_ |= 0x00000010;
                }
                break;
              } // case 40
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return Whether the gameId field is set.
       */
      @java.lang.Override
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return The gameId.
       */
      @java.lang.Override
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @param value The gameId to set.
       * @return This builder for chaining.
       */
      public Builder setGameId(int value) {
        
        gameId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        onChanged();
        return this;
      }

      private int gameState_ = 0;
      /**
       * <code>required .NetGameState gameState = 2;</code>
       * @return Whether the gameState field is set.
       */
      @java.lang.Override public boolean hasGameState() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required .NetGameState gameState = 2;</code>
       * @return The gameState.
       */
      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.NetGameState getGameState() {
        de.pokerth.protocol.ProtoBuf.NetGameState result = de.pokerth.protocol.ProtoBuf.NetGameState.forNumber(gameState_);
        return result == null ? de.pokerth.protocol.ProtoBuf.NetGameState.netStatePreflop : result;
      }
      /**
       * <code>required .NetGameState gameState = 2;</code>
       * @param value The gameState to set.
       * @return This builder for chaining.
       */
      public Builder setGameState(de.pokerth.protocol.ProtoBuf.NetGameState value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        gameState_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>required .NetGameState gameState = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearGameState() {
        bitField0_ = (bitField0_ & ~0x00000002);
        gameState_ = 0;
        onChanged();
        return this;
      }

      private int yourAction_ = 0;
      /**
       * <code>required .NetPlayerAction yourAction = 3;</code>
       * @return Whether the yourAction field is set.
       */
      @java.lang.Override public boolean hasYourAction() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>required .NetPlayerAction yourAction = 3;</code>
       * @return The yourAction.
       */
      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.NetPlayerAction getYourAction() {
        de.pokerth.protocol.ProtoBuf.NetPlayerAction result = de.pokerth.protocol.ProtoBuf.NetPlayerAction.forNumber(yourAction_);
        return result == null ? de.pokerth.protocol.ProtoBuf.NetPlayerAction.netActionNone : result;
      }
      /**
       * <code>required .NetPlayerAction yourAction = 3;</code>
       * @param value The yourAction to set.
       * @return This builder for chaining.
       */
      public Builder setYourAction(de.pokerth.protocol.ProtoBuf.NetPlayerAction value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        yourAction_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>required .NetPlayerAction yourAction = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearYourAction() {
        bitField0_ = (bitField0_ & ~0x00000004);
        yourAction_ = 0;
        onChanged();
        return this;
      }

      private int yourRelativeBet_ ;
      /**
       * <code>required uint32 yourRelativeBet = 4;</code>
       * @return Whether the yourRelativeBet field is set.
       */
      @java.lang.Override
      public boolean hasYourRelativeBet() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>required uint32 yourRelativeBet = 4;</code>
       * @return The yourRelativeBet.
       */
      @java.lang.Override
      public int getYourRelativeBet() {
        return yourRelativeBet_;
      }
      /**
       * <code>required uint32 yourRelativeBet = 4;</code>
       * @param value The yourRelativeBet to set.
       * @return This builder for chaining.
       */
      public Builder setYourRelativeBet(int value) {
        
        yourRelativeBet_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 yourRelativeBet = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearYourRelativeBet() {
        bitField0_ = (bitField0_ & ~0x00000008);
        yourRelativeBet_ = 0;
        onChanged();
        return this;
      }

      private int rejectionReason_ = 1;
      /**
       * <code>required .YourActionRejectedMessage.RejectionReason rejectionReason = 5;</code>
       * @return Whether the rejectionReason field is set.
       */
      @java.lang.Override public boolean hasRejectionReason() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <code>required .YourActionRejectedMessage.RejectionReason rejectionReason = 5;</code>
       * @return The rejectionReason.
       */
      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.RejectionReason getRejectionReason() {
        de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.RejectionReason result = de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.RejectionReason.forNumber(rejectionReason_);
        return result == null ? de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.RejectionReason.rejectedInvalidGameState : result;
      }
      /**
       * <code>required .YourActionRejectedMessage.RejectionReason rejectionReason = 5;</code>
       * @param value The rejectionReason to set.
       * @return This builder for chaining.
       */
      public Builder setRejectionReason(de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.RejectionReason value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        rejectionReason_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>required .YourActionRejectedMessage.RejectionReason rejectionReason = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearRejectionReason() {
        bitField0_ = (bitField0_ & ~0x00000010);
        rejectionReason_ = 1;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:YourActionRejectedMessage)
    }

    // @@protoc_insertion_point(class_scope:YourActionRejectedMessage)
    private static final de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<YourActionRejectedMessage>
        PARSER = new com.google.protobuf.AbstractParser<YourActionRejectedMessage>() {
      @java.lang.Override
      public YourActionRejectedMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<YourActionRejectedMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    int getGameId();

    /**
     * <code>required uint32 playerId = 2;</code>
     * @return Whether the playerId field is set.
     */
    boolean hasPlayerId();
    /**
     * <code>required uint32 playerId = 2;</code>
     * @return The playerId.
     */
    int getPlayerId();

    /**
     * <code>required .NetGameState gameState = 3;</code>
     * @return Whether the gameState field is set.
     */
    boolean hasGameState();
    /**
     * <code>required .NetGameState gameState = 3;</code>
     * @return The gameState.
     */
    de.pokerth.protocol.ProtoBuf.NetGameState getGameState();

    /**
     * <code>required .NetPlayerAction playerAction = 4;</code>
     * @return Whether the playerAction field is set.
     */
    boolean hasPlayerAction();
    /**
     * <code>required .NetPlayerAction playerAction = 4;</code>
     * @return The playerAction.
     */
    de.pokerth.protocol.ProtoBuf.NetPlayerAction getPlayerAction();

    /**
     * <code>required uint32 totalPlayerBet = 5;</code>
     * @return Whether the totalPlayerBet field is set.
     */
    boolean hasTotalPlayerBet();
    /**
     * <code>required uint32 totalPlayerBet = 5;</code>
     * @return The totalPlayerBet.
     */
    int getTotalPlayerBet();

    /**
     * <code>required uint32 playerMoney = 6;</code>
     * @return Whether the playerMoney field is set.
     */
    boolean hasPlayerMoney();
    /**
     * <code>required uint32 playerMoney = 6;</code>
     * @return The playerMoney.
     */
    int getPlayerMoney();

    /**
     * <code>required uint32 highestSet = 7;</code>
     * @return Whether the highestSet field is set.
     */
    boolean hasHighestSet();
    /**
     * <code>required uint32 highestSet = 7;</code>
     * @return The highestSet.
     */
    int getHighestSet();

    /**
     * <code>required uint32 minimumRaise = 8;</code>
     * @return Whether the minimumRaise field is set.
     */
    boolean hasMinimumRaise();
    /**
     * <code>required uint32 minimumRaise = 8;</code>
     * @return The minimumRaise.
     */
    int getMinimumRaise();
  }
  /**
   * Protobuf type {@code PlayersActionDoneMessage}
   */
  public static final class PlayersActionDoneMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:PlayersActionDoneMessage)
      PlayersActionDoneMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PlayersActionDoneMessage.newBuilder() to construct.
    private PlayersActionDoneMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PlayersActionDoneMessage() {
      gameState_ = 0;
      playerAction_ = 0;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new PlayersActionDoneMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_PlayersActionDoneMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_PlayersActionDoneMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage.class, de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage.Builder.class);
    }

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_ = 0;
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    @java.lang.Override
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    @java.lang.Override
    public int getGameId() {
      return gameId_;
    }

    public static final int PLAYERID_FIELD_NUMBER = 2;
    private int playerId_ = 0;
    /**
     * <code>required uint32 playerId = 2;</code>
     * @return Whether the playerId field is set.
     */
    @java.lang.Override
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required uint32 playerId = 2;</code>
     * @return The playerId.
     */
    @java.lang.Override
    public int getPlayerId() {
      return playerId_;
    }

    public static final int GAMESTATE_FIELD_NUMBER = 3;
    private int gameState_ = 0;
    /**
     * <code>required .NetGameState gameState = 3;</code>
     * @return Whether the gameState field is set.
     */
    @java.lang.Override public boolean hasGameState() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>required .NetGameState gameState = 3;</code>
     * @return The gameState.
     */
    @java.lang.Override public de.pokerth.protocol.ProtoBuf.NetGameState getGameState() {
      de.pokerth.protocol.ProtoBuf.NetGameState result = de.pokerth.protocol.ProtoBuf.NetGameState.forNumber(gameState_);
      return result == null ? de.pokerth.protocol.ProtoBuf.NetGameState.netStatePreflop : result;
    }

    public static final int PLAYERACTION_FIELD_NUMBER = 4;
    private int playerAction_ = 0;
    /**
     * <code>required .NetPlayerAction playerAction = 4;</code>
     * @return Whether the playerAction field is set.
     */
    @java.lang.Override public boolean hasPlayerAction() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>required .NetPlayerAction playerAction = 4;</code>
     * @return The playerAction.
     */
    @java.lang.Override public de.pokerth.protocol.ProtoBuf.NetPlayerAction getPlayerAction() {
      de.pokerth.protocol.ProtoBuf.NetPlayerAction result = de.pokerth.protocol.ProtoBuf.NetPlayerAction.forNumber(playerAction_);
      return result == null ? de.pokerth.protocol.ProtoBuf.NetPlayerAction.netActionNone : result;
    }

    public static final int TOTALPLAYERBET_FIELD_NUMBER = 5;
    private int totalPlayerBet_ = 0;
    /**
     * <code>required uint32 totalPlayerBet = 5;</code>
     * @return Whether the totalPlayerBet field is set.
     */
    @java.lang.Override
    public boolean hasTotalPlayerBet() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <code>required uint32 totalPlayerBet = 5;</code>
     * @return The totalPlayerBet.
     */
    @java.lang.Override
    public int getTotalPlayerBet() {
      return totalPlayerBet_;
    }

    public static final int PLAYERMONEY_FIELD_NUMBER = 6;
    private int playerMoney_ = 0;
    /**
     * <code>required uint32 playerMoney = 6;</code>
     * @return Whether the playerMoney field is set.
     */
    @java.lang.Override
    public boolean hasPlayerMoney() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <code>required uint32 playerMoney = 6;</code>
     * @return The playerMoney.
     */
    @java.lang.Override
    public int getPlayerMoney() {
      return playerMoney_;
    }

    public static final int HIGHESTSET_FIELD_NUMBER = 7;
    private int highestSet_ = 0;
    /**
     * <code>required uint32 highestSet = 7;</code>
     * @return Whether the highestSet field is set.
     */
    @java.lang.Override
    public boolean hasHighestSet() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <code>required uint32 highestSet = 7;</code>
     * @return The highestSet.
     */
    @java.lang.Override
    public int getHighestSet() {
      return highestSet_;
    }

    public static final int MINIMUMRAISE_FIELD_NUMBER = 8;
    private int minimumRaise_ = 0;
    /**
     * <code>required uint32 minimumRaise = 8;</code>
     * @return Whether the minimumRaise field is set.
     */
    @java.lang.Override
    public boolean hasMinimumRaise() {
      return ((bitField0_ & 0x00000080) != 0);
    }
    /**
     * <code>required uint32 minimumRaise = 8;</code>
     * @return The minimumRaise.
     */
    @java.lang.Override
    public int getMinimumRaise() {
      return minimumRaise_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasGameState()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerAction()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasTotalPlayerBet()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerMoney()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasHighestSet()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasMinimumRaise()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt32(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeEnum(3, gameState_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeEnum(4, playerAction_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeUInt32(5, totalPlayerBet_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        output.writeUInt32(6, playerMoney_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        output.writeUInt32(7, highestSet_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        output.writeUInt32(8, minimumRaise_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, gameState_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(4, playerAction_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, totalPlayerBet_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(6, playerMoney_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(7, highestSet_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(8, minimumRaise_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage other = (de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage) obj;

      if (hasGameId() != other.hasGameId()) return false;
      if (hasGameId()) {
        if (getGameId()
            != other.getGameId()) return false;
      }
      if (hasPlayerId() != other.hasPlayerId()) return false;
      if (hasPlayerId()) {
        if (getPlayerId()
            != other.getPlayerId()) return false;
      }
      if (hasGameState() != other.hasGameState()) return false;
      if (hasGameState()) {
        if (gameState_ != other.gameState_) return false;
      }
      if (hasPlayerAction() != other.hasPlayerAction()) return false;
      if (hasPlayerAction()) {
        if (playerAction_ != other.playerAction_) return false;
      }
      if (hasTotalPlayerBet() != other.hasTotalPlayerBet()) return false;
      if (hasTotalPlayerBet()) {
        if (getTotalPlayerBet()
            != other.getTotalPlayerBet()) return false;
      }
      if (hasPlayerMoney() != other.hasPlayerMoney()) return false;
      if (hasPlayerMoney()) {
        if (getPlayerMoney()
            != other.getPlayerMoney()) return false;
      }
      if (hasHighestSet() != other.hasHighestSet()) return false;
      if (hasHighestSet()) {
        if (getHighestSet()
            != other.getHighestSet()) return false;
      }
      if (hasMinimumRaise() != other.hasMinimumRaise()) return false;
      if (hasMinimumRaise()) {
        if (getMinimumRaise()
            != other.getMinimumRaise()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasGameId()) {
        hash = (37 * hash) + GAMEID_FIELD_NUMBER;
        hash = (53 * hash) + getGameId();
      }
      if (hasPlayerId()) {
        hash = (37 * hash) + PLAYERID_FIELD_NUMBER;
        hash = (53 * hash) + getPlayerId();
      }
      if (hasGameState()) {
        hash = (37 * hash) + GAMESTATE_FIELD_NUMBER;
        hash = (53 * hash) + gameState_;
      }
      if (hasPlayerAction()) {
        hash = (37 * hash) + PLAYERACTION_FIELD_NUMBER;
        hash = (53 * hash) + playerAction_;
      }
      if (hasTotalPlayerBet()) {
        hash = (37 * hash) + TOTALPLAYERBET_FIELD_NUMBER;
        hash = (53 * hash) + getTotalPlayerBet();
      }
      if (hasPlayerMoney()) {
        hash = (37 * hash) + PLAYERMONEY_FIELD_NUMBER;
        hash = (53 * hash) + getPlayerMoney();
      }
      if (hasHighestSet()) {
        hash = (37 * hash) + HIGHESTSET_FIELD_NUMBER;
        hash = (53 * hash) + getHighestSet();
      }
      if (hasMinimumRaise()) {
        hash = (37 * hash) + MINIMUMRAISE_FIELD_NUMBER;
        hash = (53 * hash) + getMinimumRaise();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code PlayersActionDoneMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:PlayersActionDoneMessage)
        de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_PlayersActionDoneMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_PlayersActionDoneMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage.class, de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        gameId_ = 0;
        playerId_ = 0;
        gameState_ = 0;
        playerAction_ = 0;
        totalPlayerBet_ = 0;
        playerMoney_ = 0;
        highestSet_ = 0;
        minimumRaise_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_PlayersActionDoneMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage build() {
        de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage result = new de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.gameId_ = gameId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.playerId_ = playerId_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.gameState_ = gameState_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.playerAction_ = playerAction_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.totalPlayerBet_ = totalPlayerBet_;
          to_bitField0_ |= 0x00000010;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.playerMoney_ = playerMoney_;
          to_bitField0_ |= 0x00000020;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.highestSet_ = highestSet_;
          to_bitField0_ |= 0x00000040;
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.minimumRaise_ = minimumRaise_;
          to_bitField0_ |= 0x00000080;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasGameState()) {
          setGameState(other.getGameState());
        }
        if (other.hasPlayerAction()) {
          setPlayerAction(other.getPlayerAction());
        }
        if (other.hasTotalPlayerBet()) {
          setTotalPlayerBet(other.getTotalPlayerBet());
        }
        if (other.hasPlayerMoney()) {
          setPlayerMoney(other.getPlayerMoney());
        }
        if (other.hasHighestSet()) {
          setHighestSet(other.getHighestSet());
        }
        if (other.hasMinimumRaise()) {
          setMinimumRaise(other.getMinimumRaise());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasGameId()) {
          return false;
        }
        if (!hasPlayerId()) {
          return false;
        }
        if (!hasGameState()) {
          return false;
        }
        if (!hasPlayerAction()) {
          return false;
        }
        if (!hasTotalPlayerBet()) {
          return false;
        }
        if (!hasPlayerMoney()) {
          return false;
        }
        if (!hasHighestSet()) {
          return false;
        }
        if (!hasMinimumRaise()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                gameId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                playerId_ = input.readUInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                int tmpRaw = input.readEnum();
                de.pokerth.protocol.ProtoBuf.NetGameState tmpValue =
                    de.pokerth.protocol.ProtoBuf.NetGameState.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(3, tmpRaw);
                } else {
                  gameState_ = tmpRaw;
                  bitField0_ |= 0x00000004;
                }
                break;
              } // case 24
              case 32: {
                int tmpRaw = input.readEnum();
                de.pokerth.protocol.ProtoBuf.NetPlayerAction tmpValue =
                    de.pokerth.protocol.ProtoBuf.NetPlayerAction.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(4, tmpRaw);
                } else {
                  playerAction_ = tmpRaw;
                  bitField0_ |= 0x00000008;
                }
                break;
              } // case 32
              case 40: {
                totalPlayerBet_ = input.readUInt32();
                bitField0_ |= 0x00000010;
                break;
              } // case 40
              case 48: {
                playerMoney_ = input.readUInt32();
                bitField0_ |= 0x00000020;
                break;
              } // case 48
              case 56: {
                highestSet_ = input.readUInt32();
                bitField0_ |= 0x00000040;
                break;
              } // case 56
              case 64: {
                minimumRaise_ = input.readUInt32();
                bitField0_ |= 0x00000080;
                break;
              } // case 64
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return Whether the gameId field is set.
       */
      @java.lang.Override
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return The gameId.
       */
      @java.lang.Override
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @param value The gameId to set.
       * @return This builder for chaining.
       */
      public Builder setGameId(int value) {
        
        gameId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        onChanged();
        return this;
      }

      private int playerId_ ;
      /**
       * <code>required uint32 playerId = 2;</code>
       * @return Whether the playerId field is set.
       */
      @java.lang.Override
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       * @return The playerId.
       */
      @java.lang.Override
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       * @param value The playerId to set.
       * @return This builder for chaining.
       */
      public Builder setPlayerId(int value) {
        
        playerId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private int gameState_ = 0;
      /**
       * <code>required .NetGameState gameState = 3;</code>
       * @return Whether the gameState field is set.
       */
      @java.lang.Override public boolean hasGameState() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>required .NetGameState gameState = 3;</code>
       * @return The gameState.
       */
      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.NetGameState getGameState() {
        de.pokerth.protocol.ProtoBuf.NetGameState result = de.pokerth.protocol.ProtoBuf.NetGameState.forNumber(gameState_);
        return result == null ? de.pokerth.protocol.ProtoBuf.NetGameState.netStatePreflop : result;
      }
      /**
       * <code>required .NetGameState gameState = 3;</code>
       * @param value The gameState to set.
       * @return This builder for chaining.
       */
      public Builder setGameState(de.pokerth.protocol.ProtoBuf.NetGameState value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        gameState_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>required .NetGameState gameState = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearGameState() {
        bitField0_ = (bitField0_ & ~0x00000004);
        gameState_ = 0;
        onChanged();
        return this;
      }

      private int playerAction_ = 0;
      /**
       * <code>required .NetPlayerAction playerAction = 4;</code>
       * @return Whether the playerAction field is set.
       */
      @java.lang.Override public boolean hasPlayerAction() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>required .NetPlayerAction playerAction = 4;</code>
       * @return The playerAction.
       */
      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.NetPlayerAction getPlayerAction() {
        de.pokerth.protocol.ProtoBuf.NetPlayerAction result = de.pokerth.protocol.ProtoBuf.NetPlayerAction.forNumber(playerAction_);
        return result == null ? de.pokerth.protocol.ProtoBuf.NetPlayerAction.netActionNone : result;
      }
      /**
       * <code>required .NetPlayerAction playerAction = 4;</code>
       * @param value The playerAction to set.
       * @return This builder for chaining.
       */
      public Builder setPlayerAction(de.pokerth.protocol.ProtoBuf.NetPlayerAction value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        playerAction_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>required .NetPlayerAction playerAction = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearPlayerAction() {
        bitField0_ = (bitField0_ & ~0x00000008);
        playerAction_ = 0;
        onChanged();
        return this;
      }

      private int totalPlayerBet_ ;
      /**
       * <code>required uint32 totalPlayerBet = 5;</code>
       * @return Whether the totalPlayerBet field is set.
       */
      @java.lang.Override
      public boolean hasTotalPlayerBet() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <code>required uint32 totalPlayerBet = 5;</code>
       * @return The totalPlayerBet.
       */
      @java.lang.Override
      public int getTotalPlayerBet() {
        return totalPlayerBet_;
      }
      /**
       * <code>required uint32 totalPlayerBet = 5;</code>
       * @param value The totalPlayerBet to set.
       * @return This builder for chaining.
       */
      public Builder setTotalPlayerBet(int value) {
        
        totalPlayerBet_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 totalPlayerBet = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearTotalPlayerBet() {
        bitField0_ = (bitField0_ & ~0x00000010);
        totalPlayerBet_ = 0;
        onChanged();
        return this;
      }

      private int playerMoney_ ;
      /**
       * <code>required uint32 playerMoney = 6;</code>
       * @return Whether the playerMoney field is set.
       */
      @java.lang.Override
      public boolean hasPlayerMoney() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <code>required uint32 playerMoney = 6;</code>
       * @return The playerMoney.
       */
      @java.lang.Override
      public int getPlayerMoney() {
        return playerMoney_;
      }
      /**
       * <code>required uint32 playerMoney = 6;</code>
       * @param value The playerMoney to set.
       * @return This builder for chaining.
       */
      public Builder setPlayerMoney(int value) {
        
        playerMoney_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 playerMoney = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearPlayerMoney() {
        bitField0_ = (bitField0_ & ~0x00000020);
        playerMoney_ = 0;
        onChanged();
        return this;
      }

      private int highestSet_ ;
      /**
       * <code>required uint32 highestSet = 7;</code>
       * @return Whether the highestSet field is set.
       */
      @java.lang.Override
      public boolean hasHighestSet() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <code>required uint32 highestSet = 7;</code>
       * @return The highestSet.
       */
      @java.lang.Override
      public int getHighestSet() {
        return highestSet_;
      }
      /**
       * <code>required uint32 highestSet = 7;</code>
       * @param value The highestSet to set.
       * @return This builder for chaining.
       */
      public Builder setHighestSet(int value) {
        
        highestSet_ = value;
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 highestSet = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearHighestSet() {
        bitField0_ = (bitField0_ & ~0x00000040);
        highestSet_ = 0;
        onChanged();
        return this;
      }

      private int minimumRaise_ ;
      /**
       * <code>required uint32 minimumRaise = 8;</code>
       * @return Whether the minimumRaise field is set.
       */
      @java.lang.Override
      public boolean hasMinimumRaise() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * <code>required uint32 minimumRaise = 8;</code>
       * @return The minimumRaise.
       */
      @java.lang.Override
      public int getMinimumRaise() {
        return minimumRaise_;
      }
      /**
       * <code>required uint32 minimumRaise = 8;</code>
       * @param value The minimumRaise to set.
       * @return This builder for chaining.
       */
      public Builder setMinimumRaise(int value) {
        
        minimumRaise_ = value;
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 minimumRaise = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearMinimumRaise() {
        bitField0_ = (bitField0_ & ~0x00000080);
        minimumRaise_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:PlayersActionDoneMessage)
    }

    // @@protoc_insertion_point(class_scope:PlayersActionDoneMessage)
    private static final de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<PlayersActionDoneMessage>
        PARSER = new com.google.protobuf.AbstractParser<PlayersActionDoneMessage>() {
      @java.lang.Override
      public PlayersActionDoneMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<PlayersActionDoneMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    int getGameId();

    /**
     * <code>required uint32 flopCard1 = 2;</code>
     * @return Whether the flopCard1 field is set.
     */
    boolean hasFlopCard1();
    /**
     * <code>required uint32 flopCard1 = 2;</code>
     * @return The flopCard1.
     */
    int getFlopCard1();

    /**
     * <code>required uint32 flopCard2 = 3;</code>
     * @return Whether the flopCard2 field is set.
     */
    boolean hasFlopCard2();
    /**
     * <code>required uint32 flopCard2 = 3;</code>
     * @return The flopCard2.
     */
    int getFlopCard2();

    /**
     * <code>required uint32 flopCard3 = 4;</code>
     * @return Whether the flopCard3 field is set.
     */
    boolean hasFlopCard3();
    /**
     * <code>required uint32 flopCard3 = 4;</code>
     * @return The flopCard3.
     */
    int getFlopCard3();
  }
  /**
   * Protobuf type {@code DealFlopCardsMessage}
   */
  public static final class DealFlopCardsMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:DealFlopCardsMessage)
      DealFlopCardsMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use DealFlopCardsMessage.newBuilder() to construct.
    private DealFlopCardsMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private DealFlopCardsMessage() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new DealFlopCardsMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_DealFlopCardsMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_DealFlopCardsMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage.class, de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage.Builder.class);
    }

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_ = 0;
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    @java.lang.Override
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    @java.lang.Override
    public int getGameId() {
      return gameId_;
    }

    public static final int FLOPCARD1_FIELD_NUMBER = 2;
    private int flopCard1_ = 0;
    /**
     * <code>required uint32 flopCard1 = 2;</code>
     * @return Whether the flopCard1 field is set.
     */
    @java.lang.Override
    public boolean hasFlopCard1() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required uint32 flopCard1 = 2;</code>
     * @return The flopCard1.
     */
    @java.lang.Override
    public int getFlopCard1() {
      return flopCard1_;
    }

    public static final int FLOPCARD2_FIELD_NUMBER = 3;
    private int flopCard2_ = 0;
    /**
     * <code>required uint32 flopCard2 = 3;</code>
     * @return Whether the flopCard2 field is set.
     */
    @java.lang.Override
    public boolean hasFlopCard2() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>required uint32 flopCard2 = 3;</code>
     * @return The flopCard2.
     */
    @java.lang.Override
    public int getFlopCard2() {
      return flopCard2_;
    }

    public static final int FLOPCARD3_FIELD_NUMBER = 4;
    private int flopCard3_ = 0;
    /**
     * <code>required uint32 flopCard3 = 4;</code>
     * @return Whether the flopCard3 field is set.
     */
    @java.lang.Override
    public boolean hasFlopCard3() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>required uint32 flopCard3 = 4;</code>
     * @return The flopCard3.
     */
    @java.lang.Override
    public int getFlopCard3() {
      return flopCard3_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasFlopCard1()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasFlopCard2()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasFlopCard3()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt32(2, flopCard1_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeUInt32(3, flopCard2_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeUInt32(4, flopCard3_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, flopCard1_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, flopCard2_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, flopCard3_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage other = (de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage) obj;

      if (hasGameId() != other.hasGameId()) return false;
      if (hasGameId()) {
        if (getGameId()
            != other.getGameId()) return false;
      }
      if (hasFlopCard1() != other.hasFlopCard1()) return false;
      if (hasFlopCard1()) {
        if (getFlopCard1()
            != other.getFlopCard1()) return false;
      }
      if (hasFlopCard2() != other.hasFlopCard2()) return false;
      if (hasFlopCard2()) {
        if (getFlopCard2()
            != other.getFlopCard2()) return false;
      }
      if (hasFlopCard3() != other.hasFlopCard3()) return false;
      if (hasFlopCard3()) {
        if (getFlopCard3()
            != other.getFlopCard3()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasGameId()) {
        hash = (37 * hash) + GAMEID_FIELD_NUMBER;
        hash = (53 * hash) + getGameId();
      }
      if (hasFlopCard1()) {
        hash = (37 * hash) + FLOPCARD1_FIELD_NUMBER;
        hash = (53 * hash) + getFlopCard1();
      }
      if (hasFlopCard2()) {
        hash = (37 * hash) + FLOPCARD2_FIELD_NUMBER;
        hash = (53 * hash) + getFlopCard2();
      }
      if (hasFlopCard3()) {
        hash = (37 * hash) + FLOPCARD3_FIELD_NUMBER;
        hash = (53 * hash) + getFlopCard3();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code DealFlopCardsMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:DealFlopCardsMessage)
        de.pokerth.protocol.ProtoBuf.DealFlopCardsMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_DealFlopCardsMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_DealFlopCardsMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage.class, de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        gameId_ = 0;
        flopCard1_ = 0;
        flopCard2_ = 0;
        flopCard3_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_DealFlopCardsMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage build() {
        de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage result = new de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.gameId_ = gameId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.flopCard1_ = flopCard1_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.flopCard2_ = flopCard2_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.flopCard3_ = flopCard3_;
          to_bitField0_ |= 0x00000008;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasFlopCard1()) {
          setFlopCard1(other.getFlopCard1());
        }
        if (other.hasFlopCard2()) {
          setFlopCard2(other.getFlopCard2());
        }
        if (other.hasFlopCard3()) {
          setFlopCard3(other.getFlopCard3());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasGameId()) {
          return false;
        }
        if (!hasFlopCard1()) {
          return false;
        }
        if (!hasFlopCard2()) {
          return false;
        }
        if (!hasFlopCard3()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                gameId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                flopCard1_ = input.readUInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                flopCard2_ = input.readUInt32();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 32: {
                flopCard3_ = input.readUInt32();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return Whether the gameId field is set.
       */
      @java.lang.Override
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return The gameId.
       */
      @java.lang.Override
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @param value The gameId to set.
       * @return This builder for chaining.
       */
      public Builder setGameId(int value) {
        
        gameId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        onChanged();
        return this;
      }

      private int flopCard1_ ;
      /**
       * <code>required uint32 flopCard1 = 2;</code>
       * @return Whether the flopCard1 field is set.
       */
      @java.lang.Override
      public boolean hasFlopCard1() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required uint32 flopCard1 = 2;</code>
       * @return The flopCard1.
       */
      @java.lang.Override
      public int getFlopCard1() {
        return flopCard1_;
      }
      /**
       * <code>required uint32 flopCard1 = 2;</code>
       * @param value The flopCard1 to set.
       * @return This builder for chaining.
       */
      public Builder setFlopCard1(int value) {
        
        flopCard1_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 flopCard1 = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearFlopCard1() {
        bitField0_ = (bitField0_ & ~0x00000002);
        flopCard1_ = 0;
        onChanged();
        return this;
      }

      private int flopCard2_ ;
      /**
       * <code>required uint32 flopCard2 = 3;</code>
       * @return Whether the flopCard2 field is set.
       */
      @java.lang.Override
      public boolean hasFlopCard2() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>required uint32 flopCard2 = 3;</code>
       * @return The flopCard2.
       */
      @java.lang.Override
      public int getFlopCard2() {
        return flopCard2_;
      }
      /**
       * <code>required uint32 flopCard2 = 3;</code>
       * @param value The flopCard2 to set.
       * @return This builder for chaining.
       */
      public Builder setFlopCard2(int value) {
        
        flopCard2_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 flopCard2 = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearFlopCard2() {
        bitField0_ = (bitField0_ & ~0x00000004);
        flopCard2_ = 0;
        onChanged();
        return this;
      }

      private int flopCard3_ ;
      /**
       * <code>required uint32 flopCard3 = 4;</code>
       * @return Whether the flopCard3 field is set.
       */
      @java.lang.Override
      public boolean hasFlopCard3() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>required uint32 flopCard3 = 4;</code>
       * @return The flopCard3.
       */
      @java.lang.Override
      public int getFlopCard3() {
        return flopCard3_;
      }
      /**
       * <code>required uint32 flopCard3 = 4;</code>
       * @param value The flopCard3 to set.
       * @return This builder for chaining.
       */
      public Builder setFlopCard3(int value) {
        
        flopCard3_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 flopCard3 = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearFlopCard3() {
        bitField0_ = (bitField0_ & ~0x00000008);
        flopCard3_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:DealFlopCardsMessage)
    }

    // @@protoc_insertion_point(class_scope:DealFlopCardsMessage)
    private static final de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<DealFlopCardsMessage>
        PARSER = new com.google.protobuf.AbstractParser<DealFlopCardsMessage>() {
      @java.lang.Override
      public DealFlopCardsMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<DealFlopCardsMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    int getGameId();

    /**
     * <code>required uint32 turnCard = 2;</code>
     * @return Whether the turnCard field is set.
     */
    boolean hasTurnCard();
    /**
     * <code>required uint32 turnCard = 2;</code>
     * @return The turnCard.
     */
    int getTurnCard();
  }
  /**
   * Protobuf type {@code DealTurnCardMessage}
   */
  public static final class DealTurnCardMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:DealTurnCardMessage)
      DealTurnCardMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use DealTurnCardMessage.newBuilder() to construct.
    private DealTurnCardMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private DealTurnCardMessage() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new DealTurnCardMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_DealTurnCardMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_DealTurnCardMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.DealTurnCardMessage.class, de.pokerth.protocol.ProtoBuf.DealTurnCardMessage.Builder.class);
    }

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_ = 0;
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    @java.lang.Override
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    @java.lang.Override
    public int getGameId() {
      return gameId_;
    }

    public static final int TURNCARD_FIELD_NUMBER = 2;
    private int turnCard_ = 0;
    /**
     * <code>required uint32 turnCard = 2;</code>
     * @return Whether the turnCard field is set.
     */
    @java.lang.Override
    public boolean hasTurnCard() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required uint32 turnCard = 2;</code>
     * @return The turnCard.
     */
    @java.lang.Override
    public int getTurnCard() {
      return turnCard_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

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

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt32(2, turnCard_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, turnCard_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.DealTurnCardMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.DealTurnCardMessage other = (de.pokerth.protocol.ProtoBuf.DealTurnCardMessage) obj;

      if (hasGameId() != other.hasGameId()) return false;
      if (hasGameId()) {
        if (getGameId()
            != other.getGameId()) return false;
      }
      if (hasTurnCard() != other.hasTurnCard()) return false;
      if (hasTurnCard()) {
        if (getTurnCard()
            != other.getTurnCard()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasGameId()) {
        hash = (37 * hash) + GAMEID_FIELD_NUMBER;
        hash = (53 * hash) + getGameId();
      }
      if (hasTurnCard()) {
        hash = (37 * hash) + TURNCARD_FIELD_NUMBER;
        hash = (53 * hash) + getTurnCard();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.DealTurnCardMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.DealTurnCardMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.DealTurnCardMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.DealTurnCardMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.DealTurnCardMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.DealTurnCardMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.DealTurnCardMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.DealTurnCardMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.DealTurnCardMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.DealTurnCardMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.DealTurnCardMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.DealTurnCardMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.DealTurnCardMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code DealTurnCardMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:DealTurnCardMessage)
        de.pokerth.protocol.ProtoBuf.DealTurnCardMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_DealTurnCardMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_DealTurnCardMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.DealTurnCardMessage.class, de.pokerth.protocol.ProtoBuf.DealTurnCardMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.DealTurnCardMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        gameId_ = 0;
        turnCard_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_DealTurnCardMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.DealTurnCardMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.DealTurnCardMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.DealTurnCardMessage build() {
        de.pokerth.protocol.ProtoBuf.DealTurnCardMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.DealTurnCardMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.DealTurnCardMessage result = new de.pokerth.protocol.ProtoBuf.DealTurnCardMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.DealTurnCardMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.gameId_ = gameId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.turnCard_ = turnCard_;
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.DealTurnCardMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.DealTurnCardMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.DealTurnCardMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.DealTurnCardMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasTurnCard()) {
          setTurnCard(other.getTurnCard());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasGameId()) {
          return false;
        }
        if (!hasTurnCard()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                gameId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                turnCard_ = input.readUInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return Whether the gameId field is set.
       */
      @java.lang.Override
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return The gameId.
       */
      @java.lang.Override
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @param value The gameId to set.
       * @return This builder for chaining.
       */
      public Builder setGameId(int value) {
        
        gameId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        onChanged();
        return this;
      }

      private int turnCard_ ;
      /**
       * <code>required uint32 turnCard = 2;</code>
       * @return Whether the turnCard field is set.
       */
      @java.lang.Override
      public boolean hasTurnCard() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required uint32 turnCard = 2;</code>
       * @return The turnCard.
       */
      @java.lang.Override
      public int getTurnCard() {
        return turnCard_;
      }
      /**
       * <code>required uint32 turnCard = 2;</code>
       * @param value The turnCard to set.
       * @return This builder for chaining.
       */
      public Builder setTurnCard(int value) {
        
        turnCard_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 turnCard = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearTurnCard() {
        bitField0_ = (bitField0_ & ~0x00000002);
        turnCard_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:DealTurnCardMessage)
    }

    // @@protoc_insertion_point(class_scope:DealTurnCardMessage)
    private static final de.pokerth.protocol.ProtoBuf.DealTurnCardMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.DealTurnCardMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.DealTurnCardMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<DealTurnCardMessage>
        PARSER = new com.google.protobuf.AbstractParser<DealTurnCardMessage>() {
      @java.lang.Override
      public DealTurnCardMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<DealTurnCardMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.DealTurnCardMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    int getGameId();

    /**
     * <code>required uint32 riverCard = 2;</code>
     * @return Whether the riverCard field is set.
     */
    boolean hasRiverCard();
    /**
     * <code>required uint32 riverCard = 2;</code>
     * @return The riverCard.
     */
    int getRiverCard();
  }
  /**
   * Protobuf type {@code DealRiverCardMessage}
   */
  public static final class DealRiverCardMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:DealRiverCardMessage)
      DealRiverCardMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use DealRiverCardMessage.newBuilder() to construct.
    private DealRiverCardMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private DealRiverCardMessage() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new DealRiverCardMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_DealRiverCardMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_DealRiverCardMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.DealRiverCardMessage.class, de.pokerth.protocol.ProtoBuf.DealRiverCardMessage.Builder.class);
    }

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_ = 0;
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    @java.lang.Override
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    @java.lang.Override
    public int getGameId() {
      return gameId_;
    }

    public static final int RIVERCARD_FIELD_NUMBER = 2;
    private int riverCard_ = 0;
    /**
     * <code>required uint32 riverCard = 2;</code>
     * @return Whether the riverCard field is set.
     */
    @java.lang.Override
    public boolean hasRiverCard() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required uint32 riverCard = 2;</code>
     * @return The riverCard.
     */
    @java.lang.Override
    public int getRiverCard() {
      return riverCard_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

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

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt32(2, riverCard_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, riverCard_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.DealRiverCardMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.DealRiverCardMessage other = (de.pokerth.protocol.ProtoBuf.DealRiverCardMessage) obj;

      if (hasGameId() != other.hasGameId()) return false;
      if (hasGameId()) {
        if (getGameId()
            != other.getGameId()) return false;
      }
      if (hasRiverCard() != other.hasRiverCard()) return false;
      if (hasRiverCard()) {
        if (getRiverCard()
            != other.getRiverCard()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasGameId()) {
        hash = (37 * hash) + GAMEID_FIELD_NUMBER;
        hash = (53 * hash) + getGameId();
      }
      if (hasRiverCard()) {
        hash = (37 * hash) + RIVERCARD_FIELD_NUMBER;
        hash = (53 * hash) + getRiverCard();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.DealRiverCardMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.DealRiverCardMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.DealRiverCardMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.DealRiverCardMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.DealRiverCardMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.DealRiverCardMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.DealRiverCardMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.DealRiverCardMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.DealRiverCardMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.DealRiverCardMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.DealRiverCardMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.DealRiverCardMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.DealRiverCardMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code DealRiverCardMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:DealRiverCardMessage)
        de.pokerth.protocol.ProtoBuf.DealRiverCardMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_DealRiverCardMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_DealRiverCardMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.DealRiverCardMessage.class, de.pokerth.protocol.ProtoBuf.DealRiverCardMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.DealRiverCardMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        gameId_ = 0;
        riverCard_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_DealRiverCardMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.DealRiverCardMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.DealRiverCardMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.DealRiverCardMessage build() {
        de.pokerth.protocol.ProtoBuf.DealRiverCardMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.DealRiverCardMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.DealRiverCardMessage result = new de.pokerth.protocol.ProtoBuf.DealRiverCardMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.DealRiverCardMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.gameId_ = gameId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.riverCard_ = riverCard_;
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.DealRiverCardMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.DealRiverCardMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.DealRiverCardMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.DealRiverCardMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasRiverCard()) {
          setRiverCard(other.getRiverCard());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasGameId()) {
          return false;
        }
        if (!hasRiverCard()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                gameId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                riverCard_ = input.readUInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return Whether the gameId field is set.
       */
      @java.lang.Override
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return The gameId.
       */
      @java.lang.Override
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @param value The gameId to set.
       * @return This builder for chaining.
       */
      public Builder setGameId(int value) {
        
        gameId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        onChanged();
        return this;
      }

      private int riverCard_ ;
      /**
       * <code>required uint32 riverCard = 2;</code>
       * @return Whether the riverCard field is set.
       */
      @java.lang.Override
      public boolean hasRiverCard() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required uint32 riverCard = 2;</code>
       * @return The riverCard.
       */
      @java.lang.Override
      public int getRiverCard() {
        return riverCard_;
      }
      /**
       * <code>required uint32 riverCard = 2;</code>
       * @param value The riverCard to set.
       * @return This builder for chaining.
       */
      public Builder setRiverCard(int value) {
        
        riverCard_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 riverCard = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearRiverCard() {
        bitField0_ = (bitField0_ & ~0x00000002);
        riverCard_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:DealRiverCardMessage)
    }

    // @@protoc_insertion_point(class_scope:DealRiverCardMessage)
    private static final de.pokerth.protocol.ProtoBuf.DealRiverCardMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.DealRiverCardMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.DealRiverCardMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<DealRiverCardMessage>
        PARSER = new com.google.protobuf.AbstractParser<DealRiverCardMessage>() {
      @java.lang.Override
      public DealRiverCardMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<DealRiverCardMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.DealRiverCardMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    int getGameId();

    /**
     * <code>repeated .AllInShowCardsMessage.PlayerAllIn playersAllIn = 2;</code>
     */
    java.util.List<de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn> 
        getPlayersAllInList();
    /**
     * <code>repeated .AllInShowCardsMessage.PlayerAllIn playersAllIn = 2;</code>
     */
    de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn getPlayersAllIn(int index);
    /**
     * <code>repeated .AllInShowCardsMessage.PlayerAllIn playersAllIn = 2;</code>
     */
    int getPlayersAllInCount();
    /**
     * <code>repeated .AllInShowCardsMessage.PlayerAllIn playersAllIn = 2;</code>
     */
    java.util.List<? extends de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllInOrBuilder> 
        getPlayersAllInOrBuilderList();
    /**
     * <code>repeated .AllInShowCardsMessage.PlayerAllIn playersAllIn = 2;</code>
     */
    de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllInOrBuilder getPlayersAllInOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code AllInShowCardsMessage}
   */
  public static final class AllInShowCardsMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:AllInShowCardsMessage)
      AllInShowCardsMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use AllInShowCardsMessage.newBuilder() to construct.
    private AllInShowCardsMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private AllInShowCardsMessage() {
      playersAllIn_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new AllInShowCardsMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_AllInShowCardsMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_AllInShowCardsMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.class, de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.Builder.class);
    }

    public interface PlayerAllInOrBuilder extends
        // @@protoc_insertion_point(interface_extends:AllInShowCardsMessage.PlayerAllIn)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>required uint32 playerId = 1;</code>
       * @return Whether the playerId field is set.
       */
      boolean hasPlayerId();
      /**
       * <code>required uint32 playerId = 1;</code>
       * @return The playerId.
       */
      int getPlayerId();

      /**
       * <code>required uint32 allInCard1 = 2;</code>
       * @return Whether the allInCard1 field is set.
       */
      boolean hasAllInCard1();
      /**
       * <code>required uint32 allInCard1 = 2;</code>
       * @return The allInCard1.
       */
      int getAllInCard1();

      /**
       * <code>required uint32 allInCard2 = 3;</code>
       * @return Whether the allInCard2 field is set.
       */
      boolean hasAllInCard2();
      /**
       * <code>required uint32 allInCard2 = 3;</code>
       * @return The allInCard2.
       */
      int getAllInCard2();
    }
    /**
     * Protobuf type {@code AllInShowCardsMessage.PlayerAllIn}
     */
    public static final class PlayerAllIn extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:AllInShowCardsMessage.PlayerAllIn)
        PlayerAllInOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use PlayerAllIn.newBuilder() to construct.
      private PlayerAllIn(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private PlayerAllIn() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new PlayerAllIn();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_AllInShowCardsMessage_PlayerAllIn_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_AllInShowCardsMessage_PlayerAllIn_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn.class, de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn.Builder.class);
      }

      private int bitField0_;
      public static final int PLAYERID_FIELD_NUMBER = 1;
      private int playerId_ = 0;
      /**
       * <code>required uint32 playerId = 1;</code>
       * @return Whether the playerId field is set.
       */
      @java.lang.Override
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 playerId = 1;</code>
       * @return The playerId.
       */
      @java.lang.Override
      public int getPlayerId() {
        return playerId_;
      }

      public static final int ALLINCARD1_FIELD_NUMBER = 2;
      private int allInCard1_ = 0;
      /**
       * <code>required uint32 allInCard1 = 2;</code>
       * @return Whether the allInCard1 field is set.
       */
      @java.lang.Override
      public boolean hasAllInCard1() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required uint32 allInCard1 = 2;</code>
       * @return The allInCard1.
       */
      @java.lang.Override
      public int getAllInCard1() {
        return allInCard1_;
      }

      public static final int ALLINCARD2_FIELD_NUMBER = 3;
      private int allInCard2_ = 0;
      /**
       * <code>required uint32 allInCard2 = 3;</code>
       * @return Whether the allInCard2 field is set.
       */
      @java.lang.Override
      public boolean hasAllInCard2() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>required uint32 allInCard2 = 3;</code>
       * @return The allInCard2.
       */
      @java.lang.Override
      public int getAllInCard2() {
        return allInCard2_;
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        if (!hasPlayerId()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!hasAllInCard1()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!hasAllInCard2()) {
          memoizedIsInitialized = 0;
          return false;
        }
        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (((bitField0_ & 0x00000001) != 0)) {
          output.writeUInt32(1, playerId_);
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          output.writeUInt32(2, allInCard1_);
        }
        if (((bitField0_ & 0x00000004) != 0)) {
          output.writeUInt32(3, allInCard2_);
        }
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(1, playerId_);
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(2, allInCard1_);
        }
        if (((bitField0_ & 0x00000004) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(3, allInCard2_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn)) {
          return super.equals(obj);
        }
        de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn other = (de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn) obj;

        if (hasPlayerId() != other.hasPlayerId()) return false;
        if (hasPlayerId()) {
          if (getPlayerId()
              != other.getPlayerId()) return false;
        }
        if (hasAllInCard1() != other.hasAllInCard1()) return false;
        if (hasAllInCard1()) {
          if (getAllInCard1()
              != other.getAllInCard1()) return false;
        }
        if (hasAllInCard2() != other.hasAllInCard2()) return false;
        if (hasAllInCard2()) {
          if (getAllInCard2()
              != other.getAllInCard2()) return false;
        }
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasPlayerId()) {
          hash = (37 * hash) + PLAYERID_FIELD_NUMBER;
          hash = (53 * hash) + getPlayerId();
        }
        if (hasAllInCard1()) {
          hash = (37 * hash) + ALLINCARD1_FIELD_NUMBER;
          hash = (53 * hash) + getAllInCard1();
        }
        if (hasAllInCard2()) {
          hash = (37 * hash) + ALLINCARD2_FIELD_NUMBER;
          hash = (53 * hash) + getAllInCard2();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code AllInShowCardsMessage.PlayerAllIn}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:AllInShowCardsMessage.PlayerAllIn)
          de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllInOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return de.pokerth.protocol.ProtoBuf.internal_static_AllInShowCardsMessage_PlayerAllIn_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return de.pokerth.protocol.ProtoBuf.internal_static_AllInShowCardsMessage_PlayerAllIn_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn.class, de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn.Builder.class);
        }

        // Construct using de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          playerId_ = 0;
          allInCard1_ = 0;
          allInCard2_ = 0;
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return de.pokerth.protocol.ProtoBuf.internal_static_AllInShowCardsMessage_PlayerAllIn_descriptor;
        }

        @java.lang.Override
        public de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn getDefaultInstanceForType() {
          return de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn.getDefaultInstance();
        }

        @java.lang.Override
        public de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn build() {
          de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn buildPartial() {
          de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn result = new de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn(this);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }

        private void buildPartial0(de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn result) {
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.playerId_ = playerId_;
            to_bitField0_ |= 0x00000001;
          }
          if (((from_bitField0_ & 0x00000002) != 0)) {
            result.allInCard1_ = allInCard1_;
            to_bitField0_ |= 0x00000002;
          }
          if (((from_bitField0_ & 0x00000004) != 0)) {
            result.allInCard2_ = allInCard2_;
            to_bitField0_ |= 0x00000004;
          }
          result.bitField0_ |= to_bitField0_;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn) {
            return mergeFrom((de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn other) {
          if (other == de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn.getDefaultInstance()) return this;
          if (other.hasPlayerId()) {
            setPlayerId(other.getPlayerId());
          }
          if (other.hasAllInCard1()) {
            setAllInCard1(other.getAllInCard1());
          }
          if (other.hasAllInCard2()) {
            setAllInCard2(other.getAllInCard2());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          if (!hasPlayerId()) {
            return false;
          }
          if (!hasAllInCard1()) {
            return false;
          }
          if (!hasAllInCard2()) {
            return false;
          }
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 8: {
                  playerId_ = input.readUInt32();
                  bitField0_ |= 0x00000001;
                  break;
                } // case 8
                case 16: {
                  allInCard1_ = input.readUInt32();
                  bitField0_ |= 0x00000002;
                  break;
                } // case 16
                case 24: {
                  allInCard2_ = input.readUInt32();
                  bitField0_ |= 0x00000004;
                  break;
                } // case 24
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        private int bitField0_;

        private int playerId_ ;
        /**
         * <code>required uint32 playerId = 1;</code>
         * @return Whether the playerId field is set.
         */
        @java.lang.Override
        public boolean hasPlayerId() {
          return ((bitField0_ & 0x00000001) != 0);
        }
        /**
         * <code>required uint32 playerId = 1;</code>
         * @return The playerId.
         */
        @java.lang.Override
        public int getPlayerId() {
          return playerId_;
        }
        /**
         * <code>required uint32 playerId = 1;</code>
         * @param value The playerId to set.
         * @return This builder for chaining.
         */
        public Builder setPlayerId(int value) {
          
          playerId_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <code>required uint32 playerId = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearPlayerId() {
          bitField0_ = (bitField0_ & ~0x00000001);
          playerId_ = 0;
          onChanged();
          return this;
        }

        private int allInCard1_ ;
        /**
         * <code>required uint32 allInCard1 = 2;</code>
         * @return Whether the allInCard1 field is set.
         */
        @java.lang.Override
        public boolean hasAllInCard1() {
          return ((bitField0_ & 0x00000002) != 0);
        }
        /**
         * <code>required uint32 allInCard1 = 2;</code>
         * @return The allInCard1.
         */
        @java.lang.Override
        public int getAllInCard1() {
          return allInCard1_;
        }
        /**
         * <code>required uint32 allInCard1 = 2;</code>
         * @param value The allInCard1 to set.
         * @return This builder for chaining.
         */
        public Builder setAllInCard1(int value) {
          
          allInCard1_ = value;
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        /**
         * <code>required uint32 allInCard1 = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearAllInCard1() {
          bitField0_ = (bitField0_ & ~0x00000002);
          allInCard1_ = 0;
          onChanged();
          return this;
        }

        private int allInCard2_ ;
        /**
         * <code>required uint32 allInCard2 = 3;</code>
         * @return Whether the allInCard2 field is set.
         */
        @java.lang.Override
        public boolean hasAllInCard2() {
          return ((bitField0_ & 0x00000004) != 0);
        }
        /**
         * <code>required uint32 allInCard2 = 3;</code>
         * @return The allInCard2.
         */
        @java.lang.Override
        public int getAllInCard2() {
          return allInCard2_;
        }
        /**
         * <code>required uint32 allInCard2 = 3;</code>
         * @param value The allInCard2 to set.
         * @return This builder for chaining.
         */
        public Builder setAllInCard2(int value) {
          
          allInCard2_ = value;
          bitField0_ |= 0x00000004;
          onChanged();
          return this;
        }
        /**
         * <code>required uint32 allInCard2 = 3;</code>
         * @return This builder for chaining.
         */
        public Builder clearAllInCard2() {
          bitField0_ = (bitField0_ & ~0x00000004);
          allInCard2_ = 0;
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:AllInShowCardsMessage.PlayerAllIn)
      }

      // @@protoc_insertion_point(class_scope:AllInShowCardsMessage.PlayerAllIn)
      private static final de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn();
      }

      public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      @java.lang.Deprecated public static final com.google.protobuf.Parser<PlayerAllIn>
          PARSER = new com.google.protobuf.AbstractParser<PlayerAllIn>() {
        @java.lang.Override
        public PlayerAllIn parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

      public static com.google.protobuf.Parser<PlayerAllIn> parser() {
        return PARSER;
      }

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

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_ = 0;
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    @java.lang.Override
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    @java.lang.Override
    public int getGameId() {
      return gameId_;
    }

    public static final int PLAYERSALLIN_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private java.util.List<de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn> playersAllIn_;
    /**
     * <code>repeated .AllInShowCardsMessage.PlayerAllIn playersAllIn = 2;</code>
     */
    @java.lang.Override
    public java.util.List<de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn> getPlayersAllInList() {
      return playersAllIn_;
    }
    /**
     * <code>repeated .AllInShowCardsMessage.PlayerAllIn playersAllIn = 2;</code>
     */
    @java.lang.Override
    public java.util.List<? extends de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllInOrBuilder> 
        getPlayersAllInOrBuilderList() {
      return playersAllIn_;
    }
    /**
     * <code>repeated .AllInShowCardsMessage.PlayerAllIn playersAllIn = 2;</code>
     */
    @java.lang.Override
    public int getPlayersAllInCount() {
      return playersAllIn_.size();
    }
    /**
     * <code>repeated .AllInShowCardsMessage.PlayerAllIn playersAllIn = 2;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn getPlayersAllIn(int index) {
      return playersAllIn_.get(index);
    }
    /**
     * <code>repeated .AllInShowCardsMessage.PlayerAllIn playersAllIn = 2;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllInOrBuilder getPlayersAllInOrBuilder(
        int index) {
      return playersAllIn_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      for (int i = 0; i < getPlayersAllInCount(); i++) {
        if (!getPlayersAllIn(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, gameId_);
      }
      for (int i = 0; i < playersAllIn_.size(); i++) {
        output.writeMessage(2, playersAllIn_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      for (int i = 0; i < playersAllIn_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, playersAllIn_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage other = (de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage) obj;

      if (hasGameId() != other.hasGameId()) return false;
      if (hasGameId()) {
        if (getGameId()
            != other.getGameId()) return false;
      }
      if (!getPlayersAllInList()
          .equals(other.getPlayersAllInList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasGameId()) {
        hash = (37 * hash) + GAMEID_FIELD_NUMBER;
        hash = (53 * hash) + getGameId();
      }
      if (getPlayersAllInCount() > 0) {
        hash = (37 * hash) + PLAYERSALLIN_FIELD_NUMBER;
        hash = (53 * hash) + getPlayersAllInList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code AllInShowCardsMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:AllInShowCardsMessage)
        de.pokerth.protocol.ProtoBuf.AllInShowCardsMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_AllInShowCardsMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_AllInShowCardsMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.class, de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        gameId_ = 0;
        if (playersAllInBuilder_ == null) {
          playersAllIn_ = java.util.Collections.emptyList();
        } else {
          playersAllIn_ = null;
          playersAllInBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_AllInShowCardsMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage build() {
        de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage result = new de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage result) {
        if (playersAllInBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0)) {
            playersAllIn_ = java.util.Collections.unmodifiableList(playersAllIn_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.playersAllIn_ = playersAllIn_;
        } else {
          result.playersAllIn_ = playersAllInBuilder_.build();
        }
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.gameId_ = gameId_;
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (playersAllInBuilder_ == null) {
          if (!other.playersAllIn_.isEmpty()) {
            if (playersAllIn_.isEmpty()) {
              playersAllIn_ = other.playersAllIn_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensurePlayersAllInIsMutable();
              playersAllIn_.addAll(other.playersAllIn_);
            }
            onChanged();
          }
        } else {
          if (!other.playersAllIn_.isEmpty()) {
            if (playersAllInBuilder_.isEmpty()) {
              playersAllInBuilder_.dispose();
              playersAllInBuilder_ = null;
              playersAllIn_ = other.playersAllIn_;
              bitField0_ = (bitField0_ & ~0x00000002);
              playersAllInBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getPlayersAllInFieldBuilder() : null;
            } else {
              playersAllInBuilder_.addAllMessages(other.playersAllIn_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasGameId()) {
          return false;
        }
        for (int i = 0; i < getPlayersAllInCount(); i++) {
          if (!getPlayersAllIn(i).isInitialized()) {
            return false;
          }
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                gameId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn m =
                    input.readMessage(
                        de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn.PARSER,
                        extensionRegistry);
                if (playersAllInBuilder_ == null) {
                  ensurePlayersAllInIsMutable();
                  playersAllIn_.add(m);
                } else {
                  playersAllInBuilder_.addMessage(m);
                }
                break;
              } // case 18
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return Whether the gameId field is set.
       */
      @java.lang.Override
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return The gameId.
       */
      @java.lang.Override
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @param value The gameId to set.
       * @return This builder for chaining.
       */
      public Builder setGameId(int value) {
        
        gameId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        onChanged();
        return this;
      }

      private java.util.List<de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn> playersAllIn_ =
        java.util.Collections.emptyList();
      private void ensurePlayersAllInIsMutable() {
        if (!((bitField0_ & 0x00000002) != 0)) {
          playersAllIn_ = new java.util.ArrayList<de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn>(playersAllIn_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn, de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn.Builder, de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllInOrBuilder> playersAllInBuilder_;

      /**
       * <code>repeated .AllInShowCardsMessage.PlayerAllIn playersAllIn = 2;</code>
       */
      public java.util.List<de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn> getPlayersAllInList() {
        if (playersAllInBuilder_ == null) {
          return java.util.Collections.unmodifiableList(playersAllIn_);
        } else {
          return playersAllInBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .AllInShowCardsMessage.PlayerAllIn playersAllIn = 2;</code>
       */
      public int getPlayersAllInCount() {
        if (playersAllInBuilder_ == null) {
          return playersAllIn_.size();
        } else {
          return playersAllInBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .AllInShowCardsMessage.PlayerAllIn playersAllIn = 2;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn getPlayersAllIn(int index) {
        if (playersAllInBuilder_ == null) {
          return playersAllIn_.get(index);
        } else {
          return playersAllInBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .AllInShowCardsMessage.PlayerAllIn playersAllIn = 2;</code>
       */
      public Builder setPlayersAllIn(
          int index, de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn value) {
        if (playersAllInBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePlayersAllInIsMutable();
          playersAllIn_.set(index, value);
          onChanged();
        } else {
          playersAllInBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .AllInShowCardsMessage.PlayerAllIn playersAllIn = 2;</code>
       */
      public Builder setPlayersAllIn(
          int index, de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn.Builder builderForValue) {
        if (playersAllInBuilder_ == null) {
          ensurePlayersAllInIsMutable();
          playersAllIn_.set(index, builderForValue.build());
          onChanged();
        } else {
          playersAllInBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .AllInShowCardsMessage.PlayerAllIn playersAllIn = 2;</code>
       */
      public Builder addPlayersAllIn(de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn value) {
        if (playersAllInBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePlayersAllInIsMutable();
          playersAllIn_.add(value);
          onChanged();
        } else {
          playersAllInBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .AllInShowCardsMessage.PlayerAllIn playersAllIn = 2;</code>
       */
      public Builder addPlayersAllIn(
          int index, de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn value) {
        if (playersAllInBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePlayersAllInIsMutable();
          playersAllIn_.add(index, value);
          onChanged();
        } else {
          playersAllInBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .AllInShowCardsMessage.PlayerAllIn playersAllIn = 2;</code>
       */
      public Builder addPlayersAllIn(
          de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn.Builder builderForValue) {
        if (playersAllInBuilder_ == null) {
          ensurePlayersAllInIsMutable();
          playersAllIn_.add(builderForValue.build());
          onChanged();
        } else {
          playersAllInBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .AllInShowCardsMessage.PlayerAllIn playersAllIn = 2;</code>
       */
      public Builder addPlayersAllIn(
          int index, de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn.Builder builderForValue) {
        if (playersAllInBuilder_ == null) {
          ensurePlayersAllInIsMutable();
          playersAllIn_.add(index, builderForValue.build());
          onChanged();
        } else {
          playersAllInBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .AllInShowCardsMessage.PlayerAllIn playersAllIn = 2;</code>
       */
      public Builder addAllPlayersAllIn(
          java.lang.Iterable<? extends de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn> values) {
        if (playersAllInBuilder_ == null) {
          ensurePlayersAllInIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, playersAllIn_);
          onChanged();
        } else {
          playersAllInBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .AllInShowCardsMessage.PlayerAllIn playersAllIn = 2;</code>
       */
      public Builder clearPlayersAllIn() {
        if (playersAllInBuilder_ == null) {
          playersAllIn_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          playersAllInBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .AllInShowCardsMessage.PlayerAllIn playersAllIn = 2;</code>
       */
      public Builder removePlayersAllIn(int index) {
        if (playersAllInBuilder_ == null) {
          ensurePlayersAllInIsMutable();
          playersAllIn_.remove(index);
          onChanged();
        } else {
          playersAllInBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .AllInShowCardsMessage.PlayerAllIn playersAllIn = 2;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn.Builder getPlayersAllInBuilder(
          int index) {
        return getPlayersAllInFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .AllInShowCardsMessage.PlayerAllIn playersAllIn = 2;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllInOrBuilder getPlayersAllInOrBuilder(
          int index) {
        if (playersAllInBuilder_ == null) {
          return playersAllIn_.get(index);  } else {
          return playersAllInBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .AllInShowCardsMessage.PlayerAllIn playersAllIn = 2;</code>
       */
      public java.util.List<? extends de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllInOrBuilder> 
           getPlayersAllInOrBuilderList() {
        if (playersAllInBuilder_ != null) {
          return playersAllInBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(playersAllIn_);
        }
      }
      /**
       * <code>repeated .AllInShowCardsMessage.PlayerAllIn playersAllIn = 2;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn.Builder addPlayersAllInBuilder() {
        return getPlayersAllInFieldBuilder().addBuilder(
            de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn.getDefaultInstance());
      }
      /**
       * <code>repeated .AllInShowCardsMessage.PlayerAllIn playersAllIn = 2;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn.Builder addPlayersAllInBuilder(
          int index) {
        return getPlayersAllInFieldBuilder().addBuilder(
            index, de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn.getDefaultInstance());
      }
      /**
       * <code>repeated .AllInShowCardsMessage.PlayerAllIn playersAllIn = 2;</code>
       */
      public java.util.List<de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn.Builder> 
           getPlayersAllInBuilderList() {
        return getPlayersAllInFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn, de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn.Builder, de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllInOrBuilder> 
          getPlayersAllInFieldBuilder() {
        if (playersAllInBuilder_ == null) {
          playersAllInBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn, de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn.Builder, de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllInOrBuilder>(
                  playersAllIn_,
                  ((bitField0_ & 0x00000002) != 0),
                  getParentForChildren(),
                  isClean());
          playersAllIn_ = null;
        }
        return playersAllInBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:AllInShowCardsMessage)
    }

    // @@protoc_insertion_point(class_scope:AllInShowCardsMessage)
    private static final de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<AllInShowCardsMessage>
        PARSER = new com.google.protobuf.AbstractParser<AllInShowCardsMessage>() {
      @java.lang.Override
      public AllInShowCardsMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<AllInShowCardsMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    int getGameId();

    /**
     * <code>repeated .PlayerResult playerResults = 2;</code>
     */
    java.util.List<de.pokerth.protocol.ProtoBuf.PlayerResult> 
        getPlayerResultsList();
    /**
     * <code>repeated .PlayerResult playerResults = 2;</code>
     */
    de.pokerth.protocol.ProtoBuf.PlayerResult getPlayerResults(int index);
    /**
     * <code>repeated .PlayerResult playerResults = 2;</code>
     */
    int getPlayerResultsCount();
    /**
     * <code>repeated .PlayerResult playerResults = 2;</code>
     */
    java.util.List<? extends de.pokerth.protocol.ProtoBuf.PlayerResultOrBuilder> 
        getPlayerResultsOrBuilderList();
    /**
     * <code>repeated .PlayerResult playerResults = 2;</code>
     */
    de.pokerth.protocol.ProtoBuf.PlayerResultOrBuilder getPlayerResultsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code EndOfHandShowCardsMessage}
   */
  public static final class EndOfHandShowCardsMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:EndOfHandShowCardsMessage)
      EndOfHandShowCardsMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use EndOfHandShowCardsMessage.newBuilder() to construct.
    private EndOfHandShowCardsMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private EndOfHandShowCardsMessage() {
      playerResults_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new EndOfHandShowCardsMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_EndOfHandShowCardsMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_EndOfHandShowCardsMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage.class, de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage.Builder.class);
    }

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_ = 0;
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    @java.lang.Override
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    @java.lang.Override
    public int getGameId() {
      return gameId_;
    }

    public static final int PLAYERRESULTS_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private java.util.List<de.pokerth.protocol.ProtoBuf.PlayerResult> playerResults_;
    /**
     * <code>repeated .PlayerResult playerResults = 2;</code>
     */
    @java.lang.Override
    public java.util.List<de.pokerth.protocol.ProtoBuf.PlayerResult> getPlayerResultsList() {
      return playerResults_;
    }
    /**
     * <code>repeated .PlayerResult playerResults = 2;</code>
     */
    @java.lang.Override
    public java.util.List<? extends de.pokerth.protocol.ProtoBuf.PlayerResultOrBuilder> 
        getPlayerResultsOrBuilderList() {
      return playerResults_;
    }
    /**
     * <code>repeated .PlayerResult playerResults = 2;</code>
     */
    @java.lang.Override
    public int getPlayerResultsCount() {
      return playerResults_.size();
    }
    /**
     * <code>repeated .PlayerResult playerResults = 2;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.PlayerResult getPlayerResults(int index) {
      return playerResults_.get(index);
    }
    /**
     * <code>repeated .PlayerResult playerResults = 2;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.PlayerResultOrBuilder getPlayerResultsOrBuilder(
        int index) {
      return playerResults_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      for (int i = 0; i < getPlayerResultsCount(); i++) {
        if (!getPlayerResults(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, gameId_);
      }
      for (int i = 0; i < playerResults_.size(); i++) {
        output.writeMessage(2, playerResults_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      for (int i = 0; i < playerResults_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, playerResults_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage other = (de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage) obj;

      if (hasGameId() != other.hasGameId()) return false;
      if (hasGameId()) {
        if (getGameId()
            != other.getGameId()) return false;
      }
      if (!getPlayerResultsList()
          .equals(other.getPlayerResultsList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasGameId()) {
        hash = (37 * hash) + GAMEID_FIELD_NUMBER;
        hash = (53 * hash) + getGameId();
      }
      if (getPlayerResultsCount() > 0) {
        hash = (37 * hash) + PLAYERRESULTS_FIELD_NUMBER;
        hash = (53 * hash) + getPlayerResultsList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code EndOfHandShowCardsMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:EndOfHandShowCardsMessage)
        de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_EndOfHandShowCardsMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_EndOfHandShowCardsMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage.class, de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        gameId_ = 0;
        if (playerResultsBuilder_ == null) {
          playerResults_ = java.util.Collections.emptyList();
        } else {
          playerResults_ = null;
          playerResultsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_EndOfHandShowCardsMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage build() {
        de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage result = new de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage result) {
        if (playerResultsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0)) {
            playerResults_ = java.util.Collections.unmodifiableList(playerResults_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.playerResults_ = playerResults_;
        } else {
          result.playerResults_ = playerResultsBuilder_.build();
        }
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.gameId_ = gameId_;
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (playerResultsBuilder_ == null) {
          if (!other.playerResults_.isEmpty()) {
            if (playerResults_.isEmpty()) {
              playerResults_ = other.playerResults_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensurePlayerResultsIsMutable();
              playerResults_.addAll(other.playerResults_);
            }
            onChanged();
          }
        } else {
          if (!other.playerResults_.isEmpty()) {
            if (playerResultsBuilder_.isEmpty()) {
              playerResultsBuilder_.dispose();
              playerResultsBuilder_ = null;
              playerResults_ = other.playerResults_;
              bitField0_ = (bitField0_ & ~0x00000002);
              playerResultsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getPlayerResultsFieldBuilder() : null;
            } else {
              playerResultsBuilder_.addAllMessages(other.playerResults_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasGameId()) {
          return false;
        }
        for (int i = 0; i < getPlayerResultsCount(); i++) {
          if (!getPlayerResults(i).isInitialized()) {
            return false;
          }
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                gameId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                de.pokerth.protocol.ProtoBuf.PlayerResult m =
                    input.readMessage(
                        de.pokerth.protocol.ProtoBuf.PlayerResult.PARSER,
                        extensionRegistry);
                if (playerResultsBuilder_ == null) {
                  ensurePlayerResultsIsMutable();
                  playerResults_.add(m);
                } else {
                  playerResultsBuilder_.addMessage(m);
                }
                break;
              } // case 18
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return Whether the gameId field is set.
       */
      @java.lang.Override
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return The gameId.
       */
      @java.lang.Override
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @param value The gameId to set.
       * @return This builder for chaining.
       */
      public Builder setGameId(int value) {
        
        gameId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        onChanged();
        return this;
      }

      private java.util.List<de.pokerth.protocol.ProtoBuf.PlayerResult> playerResults_ =
        java.util.Collections.emptyList();
      private void ensurePlayerResultsIsMutable() {
        if (!((bitField0_ & 0x00000002) != 0)) {
          playerResults_ = new java.util.ArrayList<de.pokerth.protocol.ProtoBuf.PlayerResult>(playerResults_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.PlayerResult, de.pokerth.protocol.ProtoBuf.PlayerResult.Builder, de.pokerth.protocol.ProtoBuf.PlayerResultOrBuilder> playerResultsBuilder_;

      /**
       * <code>repeated .PlayerResult playerResults = 2;</code>
       */
      public java.util.List<de.pokerth.protocol.ProtoBuf.PlayerResult> getPlayerResultsList() {
        if (playerResultsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(playerResults_);
        } else {
          return playerResultsBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .PlayerResult playerResults = 2;</code>
       */
      public int getPlayerResultsCount() {
        if (playerResultsBuilder_ == null) {
          return playerResults_.size();
        } else {
          return playerResultsBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .PlayerResult playerResults = 2;</code>
       */
      public de.pokerth.protocol.ProtoBuf.PlayerResult getPlayerResults(int index) {
        if (playerResultsBuilder_ == null) {
          return playerResults_.get(index);
        } else {
          return playerResultsBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .PlayerResult playerResults = 2;</code>
       */
      public Builder setPlayerResults(
          int index, de.pokerth.protocol.ProtoBuf.PlayerResult value) {
        if (playerResultsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePlayerResultsIsMutable();
          playerResults_.set(index, value);
          onChanged();
        } else {
          playerResultsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .PlayerResult playerResults = 2;</code>
       */
      public Builder setPlayerResults(
          int index, de.pokerth.protocol.ProtoBuf.PlayerResult.Builder builderForValue) {
        if (playerResultsBuilder_ == null) {
          ensurePlayerResultsIsMutable();
          playerResults_.set(index, builderForValue.build());
          onChanged();
        } else {
          playerResultsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .PlayerResult playerResults = 2;</code>
       */
      public Builder addPlayerResults(de.pokerth.protocol.ProtoBuf.PlayerResult value) {
        if (playerResultsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePlayerResultsIsMutable();
          playerResults_.add(value);
          onChanged();
        } else {
          playerResultsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .PlayerResult playerResults = 2;</code>
       */
      public Builder addPlayerResults(
          int index, de.pokerth.protocol.ProtoBuf.PlayerResult value) {
        if (playerResultsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePlayerResultsIsMutable();
          playerResults_.add(index, value);
          onChanged();
        } else {
          playerResultsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .PlayerResult playerResults = 2;</code>
       */
      public Builder addPlayerResults(
          de.pokerth.protocol.ProtoBuf.PlayerResult.Builder builderForValue) {
        if (playerResultsBuilder_ == null) {
          ensurePlayerResultsIsMutable();
          playerResults_.add(builderForValue.build());
          onChanged();
        } else {
          playerResultsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .PlayerResult playerResults = 2;</code>
       */
      public Builder addPlayerResults(
          int index, de.pokerth.protocol.ProtoBuf.PlayerResult.Builder builderForValue) {
        if (playerResultsBuilder_ == null) {
          ensurePlayerResultsIsMutable();
          playerResults_.add(index, builderForValue.build());
          onChanged();
        } else {
          playerResultsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .PlayerResult playerResults = 2;</code>
       */
      public Builder addAllPlayerResults(
          java.lang.Iterable<? extends de.pokerth.protocol.ProtoBuf.PlayerResult> values) {
        if (playerResultsBuilder_ == null) {
          ensurePlayerResultsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, playerResults_);
          onChanged();
        } else {
          playerResultsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .PlayerResult playerResults = 2;</code>
       */
      public Builder clearPlayerResults() {
        if (playerResultsBuilder_ == null) {
          playerResults_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          playerResultsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .PlayerResult playerResults = 2;</code>
       */
      public Builder removePlayerResults(int index) {
        if (playerResultsBuilder_ == null) {
          ensurePlayerResultsIsMutable();
          playerResults_.remove(index);
          onChanged();
        } else {
          playerResultsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .PlayerResult playerResults = 2;</code>
       */
      public de.pokerth.protocol.ProtoBuf.PlayerResult.Builder getPlayerResultsBuilder(
          int index) {
        return getPlayerResultsFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .PlayerResult playerResults = 2;</code>
       */
      public de.pokerth.protocol.ProtoBuf.PlayerResultOrBuilder getPlayerResultsOrBuilder(
          int index) {
        if (playerResultsBuilder_ == null) {
          return playerResults_.get(index);  } else {
          return playerResultsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .PlayerResult playerResults = 2;</code>
       */
      public java.util.List<? extends de.pokerth.protocol.ProtoBuf.PlayerResultOrBuilder> 
           getPlayerResultsOrBuilderList() {
        if (playerResultsBuilder_ != null) {
          return playerResultsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(playerResults_);
        }
      }
      /**
       * <code>repeated .PlayerResult playerResults = 2;</code>
       */
      public de.pokerth.protocol.ProtoBuf.PlayerResult.Builder addPlayerResultsBuilder() {
        return getPlayerResultsFieldBuilder().addBuilder(
            de.pokerth.protocol.ProtoBuf.PlayerResult.getDefaultInstance());
      }
      /**
       * <code>repeated .PlayerResult playerResults = 2;</code>
       */
      public de.pokerth.protocol.ProtoBuf.PlayerResult.Builder addPlayerResultsBuilder(
          int index) {
        return getPlayerResultsFieldBuilder().addBuilder(
            index, de.pokerth.protocol.ProtoBuf.PlayerResult.getDefaultInstance());
      }
      /**
       * <code>repeated .PlayerResult playerResults = 2;</code>
       */
      public java.util.List<de.pokerth.protocol.ProtoBuf.PlayerResult.Builder> 
           getPlayerResultsBuilderList() {
        return getPlayerResultsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.PlayerResult, de.pokerth.protocol.ProtoBuf.PlayerResult.Builder, de.pokerth.protocol.ProtoBuf.PlayerResultOrBuilder> 
          getPlayerResultsFieldBuilder() {
        if (playerResultsBuilder_ == null) {
          playerResultsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.PlayerResult, de.pokerth.protocol.ProtoBuf.PlayerResult.Builder, de.pokerth.protocol.ProtoBuf.PlayerResultOrBuilder>(
                  playerResults_,
                  ((bitField0_ & 0x00000002) != 0),
                  getParentForChildren(),
                  isClean());
          playerResults_ = null;
        }
        return playerResultsBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:EndOfHandShowCardsMessage)
    }

    // @@protoc_insertion_point(class_scope:EndOfHandShowCardsMessage)
    private static final de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<EndOfHandShowCardsMessage>
        PARSER = new com.google.protobuf.AbstractParser<EndOfHandShowCardsMessage>() {
      @java.lang.Override
      public EndOfHandShowCardsMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<EndOfHandShowCardsMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    int getGameId();

    /**
     * <code>required uint32 playerId = 2;</code>
     * @return Whether the playerId field is set.
     */
    boolean hasPlayerId();
    /**
     * <code>required uint32 playerId = 2;</code>
     * @return The playerId.
     */
    int getPlayerId();

    /**
     * <code>required uint32 moneyWon = 3;</code>
     * @return Whether the moneyWon field is set.
     */
    boolean hasMoneyWon();
    /**
     * <code>required uint32 moneyWon = 3;</code>
     * @return The moneyWon.
     */
    int getMoneyWon();

    /**
     * <code>required uint32 playerMoney = 4;</code>
     * @return Whether the playerMoney field is set.
     */
    boolean hasPlayerMoney();
    /**
     * <code>required uint32 playerMoney = 4;</code>
     * @return The playerMoney.
     */
    int getPlayerMoney();
  }
  /**
   * Protobuf type {@code EndOfHandHideCardsMessage}
   */
  public static final class EndOfHandHideCardsMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:EndOfHandHideCardsMessage)
      EndOfHandHideCardsMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use EndOfHandHideCardsMessage.newBuilder() to construct.
    private EndOfHandHideCardsMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private EndOfHandHideCardsMessage() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new EndOfHandHideCardsMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_EndOfHandHideCardsMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_EndOfHandHideCardsMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage.class, de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage.Builder.class);
    }

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_ = 0;
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    @java.lang.Override
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    @java.lang.Override
    public int getGameId() {
      return gameId_;
    }

    public static final int PLAYERID_FIELD_NUMBER = 2;
    private int playerId_ = 0;
    /**
     * <code>required uint32 playerId = 2;</code>
     * @return Whether the playerId field is set.
     */
    @java.lang.Override
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required uint32 playerId = 2;</code>
     * @return The playerId.
     */
    @java.lang.Override
    public int getPlayerId() {
      return playerId_;
    }

    public static final int MONEYWON_FIELD_NUMBER = 3;
    private int moneyWon_ = 0;
    /**
     * <code>required uint32 moneyWon = 3;</code>
     * @return Whether the moneyWon field is set.
     */
    @java.lang.Override
    public boolean hasMoneyWon() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>required uint32 moneyWon = 3;</code>
     * @return The moneyWon.
     */
    @java.lang.Override
    public int getMoneyWon() {
      return moneyWon_;
    }

    public static final int PLAYERMONEY_FIELD_NUMBER = 4;
    private int playerMoney_ = 0;
    /**
     * <code>required uint32 playerMoney = 4;</code>
     * @return Whether the playerMoney field is set.
     */
    @java.lang.Override
    public boolean hasPlayerMoney() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>required uint32 playerMoney = 4;</code>
     * @return The playerMoney.
     */
    @java.lang.Override
    public int getPlayerMoney() {
      return playerMoney_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasMoneyWon()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerMoney()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt32(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeUInt32(3, moneyWon_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeUInt32(4, playerMoney_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, moneyWon_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, playerMoney_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage other = (de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage) obj;

      if (hasGameId() != other.hasGameId()) return false;
      if (hasGameId()) {
        if (getGameId()
            != other.getGameId()) return false;
      }
      if (hasPlayerId() != other.hasPlayerId()) return false;
      if (hasPlayerId()) {
        if (getPlayerId()
            != other.getPlayerId()) return false;
      }
      if (hasMoneyWon() != other.hasMoneyWon()) return false;
      if (hasMoneyWon()) {
        if (getMoneyWon()
            != other.getMoneyWon()) return false;
      }
      if (hasPlayerMoney() != other.hasPlayerMoney()) return false;
      if (hasPlayerMoney()) {
        if (getPlayerMoney()
            != other.getPlayerMoney()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasGameId()) {
        hash = (37 * hash) + GAMEID_FIELD_NUMBER;
        hash = (53 * hash) + getGameId();
      }
      if (hasPlayerId()) {
        hash = (37 * hash) + PLAYERID_FIELD_NUMBER;
        hash = (53 * hash) + getPlayerId();
      }
      if (hasMoneyWon()) {
        hash = (37 * hash) + MONEYWON_FIELD_NUMBER;
        hash = (53 * hash) + getMoneyWon();
      }
      if (hasPlayerMoney()) {
        hash = (37 * hash) + PLAYERMONEY_FIELD_NUMBER;
        hash = (53 * hash) + getPlayerMoney();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code EndOfHandHideCardsMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:EndOfHandHideCardsMessage)
        de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_EndOfHandHideCardsMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_EndOfHandHideCardsMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage.class, de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        gameId_ = 0;
        playerId_ = 0;
        moneyWon_ = 0;
        playerMoney_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_EndOfHandHideCardsMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage build() {
        de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage result = new de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.gameId_ = gameId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.playerId_ = playerId_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.moneyWon_ = moneyWon_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.playerMoney_ = playerMoney_;
          to_bitField0_ |= 0x00000008;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasMoneyWon()) {
          setMoneyWon(other.getMoneyWon());
        }
        if (other.hasPlayerMoney()) {
          setPlayerMoney(other.getPlayerMoney());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasGameId()) {
          return false;
        }
        if (!hasPlayerId()) {
          return false;
        }
        if (!hasMoneyWon()) {
          return false;
        }
        if (!hasPlayerMoney()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                gameId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                playerId_ = input.readUInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                moneyWon_ = input.readUInt32();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 32: {
                playerMoney_ = input.readUInt32();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return Whether the gameId field is set.
       */
      @java.lang.Override
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return The gameId.
       */
      @java.lang.Override
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @param value The gameId to set.
       * @return This builder for chaining.
       */
      public Builder setGameId(int value) {
        
        gameId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        onChanged();
        return this;
      }

      private int playerId_ ;
      /**
       * <code>required uint32 playerId = 2;</code>
       * @return Whether the playerId field is set.
       */
      @java.lang.Override
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       * @return The playerId.
       */
      @java.lang.Override
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       * @param value The playerId to set.
       * @return This builder for chaining.
       */
      public Builder setPlayerId(int value) {
        
        playerId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private int moneyWon_ ;
      /**
       * <code>required uint32 moneyWon = 3;</code>
       * @return Whether the moneyWon field is set.
       */
      @java.lang.Override
      public boolean hasMoneyWon() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>required uint32 moneyWon = 3;</code>
       * @return The moneyWon.
       */
      @java.lang.Override
      public int getMoneyWon() {
        return moneyWon_;
      }
      /**
       * <code>required uint32 moneyWon = 3;</code>
       * @param value The moneyWon to set.
       * @return This builder for chaining.
       */
      public Builder setMoneyWon(int value) {
        
        moneyWon_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 moneyWon = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearMoneyWon() {
        bitField0_ = (bitField0_ & ~0x00000004);
        moneyWon_ = 0;
        onChanged();
        return this;
      }

      private int playerMoney_ ;
      /**
       * <code>required uint32 playerMoney = 4;</code>
       * @return Whether the playerMoney field is set.
       */
      @java.lang.Override
      public boolean hasPlayerMoney() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>required uint32 playerMoney = 4;</code>
       * @return The playerMoney.
       */
      @java.lang.Override
      public int getPlayerMoney() {
        return playerMoney_;
      }
      /**
       * <code>required uint32 playerMoney = 4;</code>
       * @param value The playerMoney to set.
       * @return This builder for chaining.
       */
      public Builder setPlayerMoney(int value) {
        
        playerMoney_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 playerMoney = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearPlayerMoney() {
        bitField0_ = (bitField0_ & ~0x00000008);
        playerMoney_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:EndOfHandHideCardsMessage)
    }

    // @@protoc_insertion_point(class_scope:EndOfHandHideCardsMessage)
    private static final de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<EndOfHandHideCardsMessage>
        PARSER = new com.google.protobuf.AbstractParser<EndOfHandHideCardsMessage>() {
      @java.lang.Override
      public EndOfHandHideCardsMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<EndOfHandHideCardsMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ShowMyCardsRequestMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ShowMyCardsRequestMessage)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code ShowMyCardsRequestMessage}
   */
  public static final class ShowMyCardsRequestMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ShowMyCardsRequestMessage)
      ShowMyCardsRequestMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ShowMyCardsRequestMessage.newBuilder() to construct.
    private ShowMyCardsRequestMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ShowMyCardsRequestMessage() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ShowMyCardsRequestMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_ShowMyCardsRequestMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_ShowMyCardsRequestMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage.class, de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage.Builder.class);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

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

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

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

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage other = (de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage) obj;

      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code ShowMyCardsRequestMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ShowMyCardsRequestMessage)
        de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_ShowMyCardsRequestMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_ShowMyCardsRequestMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage.class, de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_ShowMyCardsRequestMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage build() {
        de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage result = new de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:ShowMyCardsRequestMessage)
    }

    // @@protoc_insertion_point(class_scope:ShowMyCardsRequestMessage)
    private static final de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<ShowMyCardsRequestMessage>
        PARSER = new com.google.protobuf.AbstractParser<ShowMyCardsRequestMessage>() {
      @java.lang.Override
      public ShowMyCardsRequestMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<ShowMyCardsRequestMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required .PlayerResult playerResult = 1;</code>
     * @return Whether the playerResult field is set.
     */
    boolean hasPlayerResult();
    /**
     * <code>required .PlayerResult playerResult = 1;</code>
     * @return The playerResult.
     */
    de.pokerth.protocol.ProtoBuf.PlayerResult getPlayerResult();
    /**
     * <code>required .PlayerResult playerResult = 1;</code>
     */
    de.pokerth.protocol.ProtoBuf.PlayerResultOrBuilder getPlayerResultOrBuilder();
  }
  /**
   * Protobuf type {@code AfterHandShowCardsMessage}
   */
  public static final class AfterHandShowCardsMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:AfterHandShowCardsMessage)
      AfterHandShowCardsMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use AfterHandShowCardsMessage.newBuilder() to construct.
    private AfterHandShowCardsMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private AfterHandShowCardsMessage() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new AfterHandShowCardsMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_AfterHandShowCardsMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_AfterHandShowCardsMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage.class, de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage.Builder.class);
    }

    private int bitField0_;
    public static final int PLAYERRESULT_FIELD_NUMBER = 1;
    private de.pokerth.protocol.ProtoBuf.PlayerResult playerResult_;
    /**
     * <code>required .PlayerResult playerResult = 1;</code>
     * @return Whether the playerResult field is set.
     */
    @java.lang.Override
    public boolean hasPlayerResult() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required .PlayerResult playerResult = 1;</code>
     * @return The playerResult.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.PlayerResult getPlayerResult() {
      return playerResult_ == null ? de.pokerth.protocol.ProtoBuf.PlayerResult.getDefaultInstance() : playerResult_;
    }
    /**
     * <code>required .PlayerResult playerResult = 1;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.PlayerResultOrBuilder getPlayerResultOrBuilder() {
      return playerResult_ == null ? de.pokerth.protocol.ProtoBuf.PlayerResult.getDefaultInstance() : playerResult_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasPlayerResult()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getPlayerResult().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getPlayerResult());
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getPlayerResult());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage other = (de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage) obj;

      if (hasPlayerResult() != other.hasPlayerResult()) return false;
      if (hasPlayerResult()) {
        if (!getPlayerResult()
            .equals(other.getPlayerResult())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasPlayerResult()) {
        hash = (37 * hash) + PLAYERRESULT_FIELD_NUMBER;
        hash = (53 * hash) + getPlayerResult().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code AfterHandShowCardsMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:AfterHandShowCardsMessage)
        de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_AfterHandShowCardsMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_AfterHandShowCardsMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage.class, de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getPlayerResultFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        playerResult_ = null;
        if (playerResultBuilder_ != null) {
          playerResultBuilder_.dispose();
          playerResultBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_AfterHandShowCardsMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage build() {
        de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage result = new de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.playerResult_ = playerResultBuilder_ == null
              ? playerResult_
              : playerResultBuilder_.build();
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage.getDefaultInstance()) return this;
        if (other.hasPlayerResult()) {
          mergePlayerResult(other.getPlayerResult());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasPlayerResult()) {
          return false;
        }
        if (!getPlayerResult().isInitialized()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                input.readMessage(
                    getPlayerResultFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private de.pokerth.protocol.ProtoBuf.PlayerResult playerResult_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.PlayerResult, de.pokerth.protocol.ProtoBuf.PlayerResult.Builder, de.pokerth.protocol.ProtoBuf.PlayerResultOrBuilder> playerResultBuilder_;
      /**
       * <code>required .PlayerResult playerResult = 1;</code>
       * @return Whether the playerResult field is set.
       */
      public boolean hasPlayerResult() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required .PlayerResult playerResult = 1;</code>
       * @return The playerResult.
       */
      public de.pokerth.protocol.ProtoBuf.PlayerResult getPlayerResult() {
        if (playerResultBuilder_ == null) {
          return playerResult_ == null ? de.pokerth.protocol.ProtoBuf.PlayerResult.getDefaultInstance() : playerResult_;
        } else {
          return playerResultBuilder_.getMessage();
        }
      }
      /**
       * <code>required .PlayerResult playerResult = 1;</code>
       */
      public Builder setPlayerResult(de.pokerth.protocol.ProtoBuf.PlayerResult value) {
        if (playerResultBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          playerResult_ = value;
        } else {
          playerResultBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required .PlayerResult playerResult = 1;</code>
       */
      public Builder setPlayerResult(
          de.pokerth.protocol.ProtoBuf.PlayerResult.Builder builderForValue) {
        if (playerResultBuilder_ == null) {
          playerResult_ = builderForValue.build();
        } else {
          playerResultBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required .PlayerResult playerResult = 1;</code>
       */
      public Builder mergePlayerResult(de.pokerth.protocol.ProtoBuf.PlayerResult value) {
        if (playerResultBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
            playerResult_ != null &&
            playerResult_ != de.pokerth.protocol.ProtoBuf.PlayerResult.getDefaultInstance()) {
            getPlayerResultBuilder().mergeFrom(value);
          } else {
            playerResult_ = value;
          }
        } else {
          playerResultBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required .PlayerResult playerResult = 1;</code>
       */
      public Builder clearPlayerResult() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerResult_ = null;
        if (playerResultBuilder_ != null) {
          playerResultBuilder_.dispose();
          playerResultBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>required .PlayerResult playerResult = 1;</code>
       */
      public de.pokerth.protocol.ProtoBuf.PlayerResult.Builder getPlayerResultBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getPlayerResultFieldBuilder().getBuilder();
      }
      /**
       * <code>required .PlayerResult playerResult = 1;</code>
       */
      public de.pokerth.protocol.ProtoBuf.PlayerResultOrBuilder getPlayerResultOrBuilder() {
        if (playerResultBuilder_ != null) {
          return playerResultBuilder_.getMessageOrBuilder();
        } else {
          return playerResult_ == null ?
              de.pokerth.protocol.ProtoBuf.PlayerResult.getDefaultInstance() : playerResult_;
        }
      }
      /**
       * <code>required .PlayerResult playerResult = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.PlayerResult, de.pokerth.protocol.ProtoBuf.PlayerResult.Builder, de.pokerth.protocol.ProtoBuf.PlayerResultOrBuilder> 
          getPlayerResultFieldBuilder() {
        if (playerResultBuilder_ == null) {
          playerResultBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.PlayerResult, de.pokerth.protocol.ProtoBuf.PlayerResult.Builder, de.pokerth.protocol.ProtoBuf.PlayerResultOrBuilder>(
                  getPlayerResult(),
                  getParentForChildren(),
                  isClean());
          playerResult_ = null;
        }
        return playerResultBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:AfterHandShowCardsMessage)
    }

    // @@protoc_insertion_point(class_scope:AfterHandShowCardsMessage)
    private static final de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<AfterHandShowCardsMessage>
        PARSER = new com.google.protobuf.AbstractParser<AfterHandShowCardsMessage>() {
      @java.lang.Override
      public AfterHandShowCardsMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<AfterHandShowCardsMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    int getGameId();

    /**
     * <code>required uint32 winnerPlayerId = 2;</code>
     * @return Whether the winnerPlayerId field is set.
     */
    boolean hasWinnerPlayerId();
    /**
     * <code>required uint32 winnerPlayerId = 2;</code>
     * @return The winnerPlayerId.
     */
    int getWinnerPlayerId();
  }
  /**
   * Protobuf type {@code EndOfGameMessage}
   */
  public static final class EndOfGameMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:EndOfGameMessage)
      EndOfGameMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use EndOfGameMessage.newBuilder() to construct.
    private EndOfGameMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private EndOfGameMessage() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new EndOfGameMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_EndOfGameMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_EndOfGameMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.EndOfGameMessage.class, de.pokerth.protocol.ProtoBuf.EndOfGameMessage.Builder.class);
    }

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_ = 0;
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    @java.lang.Override
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    @java.lang.Override
    public int getGameId() {
      return gameId_;
    }

    public static final int WINNERPLAYERID_FIELD_NUMBER = 2;
    private int winnerPlayerId_ = 0;
    /**
     * <code>required uint32 winnerPlayerId = 2;</code>
     * @return Whether the winnerPlayerId field is set.
     */
    @java.lang.Override
    public boolean hasWinnerPlayerId() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required uint32 winnerPlayerId = 2;</code>
     * @return The winnerPlayerId.
     */
    @java.lang.Override
    public int getWinnerPlayerId() {
      return winnerPlayerId_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

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

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt32(2, winnerPlayerId_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, winnerPlayerId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.EndOfGameMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.EndOfGameMessage other = (de.pokerth.protocol.ProtoBuf.EndOfGameMessage) obj;

      if (hasGameId() != other.hasGameId()) return false;
      if (hasGameId()) {
        if (getGameId()
            != other.getGameId()) return false;
      }
      if (hasWinnerPlayerId() != other.hasWinnerPlayerId()) return false;
      if (hasWinnerPlayerId()) {
        if (getWinnerPlayerId()
            != other.getWinnerPlayerId()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasGameId()) {
        hash = (37 * hash) + GAMEID_FIELD_NUMBER;
        hash = (53 * hash) + getGameId();
      }
      if (hasWinnerPlayerId()) {
        hash = (37 * hash) + WINNERPLAYERID_FIELD_NUMBER;
        hash = (53 * hash) + getWinnerPlayerId();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.EndOfGameMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfGameMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfGameMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfGameMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfGameMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfGameMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfGameMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfGameMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfGameMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfGameMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfGameMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfGameMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.EndOfGameMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code EndOfGameMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:EndOfGameMessage)
        de.pokerth.protocol.ProtoBuf.EndOfGameMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_EndOfGameMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_EndOfGameMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.EndOfGameMessage.class, de.pokerth.protocol.ProtoBuf.EndOfGameMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.EndOfGameMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        gameId_ = 0;
        winnerPlayerId_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_EndOfGameMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.EndOfGameMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.EndOfGameMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.EndOfGameMessage build() {
        de.pokerth.protocol.ProtoBuf.EndOfGameMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.EndOfGameMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.EndOfGameMessage result = new de.pokerth.protocol.ProtoBuf.EndOfGameMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.EndOfGameMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.gameId_ = gameId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.winnerPlayerId_ = winnerPlayerId_;
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.EndOfGameMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.EndOfGameMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.EndOfGameMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.EndOfGameMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasWinnerPlayerId()) {
          setWinnerPlayerId(other.getWinnerPlayerId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasGameId()) {
          return false;
        }
        if (!hasWinnerPlayerId()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                gameId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                winnerPlayerId_ = input.readUInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return Whether the gameId field is set.
       */
      @java.lang.Override
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return The gameId.
       */
      @java.lang.Override
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @param value The gameId to set.
       * @return This builder for chaining.
       */
      public Builder setGameId(int value) {
        
        gameId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        onChanged();
        return this;
      }

      private int winnerPlayerId_ ;
      /**
       * <code>required uint32 winnerPlayerId = 2;</code>
       * @return Whether the winnerPlayerId field is set.
       */
      @java.lang.Override
      public boolean hasWinnerPlayerId() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required uint32 winnerPlayerId = 2;</code>
       * @return The winnerPlayerId.
       */
      @java.lang.Override
      public int getWinnerPlayerId() {
        return winnerPlayerId_;
      }
      /**
       * <code>required uint32 winnerPlayerId = 2;</code>
       * @param value The winnerPlayerId to set.
       * @return This builder for chaining.
       */
      public Builder setWinnerPlayerId(int value) {
        
        winnerPlayerId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 winnerPlayerId = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearWinnerPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        winnerPlayerId_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:EndOfGameMessage)
    }

    // @@protoc_insertion_point(class_scope:EndOfGameMessage)
    private static final de.pokerth.protocol.ProtoBuf.EndOfGameMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.EndOfGameMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.EndOfGameMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<EndOfGameMessage>
        PARSER = new com.google.protobuf.AbstractParser<EndOfGameMessage>() {
      @java.lang.Override
      public EndOfGameMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<EndOfGameMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.EndOfGameMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 oldPlayerId = 1;</code>
     * @return Whether the oldPlayerId field is set.
     */
    boolean hasOldPlayerId();
    /**
     * <code>required uint32 oldPlayerId = 1;</code>
     * @return The oldPlayerId.
     */
    int getOldPlayerId();

    /**
     * <code>required uint32 newPlayerId = 2;</code>
     * @return Whether the newPlayerId field is set.
     */
    boolean hasNewPlayerId();
    /**
     * <code>required uint32 newPlayerId = 2;</code>
     * @return The newPlayerId.
     */
    int getNewPlayerId();
  }
  /**
   * Protobuf type {@code PlayerIdChangedMessage}
   */
  public static final class PlayerIdChangedMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:PlayerIdChangedMessage)
      PlayerIdChangedMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PlayerIdChangedMessage.newBuilder() to construct.
    private PlayerIdChangedMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PlayerIdChangedMessage() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new PlayerIdChangedMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_PlayerIdChangedMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_PlayerIdChangedMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage.class, de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage.Builder.class);
    }

    private int bitField0_;
    public static final int OLDPLAYERID_FIELD_NUMBER = 1;
    private int oldPlayerId_ = 0;
    /**
     * <code>required uint32 oldPlayerId = 1;</code>
     * @return Whether the oldPlayerId field is set.
     */
    @java.lang.Override
    public boolean hasOldPlayerId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 oldPlayerId = 1;</code>
     * @return The oldPlayerId.
     */
    @java.lang.Override
    public int getOldPlayerId() {
      return oldPlayerId_;
    }

    public static final int NEWPLAYERID_FIELD_NUMBER = 2;
    private int newPlayerId_ = 0;
    /**
     * <code>required uint32 newPlayerId = 2;</code>
     * @return Whether the newPlayerId field is set.
     */
    @java.lang.Override
    public boolean hasNewPlayerId() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required uint32 newPlayerId = 2;</code>
     * @return The newPlayerId.
     */
    @java.lang.Override
    public int getNewPlayerId() {
      return newPlayerId_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

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

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, oldPlayerId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt32(2, newPlayerId_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, oldPlayerId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, newPlayerId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage other = (de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage) obj;

      if (hasOldPlayerId() != other.hasOldPlayerId()) return false;
      if (hasOldPlayerId()) {
        if (getOldPlayerId()
            != other.getOldPlayerId()) return false;
      }
      if (hasNewPlayerId() != other.hasNewPlayerId()) return false;
      if (hasNewPlayerId()) {
        if (getNewPlayerId()
            != other.getNewPlayerId()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasOldPlayerId()) {
        hash = (37 * hash) + OLDPLAYERID_FIELD_NUMBER;
        hash = (53 * hash) + getOldPlayerId();
      }
      if (hasNewPlayerId()) {
        hash = (37 * hash) + NEWPLAYERID_FIELD_NUMBER;
        hash = (53 * hash) + getNewPlayerId();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code PlayerIdChangedMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:PlayerIdChangedMessage)
        de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_PlayerIdChangedMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_PlayerIdChangedMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage.class, de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        oldPlayerId_ = 0;
        newPlayerId_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_PlayerIdChangedMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage build() {
        de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage result = new de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.oldPlayerId_ = oldPlayerId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.newPlayerId_ = newPlayerId_;
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage.getDefaultInstance()) return this;
        if (other.hasOldPlayerId()) {
          setOldPlayerId(other.getOldPlayerId());
        }
        if (other.hasNewPlayerId()) {
          setNewPlayerId(other.getNewPlayerId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasOldPlayerId()) {
          return false;
        }
        if (!hasNewPlayerId()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                oldPlayerId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                newPlayerId_ = input.readUInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int oldPlayerId_ ;
      /**
       * <code>required uint32 oldPlayerId = 1;</code>
       * @return Whether the oldPlayerId field is set.
       */
      @java.lang.Override
      public boolean hasOldPlayerId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 oldPlayerId = 1;</code>
       * @return The oldPlayerId.
       */
      @java.lang.Override
      public int getOldPlayerId() {
        return oldPlayerId_;
      }
      /**
       * <code>required uint32 oldPlayerId = 1;</code>
       * @param value The oldPlayerId to set.
       * @return This builder for chaining.
       */
      public Builder setOldPlayerId(int value) {
        
        oldPlayerId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 oldPlayerId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearOldPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        oldPlayerId_ = 0;
        onChanged();
        return this;
      }

      private int newPlayerId_ ;
      /**
       * <code>required uint32 newPlayerId = 2;</code>
       * @return Whether the newPlayerId field is set.
       */
      @java.lang.Override
      public boolean hasNewPlayerId() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required uint32 newPlayerId = 2;</code>
       * @return The newPlayerId.
       */
      @java.lang.Override
      public int getNewPlayerId() {
        return newPlayerId_;
      }
      /**
       * <code>required uint32 newPlayerId = 2;</code>
       * @param value The newPlayerId to set.
       * @return This builder for chaining.
       */
      public Builder setNewPlayerId(int value) {
        
        newPlayerId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 newPlayerId = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearNewPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        newPlayerId_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:PlayerIdChangedMessage)
    }

    // @@protoc_insertion_point(class_scope:PlayerIdChangedMessage)
    private static final de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<PlayerIdChangedMessage>
        PARSER = new com.google.protobuf.AbstractParser<PlayerIdChangedMessage>() {
      @java.lang.Override
      public PlayerIdChangedMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<PlayerIdChangedMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    int getGameId();

    /**
     * <code>required uint32 playerId = 2;</code>
     * @return Whether the playerId field is set.
     */
    boolean hasPlayerId();
    /**
     * <code>required uint32 playerId = 2;</code>
     * @return The playerId.
     */
    int getPlayerId();
  }
  /**
   * Protobuf type {@code AskKickPlayerMessage}
   */
  public static final class AskKickPlayerMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:AskKickPlayerMessage)
      AskKickPlayerMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use AskKickPlayerMessage.newBuilder() to construct.
    private AskKickPlayerMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private AskKickPlayerMessage() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new AskKickPlayerMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_AskKickPlayerMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_AskKickPlayerMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage.class, de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage.Builder.class);
    }

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_ = 0;
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    @java.lang.Override
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    @java.lang.Override
    public int getGameId() {
      return gameId_;
    }

    public static final int PLAYERID_FIELD_NUMBER = 2;
    private int playerId_ = 0;
    /**
     * <code>required uint32 playerId = 2;</code>
     * @return Whether the playerId field is set.
     */
    @java.lang.Override
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required uint32 playerId = 2;</code>
     * @return The playerId.
     */
    @java.lang.Override
    public int getPlayerId() {
      return playerId_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

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

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt32(2, playerId_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, playerId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage other = (de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage) obj;

      if (hasGameId() != other.hasGameId()) return false;
      if (hasGameId()) {
        if (getGameId()
            != other.getGameId()) return false;
      }
      if (hasPlayerId() != other.hasPlayerId()) return false;
      if (hasPlayerId()) {
        if (getPlayerId()
            != other.getPlayerId()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasGameId()) {
        hash = (37 * hash) + GAMEID_FIELD_NUMBER;
        hash = (53 * hash) + getGameId();
      }
      if (hasPlayerId()) {
        hash = (37 * hash) + PLAYERID_FIELD_NUMBER;
        hash = (53 * hash) + getPlayerId();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code AskKickPlayerMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:AskKickPlayerMessage)
        de.pokerth.protocol.ProtoBuf.AskKickPlayerMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_AskKickPlayerMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_AskKickPlayerMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage.class, de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        gameId_ = 0;
        playerId_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_AskKickPlayerMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage build() {
        de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage result = new de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.gameId_ = gameId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.playerId_ = playerId_;
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasGameId()) {
          return false;
        }
        if (!hasPlayerId()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                gameId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                playerId_ = input.readUInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return Whether the gameId field is set.
       */
      @java.lang.Override
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return The gameId.
       */
      @java.lang.Override
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @param value The gameId to set.
       * @return This builder for chaining.
       */
      public Builder setGameId(int value) {
        
        gameId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        onChanged();
        return this;
      }

      private int playerId_ ;
      /**
       * <code>required uint32 playerId = 2;</code>
       * @return Whether the playerId field is set.
       */
      @java.lang.Override
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       * @return The playerId.
       */
      @java.lang.Override
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       * @param value The playerId to set.
       * @return This builder for chaining.
       */
      public Builder setPlayerId(int value) {
        
        playerId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:AskKickPlayerMessage)
    }

    // @@protoc_insertion_point(class_scope:AskKickPlayerMessage)
    private static final de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<AskKickPlayerMessage>
        PARSER = new com.google.protobuf.AbstractParser<AskKickPlayerMessage>() {
      @java.lang.Override
      public AskKickPlayerMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<AskKickPlayerMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    int getGameId();

    /**
     * <code>required uint32 playerId = 2;</code>
     * @return Whether the playerId field is set.
     */
    boolean hasPlayerId();
    /**
     * <code>required uint32 playerId = 2;</code>
     * @return The playerId.
     */
    int getPlayerId();

    /**
     * <code>required .AskKickDeniedMessage.KickDeniedReason kickDeniedReason = 3;</code>
     * @return Whether the kickDeniedReason field is set.
     */
    boolean hasKickDeniedReason();
    /**
     * <code>required .AskKickDeniedMessage.KickDeniedReason kickDeniedReason = 3;</code>
     * @return The kickDeniedReason.
     */
    de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.KickDeniedReason getKickDeniedReason();
  }
  /**
   * Protobuf type {@code AskKickDeniedMessage}
   */
  public static final class AskKickDeniedMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:AskKickDeniedMessage)
      AskKickDeniedMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use AskKickDeniedMessage.newBuilder() to construct.
    private AskKickDeniedMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private AskKickDeniedMessage() {
      kickDeniedReason_ = 0;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new AskKickDeniedMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_AskKickDeniedMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_AskKickDeniedMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.class, de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.Builder.class);
    }

    /**
     * Protobuf enum {@code AskKickDeniedMessage.KickDeniedReason}
     */
    public enum KickDeniedReason
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>kickDeniedInvalidGameState = 0;</code>
       */
      kickDeniedInvalidGameState(0),
      /**
       * <code>kickDeniedNotPossible = 1;</code>
       */
      kickDeniedNotPossible(1),
      /**
       * <code>kickDeniedTryAgainLater = 2;</code>
       */
      kickDeniedTryAgainLater(2),
      /**
       * <code>kickDeniedAlreadyInProgress = 3;</code>
       */
      kickDeniedAlreadyInProgress(3),
      /**
       * <code>kickDeniedInvalidPlayerId = 4;</code>
       */
      kickDeniedInvalidPlayerId(4),
      ;

      /**
       * <code>kickDeniedInvalidGameState = 0;</code>
       */
      public static final int kickDeniedInvalidGameState_VALUE = 0;
      /**
       * <code>kickDeniedNotPossible = 1;</code>
       */
      public static final int kickDeniedNotPossible_VALUE = 1;
      /**
       * <code>kickDeniedTryAgainLater = 2;</code>
       */
      public static final int kickDeniedTryAgainLater_VALUE = 2;
      /**
       * <code>kickDeniedAlreadyInProgress = 3;</code>
       */
      public static final int kickDeniedAlreadyInProgress_VALUE = 3;
      /**
       * <code>kickDeniedInvalidPlayerId = 4;</code>
       */
      public static final int kickDeniedInvalidPlayerId_VALUE = 4;


      public final int getNumber() {
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static KickDeniedReason valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static KickDeniedReason forNumber(int value) {
        switch (value) {
          case 0: return kickDeniedInvalidGameState;
          case 1: return kickDeniedNotPossible;
          case 2: return kickDeniedTryAgainLater;
          case 3: return kickDeniedAlreadyInProgress;
          case 4: return kickDeniedInvalidPlayerId;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<KickDeniedReason>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          KickDeniedReason> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<KickDeniedReason>() {
              public KickDeniedReason findValueByNumber(int number) {
                return KickDeniedReason.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.getDescriptor().getEnumTypes().get(0);
      }

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

      public static KickDeniedReason 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 value;

      private KickDeniedReason(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:AskKickDeniedMessage.KickDeniedReason)
    }

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_ = 0;
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    @java.lang.Override
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    @java.lang.Override
    public int getGameId() {
      return gameId_;
    }

    public static final int PLAYERID_FIELD_NUMBER = 2;
    private int playerId_ = 0;
    /**
     * <code>required uint32 playerId = 2;</code>
     * @return Whether the playerId field is set.
     */
    @java.lang.Override
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required uint32 playerId = 2;</code>
     * @return The playerId.
     */
    @java.lang.Override
    public int getPlayerId() {
      return playerId_;
    }

    public static final int KICKDENIEDREASON_FIELD_NUMBER = 3;
    private int kickDeniedReason_ = 0;
    /**
     * <code>required .AskKickDeniedMessage.KickDeniedReason kickDeniedReason = 3;</code>
     * @return Whether the kickDeniedReason field is set.
     */
    @java.lang.Override public boolean hasKickDeniedReason() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>required .AskKickDeniedMessage.KickDeniedReason kickDeniedReason = 3;</code>
     * @return The kickDeniedReason.
     */
    @java.lang.Override public de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.KickDeniedReason getKickDeniedReason() {
      de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.KickDeniedReason result = de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.KickDeniedReason.forNumber(kickDeniedReason_);
      return result == null ? de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.KickDeniedReason.kickDeniedInvalidGameState : result;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasKickDeniedReason()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt32(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeEnum(3, kickDeniedReason_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, kickDeniedReason_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage other = (de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage) obj;

      if (hasGameId() != other.hasGameId()) return false;
      if (hasGameId()) {
        if (getGameId()
            != other.getGameId()) return false;
      }
      if (hasPlayerId() != other.hasPlayerId()) return false;
      if (hasPlayerId()) {
        if (getPlayerId()
            != other.getPlayerId()) return false;
      }
      if (hasKickDeniedReason() != other.hasKickDeniedReason()) return false;
      if (hasKickDeniedReason()) {
        if (kickDeniedReason_ != other.kickDeniedReason_) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasGameId()) {
        hash = (37 * hash) + GAMEID_FIELD_NUMBER;
        hash = (53 * hash) + getGameId();
      }
      if (hasPlayerId()) {
        hash = (37 * hash) + PLAYERID_FIELD_NUMBER;
        hash = (53 * hash) + getPlayerId();
      }
      if (hasKickDeniedReason()) {
        hash = (37 * hash) + KICKDENIEDREASON_FIELD_NUMBER;
        hash = (53 * hash) + kickDeniedReason_;
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code AskKickDeniedMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:AskKickDeniedMessage)
        de.pokerth.protocol.ProtoBuf.AskKickDeniedMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_AskKickDeniedMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_AskKickDeniedMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.class, de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        gameId_ = 0;
        playerId_ = 0;
        kickDeniedReason_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_AskKickDeniedMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage build() {
        de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage result = new de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.gameId_ = gameId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.playerId_ = playerId_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.kickDeniedReason_ = kickDeniedReason_;
          to_bitField0_ |= 0x00000004;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasKickDeniedReason()) {
          setKickDeniedReason(other.getKickDeniedReason());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasGameId()) {
          return false;
        }
        if (!hasPlayerId()) {
          return false;
        }
        if (!hasKickDeniedReason()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                gameId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                playerId_ = input.readUInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                int tmpRaw = input.readEnum();
                de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.KickDeniedReason tmpValue =
                    de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.KickDeniedReason.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(3, tmpRaw);
                } else {
                  kickDeniedReason_ = tmpRaw;
                  bitField0_ |= 0x00000004;
                }
                break;
              } // case 24
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return Whether the gameId field is set.
       */
      @java.lang.Override
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return The gameId.
       */
      @java.lang.Override
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @param value The gameId to set.
       * @return This builder for chaining.
       */
      public Builder setGameId(int value) {
        
        gameId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        onChanged();
        return this;
      }

      private int playerId_ ;
      /**
       * <code>required uint32 playerId = 2;</code>
       * @return Whether the playerId field is set.
       */
      @java.lang.Override
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       * @return The playerId.
       */
      @java.lang.Override
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       * @param value The playerId to set.
       * @return This builder for chaining.
       */
      public Builder setPlayerId(int value) {
        
        playerId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 playerId = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private int kickDeniedReason_ = 0;
      /**
       * <code>required .AskKickDeniedMessage.KickDeniedReason kickDeniedReason = 3;</code>
       * @return Whether the kickDeniedReason field is set.
       */
      @java.lang.Override public boolean hasKickDeniedReason() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>required .AskKickDeniedMessage.KickDeniedReason kickDeniedReason = 3;</code>
       * @return The kickDeniedReason.
       */
      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.KickDeniedReason getKickDeniedReason() {
        de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.KickDeniedReason result = de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.KickDeniedReason.forNumber(kickDeniedReason_);
        return result == null ? de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.KickDeniedReason.kickDeniedInvalidGameState : result;
      }
      /**
       * <code>required .AskKickDeniedMessage.KickDeniedReason kickDeniedReason = 3;</code>
       * @param value The kickDeniedReason to set.
       * @return This builder for chaining.
       */
      public Builder setKickDeniedReason(de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.KickDeniedReason value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        kickDeniedReason_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>required .AskKickDeniedMessage.KickDeniedReason kickDeniedReason = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearKickDeniedReason() {
        bitField0_ = (bitField0_ & ~0x00000004);
        kickDeniedReason_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:AskKickDeniedMessage)
    }

    // @@protoc_insertion_point(class_scope:AskKickDeniedMessage)
    private static final de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<AskKickDeniedMessage>
        PARSER = new com.google.protobuf.AbstractParser<AskKickDeniedMessage>() {
      @java.lang.Override
      public AskKickDeniedMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<AskKickDeniedMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    int getGameId();

    /**
     * <code>required uint32 petitionId = 2;</code>
     * @return Whether the petitionId field is set.
     */
    boolean hasPetitionId();
    /**
     * <code>required uint32 petitionId = 2;</code>
     * @return The petitionId.
     */
    int getPetitionId();

    /**
     * <code>required uint32 proposingPlayerId = 3;</code>
     * @return Whether the proposingPlayerId field is set.
     */
    boolean hasProposingPlayerId();
    /**
     * <code>required uint32 proposingPlayerId = 3;</code>
     * @return The proposingPlayerId.
     */
    int getProposingPlayerId();

    /**
     * <code>required uint32 kickPlayerId = 4;</code>
     * @return Whether the kickPlayerId field is set.
     */
    boolean hasKickPlayerId();
    /**
     * <code>required uint32 kickPlayerId = 4;</code>
     * @return The kickPlayerId.
     */
    int getKickPlayerId();

    /**
     * <code>required uint32 kickTimeoutSec = 5;</code>
     * @return Whether the kickTimeoutSec field is set.
     */
    boolean hasKickTimeoutSec();
    /**
     * <code>required uint32 kickTimeoutSec = 5;</code>
     * @return The kickTimeoutSec.
     */
    int getKickTimeoutSec();

    /**
     * <code>required uint32 numVotesNeededToKick = 6;</code>
     * @return Whether the numVotesNeededToKick field is set.
     */
    boolean hasNumVotesNeededToKick();
    /**
     * <code>required uint32 numVotesNeededToKick = 6;</code>
     * @return The numVotesNeededToKick.
     */
    int getNumVotesNeededToKick();
  }
  /**
   * Protobuf type {@code StartKickPetitionMessage}
   */
  public static final class StartKickPetitionMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:StartKickPetitionMessage)
      StartKickPetitionMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use StartKickPetitionMessage.newBuilder() to construct.
    private StartKickPetitionMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private StartKickPetitionMessage() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new StartKickPetitionMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_StartKickPetitionMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_StartKickPetitionMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage.class, de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage.Builder.class);
    }

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_ = 0;
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    @java.lang.Override
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    @java.lang.Override
    public int getGameId() {
      return gameId_;
    }

    public static final int PETITIONID_FIELD_NUMBER = 2;
    private int petitionId_ = 0;
    /**
     * <code>required uint32 petitionId = 2;</code>
     * @return Whether the petitionId field is set.
     */
    @java.lang.Override
    public boolean hasPetitionId() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required uint32 petitionId = 2;</code>
     * @return The petitionId.
     */
    @java.lang.Override
    public int getPetitionId() {
      return petitionId_;
    }

    public static final int PROPOSINGPLAYERID_FIELD_NUMBER = 3;
    private int proposingPlayerId_ = 0;
    /**
     * <code>required uint32 proposingPlayerId = 3;</code>
     * @return Whether the proposingPlayerId field is set.
     */
    @java.lang.Override
    public boolean hasProposingPlayerId() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>required uint32 proposingPlayerId = 3;</code>
     * @return The proposingPlayerId.
     */
    @java.lang.Override
    public int getProposingPlayerId() {
      return proposingPlayerId_;
    }

    public static final int KICKPLAYERID_FIELD_NUMBER = 4;
    private int kickPlayerId_ = 0;
    /**
     * <code>required uint32 kickPlayerId = 4;</code>
     * @return Whether the kickPlayerId field is set.
     */
    @java.lang.Override
    public boolean hasKickPlayerId() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>required uint32 kickPlayerId = 4;</code>
     * @return The kickPlayerId.
     */
    @java.lang.Override
    public int getKickPlayerId() {
      return kickPlayerId_;
    }

    public static final int KICKTIMEOUTSEC_FIELD_NUMBER = 5;
    private int kickTimeoutSec_ = 0;
    /**
     * <code>required uint32 kickTimeoutSec = 5;</code>
     * @return Whether the kickTimeoutSec field is set.
     */
    @java.lang.Override
    public boolean hasKickTimeoutSec() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <code>required uint32 kickTimeoutSec = 5;</code>
     * @return The kickTimeoutSec.
     */
    @java.lang.Override
    public int getKickTimeoutSec() {
      return kickTimeoutSec_;
    }

    public static final int NUMVOTESNEEDEDTOKICK_FIELD_NUMBER = 6;
    private int numVotesNeededToKick_ = 0;
    /**
     * <code>required uint32 numVotesNeededToKick = 6;</code>
     * @return Whether the numVotesNeededToKick field is set.
     */
    @java.lang.Override
    public boolean hasNumVotesNeededToKick() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <code>required uint32 numVotesNeededToKick = 6;</code>
     * @return The numVotesNeededToKick.
     */
    @java.lang.Override
    public int getNumVotesNeededToKick() {
      return numVotesNeededToKick_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPetitionId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasProposingPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasKickPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasKickTimeoutSec()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasNumVotesNeededToKick()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt32(2, petitionId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeUInt32(3, proposingPlayerId_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeUInt32(4, kickPlayerId_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeUInt32(5, kickTimeoutSec_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        output.writeUInt32(6, numVotesNeededToKick_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, petitionId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, proposingPlayerId_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, kickPlayerId_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, kickTimeoutSec_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(6, numVotesNeededToKick_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage other = (de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage) obj;

      if (hasGameId() != other.hasGameId()) return false;
      if (hasGameId()) {
        if (getGameId()
            != other.getGameId()) return false;
      }
      if (hasPetitionId() != other.hasPetitionId()) return false;
      if (hasPetitionId()) {
        if (getPetitionId()
            != other.getPetitionId()) return false;
      }
      if (hasProposingPlayerId() != other.hasProposingPlayerId()) return false;
      if (hasProposingPlayerId()) {
        if (getProposingPlayerId()
            != other.getProposingPlayerId()) return false;
      }
      if (hasKickPlayerId() != other.hasKickPlayerId()) return false;
      if (hasKickPlayerId()) {
        if (getKickPlayerId()
            != other.getKickPlayerId()) return false;
      }
      if (hasKickTimeoutSec() != other.hasKickTimeoutSec()) return false;
      if (hasKickTimeoutSec()) {
        if (getKickTimeoutSec()
            != other.getKickTimeoutSec()) return false;
      }
      if (hasNumVotesNeededToKick() != other.hasNumVotesNeededToKick()) return false;
      if (hasNumVotesNeededToKick()) {
        if (getNumVotesNeededToKick()
            != other.getNumVotesNeededToKick()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasGameId()) {
        hash = (37 * hash) + GAMEID_FIELD_NUMBER;
        hash = (53 * hash) + getGameId();
      }
      if (hasPetitionId()) {
        hash = (37 * hash) + PETITIONID_FIELD_NUMBER;
        hash = (53 * hash) + getPetitionId();
      }
      if (hasProposingPlayerId()) {
        hash = (37 * hash) + PROPOSINGPLAYERID_FIELD_NUMBER;
        hash = (53 * hash) + getProposingPlayerId();
      }
      if (hasKickPlayerId()) {
        hash = (37 * hash) + KICKPLAYERID_FIELD_NUMBER;
        hash = (53 * hash) + getKickPlayerId();
      }
      if (hasKickTimeoutSec()) {
        hash = (37 * hash) + KICKTIMEOUTSEC_FIELD_NUMBER;
        hash = (53 * hash) + getKickTimeoutSec();
      }
      if (hasNumVotesNeededToKick()) {
        hash = (37 * hash) + NUMVOTESNEEDEDTOKICK_FIELD_NUMBER;
        hash = (53 * hash) + getNumVotesNeededToKick();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code StartKickPetitionMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:StartKickPetitionMessage)
        de.pokerth.protocol.ProtoBuf.StartKickPetitionMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_StartKickPetitionMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_StartKickPetitionMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage.class, de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        gameId_ = 0;
        petitionId_ = 0;
        proposingPlayerId_ = 0;
        kickPlayerId_ = 0;
        kickTimeoutSec_ = 0;
        numVotesNeededToKick_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_StartKickPetitionMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage build() {
        de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage result = new de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.gameId_ = gameId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.petitionId_ = petitionId_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.proposingPlayerId_ = proposingPlayerId_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.kickPlayerId_ = kickPlayerId_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.kickTimeoutSec_ = kickTimeoutSec_;
          to_bitField0_ |= 0x00000010;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.numVotesNeededToKick_ = numVotesNeededToKick_;
          to_bitField0_ |= 0x00000020;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasPetitionId()) {
          setPetitionId(other.getPetitionId());
        }
        if (other.hasProposingPlayerId()) {
          setProposingPlayerId(other.getProposingPlayerId());
        }
        if (other.hasKickPlayerId()) {
          setKickPlayerId(other.getKickPlayerId());
        }
        if (other.hasKickTimeoutSec()) {
          setKickTimeoutSec(other.getKickTimeoutSec());
        }
        if (other.hasNumVotesNeededToKick()) {
          setNumVotesNeededToKick(other.getNumVotesNeededToKick());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasGameId()) {
          return false;
        }
        if (!hasPetitionId()) {
          return false;
        }
        if (!hasProposingPlayerId()) {
          return false;
        }
        if (!hasKickPlayerId()) {
          return false;
        }
        if (!hasKickTimeoutSec()) {
          return false;
        }
        if (!hasNumVotesNeededToKick()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                gameId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                petitionId_ = input.readUInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                proposingPlayerId_ = input.readUInt32();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 32: {
                kickPlayerId_ = input.readUInt32();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              case 40: {
                kickTimeoutSec_ = input.readUInt32();
                bitField0_ |= 0x00000010;
                break;
              } // case 40
              case 48: {
                numVotesNeededToKick_ = input.readUInt32();
                bitField0_ |= 0x00000020;
                break;
              } // case 48
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return Whether the gameId field is set.
       */
      @java.lang.Override
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return The gameId.
       */
      @java.lang.Override
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @param value The gameId to set.
       * @return This builder for chaining.
       */
      public Builder setGameId(int value) {
        
        gameId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        onChanged();
        return this;
      }

      private int petitionId_ ;
      /**
       * <code>required uint32 petitionId = 2;</code>
       * @return Whether the petitionId field is set.
       */
      @java.lang.Override
      public boolean hasPetitionId() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required uint32 petitionId = 2;</code>
       * @return The petitionId.
       */
      @java.lang.Override
      public int getPetitionId() {
        return petitionId_;
      }
      /**
       * <code>required uint32 petitionId = 2;</code>
       * @param value The petitionId to set.
       * @return This builder for chaining.
       */
      public Builder setPetitionId(int value) {
        
        petitionId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 petitionId = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearPetitionId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        petitionId_ = 0;
        onChanged();
        return this;
      }

      private int proposingPlayerId_ ;
      /**
       * <code>required uint32 proposingPlayerId = 3;</code>
       * @return Whether the proposingPlayerId field is set.
       */
      @java.lang.Override
      public boolean hasProposingPlayerId() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>required uint32 proposingPlayerId = 3;</code>
       * @return The proposingPlayerId.
       */
      @java.lang.Override
      public int getProposingPlayerId() {
        return proposingPlayerId_;
      }
      /**
       * <code>required uint32 proposingPlayerId = 3;</code>
       * @param value The proposingPlayerId to set.
       * @return This builder for chaining.
       */
      public Builder setProposingPlayerId(int value) {
        
        proposingPlayerId_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 proposingPlayerId = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearProposingPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000004);
        proposingPlayerId_ = 0;
        onChanged();
        return this;
      }

      private int kickPlayerId_ ;
      /**
       * <code>required uint32 kickPlayerId = 4;</code>
       * @return Whether the kickPlayerId field is set.
       */
      @java.lang.Override
      public boolean hasKickPlayerId() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>required uint32 kickPlayerId = 4;</code>
       * @return The kickPlayerId.
       */
      @java.lang.Override
      public int getKickPlayerId() {
        return kickPlayerId_;
      }
      /**
       * <code>required uint32 kickPlayerId = 4;</code>
       * @param value The kickPlayerId to set.
       * @return This builder for chaining.
       */
      public Builder setKickPlayerId(int value) {
        
        kickPlayerId_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 kickPlayerId = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearKickPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000008);
        kickPlayerId_ = 0;
        onChanged();
        return this;
      }

      private int kickTimeoutSec_ ;
      /**
       * <code>required uint32 kickTimeoutSec = 5;</code>
       * @return Whether the kickTimeoutSec field is set.
       */
      @java.lang.Override
      public boolean hasKickTimeoutSec() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <code>required uint32 kickTimeoutSec = 5;</code>
       * @return The kickTimeoutSec.
       */
      @java.lang.Override
      public int getKickTimeoutSec() {
        return kickTimeoutSec_;
      }
      /**
       * <code>required uint32 kickTimeoutSec = 5;</code>
       * @param value The kickTimeoutSec to set.
       * @return This builder for chaining.
       */
      public Builder setKickTimeoutSec(int value) {
        
        kickTimeoutSec_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 kickTimeoutSec = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearKickTimeoutSec() {
        bitField0_ = (bitField0_ & ~0x00000010);
        kickTimeoutSec_ = 0;
        onChanged();
        return this;
      }

      private int numVotesNeededToKick_ ;
      /**
       * <code>required uint32 numVotesNeededToKick = 6;</code>
       * @return Whether the numVotesNeededToKick field is set.
       */
      @java.lang.Override
      public boolean hasNumVotesNeededToKick() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <code>required uint32 numVotesNeededToKick = 6;</code>
       * @return The numVotesNeededToKick.
       */
      @java.lang.Override
      public int getNumVotesNeededToKick() {
        return numVotesNeededToKick_;
      }
      /**
       * <code>required uint32 numVotesNeededToKick = 6;</code>
       * @param value The numVotesNeededToKick to set.
       * @return This builder for chaining.
       */
      public Builder setNumVotesNeededToKick(int value) {
        
        numVotesNeededToKick_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 numVotesNeededToKick = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearNumVotesNeededToKick() {
        bitField0_ = (bitField0_ & ~0x00000020);
        numVotesNeededToKick_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:StartKickPetitionMessage)
    }

    // @@protoc_insertion_point(class_scope:StartKickPetitionMessage)
    private static final de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<StartKickPetitionMessage>
        PARSER = new com.google.protobuf.AbstractParser<StartKickPetitionMessage>() {
      @java.lang.Override
      public StartKickPetitionMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<StartKickPetitionMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    int getGameId();

    /**
     * <code>required uint32 petitionId = 2;</code>
     * @return Whether the petitionId field is set.
     */
    boolean hasPetitionId();
    /**
     * <code>required uint32 petitionId = 2;</code>
     * @return The petitionId.
     */
    int getPetitionId();

    /**
     * <code>required bool voteKick = 3;</code>
     * @return Whether the voteKick field is set.
     */
    boolean hasVoteKick();
    /**
     * <code>required bool voteKick = 3;</code>
     * @return The voteKick.
     */
    boolean getVoteKick();
  }
  /**
   * Protobuf type {@code VoteKickRequestMessage}
   */
  public static final class VoteKickRequestMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:VoteKickRequestMessage)
      VoteKickRequestMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use VoteKickRequestMessage.newBuilder() to construct.
    private VoteKickRequestMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private VoteKickRequestMessage() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new VoteKickRequestMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_VoteKickRequestMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_VoteKickRequestMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage.class, de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage.Builder.class);
    }

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_ = 0;
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    @java.lang.Override
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    @java.lang.Override
    public int getGameId() {
      return gameId_;
    }

    public static final int PETITIONID_FIELD_NUMBER = 2;
    private int petitionId_ = 0;
    /**
     * <code>required uint32 petitionId = 2;</code>
     * @return Whether the petitionId field is set.
     */
    @java.lang.Override
    public boolean hasPetitionId() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required uint32 petitionId = 2;</code>
     * @return The petitionId.
     */
    @java.lang.Override
    public int getPetitionId() {
      return petitionId_;
    }

    public static final int VOTEKICK_FIELD_NUMBER = 3;
    private boolean voteKick_ = false;
    /**
     * <code>required bool voteKick = 3;</code>
     * @return Whether the voteKick field is set.
     */
    @java.lang.Override
    public boolean hasVoteKick() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>required bool voteKick = 3;</code>
     * @return The voteKick.
     */
    @java.lang.Override
    public boolean getVoteKick() {
      return voteKick_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPetitionId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasVoteKick()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt32(2, petitionId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeBool(3, voteKick_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, petitionId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, voteKick_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage other = (de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage) obj;

      if (hasGameId() != other.hasGameId()) return false;
      if (hasGameId()) {
        if (getGameId()
            != other.getGameId()) return false;
      }
      if (hasPetitionId() != other.hasPetitionId()) return false;
      if (hasPetitionId()) {
        if (getPetitionId()
            != other.getPetitionId()) return false;
      }
      if (hasVoteKick() != other.hasVoteKick()) return false;
      if (hasVoteKick()) {
        if (getVoteKick()
            != other.getVoteKick()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasGameId()) {
        hash = (37 * hash) + GAMEID_FIELD_NUMBER;
        hash = (53 * hash) + getGameId();
      }
      if (hasPetitionId()) {
        hash = (37 * hash) + PETITIONID_FIELD_NUMBER;
        hash = (53 * hash) + getPetitionId();
      }
      if (hasVoteKick()) {
        hash = (37 * hash) + VOTEKICK_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getVoteKick());
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code VoteKickRequestMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:VoteKickRequestMessage)
        de.pokerth.protocol.ProtoBuf.VoteKickRequestMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_VoteKickRequestMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_VoteKickRequestMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage.class, de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        gameId_ = 0;
        petitionId_ = 0;
        voteKick_ = false;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_VoteKickRequestMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage build() {
        de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage result = new de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.gameId_ = gameId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.petitionId_ = petitionId_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.voteKick_ = voteKick_;
          to_bitField0_ |= 0x00000004;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasPetitionId()) {
          setPetitionId(other.getPetitionId());
        }
        if (other.hasVoteKick()) {
          setVoteKick(other.getVoteKick());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasGameId()) {
          return false;
        }
        if (!hasPetitionId()) {
          return false;
        }
        if (!hasVoteKick()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                gameId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                petitionId_ = input.readUInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                voteKick_ = input.readBool();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return Whether the gameId field is set.
       */
      @java.lang.Override
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return The gameId.
       */
      @java.lang.Override
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @param value The gameId to set.
       * @return This builder for chaining.
       */
      public Builder setGameId(int value) {
        
        gameId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        onChanged();
        return this;
      }

      private int petitionId_ ;
      /**
       * <code>required uint32 petitionId = 2;</code>
       * @return Whether the petitionId field is set.
       */
      @java.lang.Override
      public boolean hasPetitionId() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required uint32 petitionId = 2;</code>
       * @return The petitionId.
       */
      @java.lang.Override
      public int getPetitionId() {
        return petitionId_;
      }
      /**
       * <code>required uint32 petitionId = 2;</code>
       * @param value The petitionId to set.
       * @return This builder for chaining.
       */
      public Builder setPetitionId(int value) {
        
        petitionId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 petitionId = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearPetitionId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        petitionId_ = 0;
        onChanged();
        return this;
      }

      private boolean voteKick_ ;
      /**
       * <code>required bool voteKick = 3;</code>
       * @return Whether the voteKick field is set.
       */
      @java.lang.Override
      public boolean hasVoteKick() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>required bool voteKick = 3;</code>
       * @return The voteKick.
       */
      @java.lang.Override
      public boolean getVoteKick() {
        return voteKick_;
      }
      /**
       * <code>required bool voteKick = 3;</code>
       * @param value The voteKick to set.
       * @return This builder for chaining.
       */
      public Builder setVoteKick(boolean value) {
        
        voteKick_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>required bool voteKick = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearVoteKick() {
        bitField0_ = (bitField0_ & ~0x00000004);
        voteKick_ = false;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:VoteKickRequestMessage)
    }

    // @@protoc_insertion_point(class_scope:VoteKickRequestMessage)
    private static final de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<VoteKickRequestMessage>
        PARSER = new com.google.protobuf.AbstractParser<VoteKickRequestMessage>() {
      @java.lang.Override
      public VoteKickRequestMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<VoteKickRequestMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    int getGameId();

    /**
     * <code>required uint32 petitionId = 2;</code>
     * @return Whether the petitionId field is set.
     */
    boolean hasPetitionId();
    /**
     * <code>required uint32 petitionId = 2;</code>
     * @return The petitionId.
     */
    int getPetitionId();

    /**
     * <code>required .VoteKickReplyMessage.VoteKickReplyType voteKickReplyType = 3;</code>
     * @return Whether the voteKickReplyType field is set.
     */
    boolean hasVoteKickReplyType();
    /**
     * <code>required .VoteKickReplyMessage.VoteKickReplyType voteKickReplyType = 3;</code>
     * @return The voteKickReplyType.
     */
    de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.VoteKickReplyType getVoteKickReplyType();
  }
  /**
   * Protobuf type {@code VoteKickReplyMessage}
   */
  public static final class VoteKickReplyMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:VoteKickReplyMessage)
      VoteKickReplyMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use VoteKickReplyMessage.newBuilder() to construct.
    private VoteKickReplyMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private VoteKickReplyMessage() {
      voteKickReplyType_ = 0;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new VoteKickReplyMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_VoteKickReplyMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_VoteKickReplyMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.class, de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.Builder.class);
    }

    /**
     * Protobuf enum {@code VoteKickReplyMessage.VoteKickReplyType}
     */
    public enum VoteKickReplyType
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>voteKickAck = 0;</code>
       */
      voteKickAck(0),
      /**
       * <code>voteKickDeniedInvalid = 1;</code>
       */
      voteKickDeniedInvalid(1),
      /**
       * <code>voteKickDeniedAlreadyVoted = 2;</code>
       */
      voteKickDeniedAlreadyVoted(2),
      ;

      /**
       * <code>voteKickAck = 0;</code>
       */
      public static final int voteKickAck_VALUE = 0;
      /**
       * <code>voteKickDeniedInvalid = 1;</code>
       */
      public static final int voteKickDeniedInvalid_VALUE = 1;
      /**
       * <code>voteKickDeniedAlreadyVoted = 2;</code>
       */
      public static final int voteKickDeniedAlreadyVoted_VALUE = 2;


      public final int getNumber() {
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static VoteKickReplyType valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static VoteKickReplyType forNumber(int value) {
        switch (value) {
          case 0: return voteKickAck;
          case 1: return voteKickDeniedInvalid;
          case 2: return voteKickDeniedAlreadyVoted;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<VoteKickReplyType>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          VoteKickReplyType> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<VoteKickReplyType>() {
              public VoteKickReplyType findValueByNumber(int number) {
                return VoteKickReplyType.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.getDescriptor().getEnumTypes().get(0);
      }

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

      public static VoteKickReplyType 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 value;

      private VoteKickReplyType(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:VoteKickReplyMessage.VoteKickReplyType)
    }

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_ = 0;
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    @java.lang.Override
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    @java.lang.Override
    public int getGameId() {
      return gameId_;
    }

    public static final int PETITIONID_FIELD_NUMBER = 2;
    private int petitionId_ = 0;
    /**
     * <code>required uint32 petitionId = 2;</code>
     * @return Whether the petitionId field is set.
     */
    @java.lang.Override
    public boolean hasPetitionId() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required uint32 petitionId = 2;</code>
     * @return The petitionId.
     */
    @java.lang.Override
    public int getPetitionId() {
      return petitionId_;
    }

    public static final int VOTEKICKREPLYTYPE_FIELD_NUMBER = 3;
    private int voteKickReplyType_ = 0;
    /**
     * <code>required .VoteKickReplyMessage.VoteKickReplyType voteKickReplyType = 3;</code>
     * @return Whether the voteKickReplyType field is set.
     */
    @java.lang.Override public boolean hasVoteKickReplyType() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>required .VoteKickReplyMessage.VoteKickReplyType voteKickReplyType = 3;</code>
     * @return The voteKickReplyType.
     */
    @java.lang.Override public de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.VoteKickReplyType getVoteKickReplyType() {
      de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.VoteKickReplyType result = de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.VoteKickReplyType.forNumber(voteKickReplyType_);
      return result == null ? de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.VoteKickReplyType.voteKickAck : result;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPetitionId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasVoteKickReplyType()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt32(2, petitionId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeEnum(3, voteKickReplyType_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, petitionId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, voteKickReplyType_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage other = (de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage) obj;

      if (hasGameId() != other.hasGameId()) return false;
      if (hasGameId()) {
        if (getGameId()
            != other.getGameId()) return false;
      }
      if (hasPetitionId() != other.hasPetitionId()) return false;
      if (hasPetitionId()) {
        if (getPetitionId()
            != other.getPetitionId()) return false;
      }
      if (hasVoteKickReplyType() != other.hasVoteKickReplyType()) return false;
      if (hasVoteKickReplyType()) {
        if (voteKickReplyType_ != other.voteKickReplyType_) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasGameId()) {
        hash = (37 * hash) + GAMEID_FIELD_NUMBER;
        hash = (53 * hash) + getGameId();
      }
      if (hasPetitionId()) {
        hash = (37 * hash) + PETITIONID_FIELD_NUMBER;
        hash = (53 * hash) + getPetitionId();
      }
      if (hasVoteKickReplyType()) {
        hash = (37 * hash) + VOTEKICKREPLYTYPE_FIELD_NUMBER;
        hash = (53 * hash) + voteKickReplyType_;
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code VoteKickReplyMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:VoteKickReplyMessage)
        de.pokerth.protocol.ProtoBuf.VoteKickReplyMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_VoteKickReplyMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_VoteKickReplyMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.class, de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        gameId_ = 0;
        petitionId_ = 0;
        voteKickReplyType_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_VoteKickReplyMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage build() {
        de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage result = new de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.gameId_ = gameId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.petitionId_ = petitionId_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.voteKickReplyType_ = voteKickReplyType_;
          to_bitField0_ |= 0x00000004;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasPetitionId()) {
          setPetitionId(other.getPetitionId());
        }
        if (other.hasVoteKickReplyType()) {
          setVoteKickReplyType(other.getVoteKickReplyType());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasGameId()) {
          return false;
        }
        if (!hasPetitionId()) {
          return false;
        }
        if (!hasVoteKickReplyType()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                gameId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                petitionId_ = input.readUInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                int tmpRaw = input.readEnum();
                de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.VoteKickReplyType tmpValue =
                    de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.VoteKickReplyType.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(3, tmpRaw);
                } else {
                  voteKickReplyType_ = tmpRaw;
                  bitField0_ |= 0x00000004;
                }
                break;
              } // case 24
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return Whether the gameId field is set.
       */
      @java.lang.Override
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return The gameId.
       */
      @java.lang.Override
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @param value The gameId to set.
       * @return This builder for chaining.
       */
      public Builder setGameId(int value) {
        
        gameId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        onChanged();
        return this;
      }

      private int petitionId_ ;
      /**
       * <code>required uint32 petitionId = 2;</code>
       * @return Whether the petitionId field is set.
       */
      @java.lang.Override
      public boolean hasPetitionId() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required uint32 petitionId = 2;</code>
       * @return The petitionId.
       */
      @java.lang.Override
      public int getPetitionId() {
        return petitionId_;
      }
      /**
       * <code>required uint32 petitionId = 2;</code>
       * @param value The petitionId to set.
       * @return This builder for chaining.
       */
      public Builder setPetitionId(int value) {
        
        petitionId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 petitionId = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearPetitionId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        petitionId_ = 0;
        onChanged();
        return this;
      }

      private int voteKickReplyType_ = 0;
      /**
       * <code>required .VoteKickReplyMessage.VoteKickReplyType voteKickReplyType = 3;</code>
       * @return Whether the voteKickReplyType field is set.
       */
      @java.lang.Override public boolean hasVoteKickReplyType() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>required .VoteKickReplyMessage.VoteKickReplyType voteKickReplyType = 3;</code>
       * @return The voteKickReplyType.
       */
      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.VoteKickReplyType getVoteKickReplyType() {
        de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.VoteKickReplyType result = de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.VoteKickReplyType.forNumber(voteKickReplyType_);
        return result == null ? de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.VoteKickReplyType.voteKickAck : result;
      }
      /**
       * <code>required .VoteKickReplyMessage.VoteKickReplyType voteKickReplyType = 3;</code>
       * @param value The voteKickReplyType to set.
       * @return This builder for chaining.
       */
      public Builder setVoteKickReplyType(de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.VoteKickReplyType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        voteKickReplyType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>required .VoteKickReplyMessage.VoteKickReplyType voteKickReplyType = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearVoteKickReplyType() {
        bitField0_ = (bitField0_ & ~0x00000004);
        voteKickReplyType_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:VoteKickReplyMessage)
    }

    // @@protoc_insertion_point(class_scope:VoteKickReplyMessage)
    private static final de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<VoteKickReplyMessage>
        PARSER = new com.google.protobuf.AbstractParser<VoteKickReplyMessage>() {
      @java.lang.Override
      public VoteKickReplyMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<VoteKickReplyMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    int getGameId();

    /**
     * <code>required uint32 petitionId = 2;</code>
     * @return Whether the petitionId field is set.
     */
    boolean hasPetitionId();
    /**
     * <code>required uint32 petitionId = 2;</code>
     * @return The petitionId.
     */
    int getPetitionId();

    /**
     * <code>required uint32 numVotesAgainstKicking = 3;</code>
     * @return Whether the numVotesAgainstKicking field is set.
     */
    boolean hasNumVotesAgainstKicking();
    /**
     * <code>required uint32 numVotesAgainstKicking = 3;</code>
     * @return The numVotesAgainstKicking.
     */
    int getNumVotesAgainstKicking();

    /**
     * <code>required uint32 numVotesInFavourOfKicking = 4;</code>
     * @return Whether the numVotesInFavourOfKicking field is set.
     */
    boolean hasNumVotesInFavourOfKicking();
    /**
     * <code>required uint32 numVotesInFavourOfKicking = 4;</code>
     * @return The numVotesInFavourOfKicking.
     */
    int getNumVotesInFavourOfKicking();

    /**
     * <code>required uint32 numVotesNeededToKick = 5;</code>
     * @return Whether the numVotesNeededToKick field is set.
     */
    boolean hasNumVotesNeededToKick();
    /**
     * <code>required uint32 numVotesNeededToKick = 5;</code>
     * @return The numVotesNeededToKick.
     */
    int getNumVotesNeededToKick();
  }
  /**
   * Protobuf type {@code KickPetitionUpdateMessage}
   */
  public static final class KickPetitionUpdateMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:KickPetitionUpdateMessage)
      KickPetitionUpdateMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use KickPetitionUpdateMessage.newBuilder() to construct.
    private KickPetitionUpdateMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private KickPetitionUpdateMessage() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new KickPetitionUpdateMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_KickPetitionUpdateMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_KickPetitionUpdateMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage.class, de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage.Builder.class);
    }

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_ = 0;
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    @java.lang.Override
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    @java.lang.Override
    public int getGameId() {
      return gameId_;
    }

    public static final int PETITIONID_FIELD_NUMBER = 2;
    private int petitionId_ = 0;
    /**
     * <code>required uint32 petitionId = 2;</code>
     * @return Whether the petitionId field is set.
     */
    @java.lang.Override
    public boolean hasPetitionId() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required uint32 petitionId = 2;</code>
     * @return The petitionId.
     */
    @java.lang.Override
    public int getPetitionId() {
      return petitionId_;
    }

    public static final int NUMVOTESAGAINSTKICKING_FIELD_NUMBER = 3;
    private int numVotesAgainstKicking_ = 0;
    /**
     * <code>required uint32 numVotesAgainstKicking = 3;</code>
     * @return Whether the numVotesAgainstKicking field is set.
     */
    @java.lang.Override
    public boolean hasNumVotesAgainstKicking() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>required uint32 numVotesAgainstKicking = 3;</code>
     * @return The numVotesAgainstKicking.
     */
    @java.lang.Override
    public int getNumVotesAgainstKicking() {
      return numVotesAgainstKicking_;
    }

    public static final int NUMVOTESINFAVOUROFKICKING_FIELD_NUMBER = 4;
    private int numVotesInFavourOfKicking_ = 0;
    /**
     * <code>required uint32 numVotesInFavourOfKicking = 4;</code>
     * @return Whether the numVotesInFavourOfKicking field is set.
     */
    @java.lang.Override
    public boolean hasNumVotesInFavourOfKicking() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>required uint32 numVotesInFavourOfKicking = 4;</code>
     * @return The numVotesInFavourOfKicking.
     */
    @java.lang.Override
    public int getNumVotesInFavourOfKicking() {
      return numVotesInFavourOfKicking_;
    }

    public static final int NUMVOTESNEEDEDTOKICK_FIELD_NUMBER = 5;
    private int numVotesNeededToKick_ = 0;
    /**
     * <code>required uint32 numVotesNeededToKick = 5;</code>
     * @return Whether the numVotesNeededToKick field is set.
     */
    @java.lang.Override
    public boolean hasNumVotesNeededToKick() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <code>required uint32 numVotesNeededToKick = 5;</code>
     * @return The numVotesNeededToKick.
     */
    @java.lang.Override
    public int getNumVotesNeededToKick() {
      return numVotesNeededToKick_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPetitionId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasNumVotesAgainstKicking()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasNumVotesInFavourOfKicking()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasNumVotesNeededToKick()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt32(2, petitionId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeUInt32(3, numVotesAgainstKicking_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeUInt32(4, numVotesInFavourOfKicking_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeUInt32(5, numVotesNeededToKick_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, petitionId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, numVotesAgainstKicking_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, numVotesInFavourOfKicking_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, numVotesNeededToKick_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage other = (de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage) obj;

      if (hasGameId() != other.hasGameId()) return false;
      if (hasGameId()) {
        if (getGameId()
            != other.getGameId()) return false;
      }
      if (hasPetitionId() != other.hasPetitionId()) return false;
      if (hasPetitionId()) {
        if (getPetitionId()
            != other.getPetitionId()) return false;
      }
      if (hasNumVotesAgainstKicking() != other.hasNumVotesAgainstKicking()) return false;
      if (hasNumVotesAgainstKicking()) {
        if (getNumVotesAgainstKicking()
            != other.getNumVotesAgainstKicking()) return false;
      }
      if (hasNumVotesInFavourOfKicking() != other.hasNumVotesInFavourOfKicking()) return false;
      if (hasNumVotesInFavourOfKicking()) {
        if (getNumVotesInFavourOfKicking()
            != other.getNumVotesInFavourOfKicking()) return false;
      }
      if (hasNumVotesNeededToKick() != other.hasNumVotesNeededToKick()) return false;
      if (hasNumVotesNeededToKick()) {
        if (getNumVotesNeededToKick()
            != other.getNumVotesNeededToKick()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasGameId()) {
        hash = (37 * hash) + GAMEID_FIELD_NUMBER;
        hash = (53 * hash) + getGameId();
      }
      if (hasPetitionId()) {
        hash = (37 * hash) + PETITIONID_FIELD_NUMBER;
        hash = (53 * hash) + getPetitionId();
      }
      if (hasNumVotesAgainstKicking()) {
        hash = (37 * hash) + NUMVOTESAGAINSTKICKING_FIELD_NUMBER;
        hash = (53 * hash) + getNumVotesAgainstKicking();
      }
      if (hasNumVotesInFavourOfKicking()) {
        hash = (37 * hash) + NUMVOTESINFAVOUROFKICKING_FIELD_NUMBER;
        hash = (53 * hash) + getNumVotesInFavourOfKicking();
      }
      if (hasNumVotesNeededToKick()) {
        hash = (37 * hash) + NUMVOTESNEEDEDTOKICK_FIELD_NUMBER;
        hash = (53 * hash) + getNumVotesNeededToKick();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code KickPetitionUpdateMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:KickPetitionUpdateMessage)
        de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_KickPetitionUpdateMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_KickPetitionUpdateMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage.class, de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        gameId_ = 0;
        petitionId_ = 0;
        numVotesAgainstKicking_ = 0;
        numVotesInFavourOfKicking_ = 0;
        numVotesNeededToKick_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_KickPetitionUpdateMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage build() {
        de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage result = new de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.gameId_ = gameId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.petitionId_ = petitionId_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.numVotesAgainstKicking_ = numVotesAgainstKicking_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.numVotesInFavourOfKicking_ = numVotesInFavourOfKicking_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.numVotesNeededToKick_ = numVotesNeededToKick_;
          to_bitField0_ |= 0x00000010;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasPetitionId()) {
          setPetitionId(other.getPetitionId());
        }
        if (other.hasNumVotesAgainstKicking()) {
          setNumVotesAgainstKicking(other.getNumVotesAgainstKicking());
        }
        if (other.hasNumVotesInFavourOfKicking()) {
          setNumVotesInFavourOfKicking(other.getNumVotesInFavourOfKicking());
        }
        if (other.hasNumVotesNeededToKick()) {
          setNumVotesNeededToKick(other.getNumVotesNeededToKick());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasGameId()) {
          return false;
        }
        if (!hasPetitionId()) {
          return false;
        }
        if (!hasNumVotesAgainstKicking()) {
          return false;
        }
        if (!hasNumVotesInFavourOfKicking()) {
          return false;
        }
        if (!hasNumVotesNeededToKick()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                gameId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                petitionId_ = input.readUInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                numVotesAgainstKicking_ = input.readUInt32();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 32: {
                numVotesInFavourOfKicking_ = input.readUInt32();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              case 40: {
                numVotesNeededToKick_ = input.readUInt32();
                bitField0_ |= 0x00000010;
                break;
              } // case 40
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return Whether the gameId field is set.
       */
      @java.lang.Override
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return The gameId.
       */
      @java.lang.Override
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @param value The gameId to set.
       * @return This builder for chaining.
       */
      public Builder setGameId(int value) {
        
        gameId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        onChanged();
        return this;
      }

      private int petitionId_ ;
      /**
       * <code>required uint32 petitionId = 2;</code>
       * @return Whether the petitionId field is set.
       */
      @java.lang.Override
      public boolean hasPetitionId() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required uint32 petitionId = 2;</code>
       * @return The petitionId.
       */
      @java.lang.Override
      public int getPetitionId() {
        return petitionId_;
      }
      /**
       * <code>required uint32 petitionId = 2;</code>
       * @param value The petitionId to set.
       * @return This builder for chaining.
       */
      public Builder setPetitionId(int value) {
        
        petitionId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 petitionId = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearPetitionId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        petitionId_ = 0;
        onChanged();
        return this;
      }

      private int numVotesAgainstKicking_ ;
      /**
       * <code>required uint32 numVotesAgainstKicking = 3;</code>
       * @return Whether the numVotesAgainstKicking field is set.
       */
      @java.lang.Override
      public boolean hasNumVotesAgainstKicking() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>required uint32 numVotesAgainstKicking = 3;</code>
       * @return The numVotesAgainstKicking.
       */
      @java.lang.Override
      public int getNumVotesAgainstKicking() {
        return numVotesAgainstKicking_;
      }
      /**
       * <code>required uint32 numVotesAgainstKicking = 3;</code>
       * @param value The numVotesAgainstKicking to set.
       * @return This builder for chaining.
       */
      public Builder setNumVotesAgainstKicking(int value) {
        
        numVotesAgainstKicking_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 numVotesAgainstKicking = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearNumVotesAgainstKicking() {
        bitField0_ = (bitField0_ & ~0x00000004);
        numVotesAgainstKicking_ = 0;
        onChanged();
        return this;
      }

      private int numVotesInFavourOfKicking_ ;
      /**
       * <code>required uint32 numVotesInFavourOfKicking = 4;</code>
       * @return Whether the numVotesInFavourOfKicking field is set.
       */
      @java.lang.Override
      public boolean hasNumVotesInFavourOfKicking() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>required uint32 numVotesInFavourOfKicking = 4;</code>
       * @return The numVotesInFavourOfKicking.
       */
      @java.lang.Override
      public int getNumVotesInFavourOfKicking() {
        return numVotesInFavourOfKicking_;
      }
      /**
       * <code>required uint32 numVotesInFavourOfKicking = 4;</code>
       * @param value The numVotesInFavourOfKicking to set.
       * @return This builder for chaining.
       */
      public Builder setNumVotesInFavourOfKicking(int value) {
        
        numVotesInFavourOfKicking_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 numVotesInFavourOfKicking = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearNumVotesInFavourOfKicking() {
        bitField0_ = (bitField0_ & ~0x00000008);
        numVotesInFavourOfKicking_ = 0;
        onChanged();
        return this;
      }

      private int numVotesNeededToKick_ ;
      /**
       * <code>required uint32 numVotesNeededToKick = 5;</code>
       * @return Whether the numVotesNeededToKick field is set.
       */
      @java.lang.Override
      public boolean hasNumVotesNeededToKick() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <code>required uint32 numVotesNeededToKick = 5;</code>
       * @return The numVotesNeededToKick.
       */
      @java.lang.Override
      public int getNumVotesNeededToKick() {
        return numVotesNeededToKick_;
      }
      /**
       * <code>required uint32 numVotesNeededToKick = 5;</code>
       * @param value The numVotesNeededToKick to set.
       * @return This builder for chaining.
       */
      public Builder setNumVotesNeededToKick(int value) {
        
        numVotesNeededToKick_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 numVotesNeededToKick = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearNumVotesNeededToKick() {
        bitField0_ = (bitField0_ & ~0x00000010);
        numVotesNeededToKick_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:KickPetitionUpdateMessage)
    }

    // @@protoc_insertion_point(class_scope:KickPetitionUpdateMessage)
    private static final de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<KickPetitionUpdateMessage>
        PARSER = new com.google.protobuf.AbstractParser<KickPetitionUpdateMessage>() {
      @java.lang.Override
      public KickPetitionUpdateMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<KickPetitionUpdateMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    boolean hasGameId();
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    int getGameId();

    /**
     * <code>required uint32 petitionId = 2;</code>
     * @return Whether the petitionId field is set.
     */
    boolean hasPetitionId();
    /**
     * <code>required uint32 petitionId = 2;</code>
     * @return The petitionId.
     */
    int getPetitionId();

    /**
     * <code>required uint32 numVotesAgainstKicking = 3;</code>
     * @return Whether the numVotesAgainstKicking field is set.
     */
    boolean hasNumVotesAgainstKicking();
    /**
     * <code>required uint32 numVotesAgainstKicking = 3;</code>
     * @return The numVotesAgainstKicking.
     */
    int getNumVotesAgainstKicking();

    /**
     * <code>required uint32 numVotesInFavourOfKicking = 4;</code>
     * @return Whether the numVotesInFavourOfKicking field is set.
     */
    boolean hasNumVotesInFavourOfKicking();
    /**
     * <code>required uint32 numVotesInFavourOfKicking = 4;</code>
     * @return The numVotesInFavourOfKicking.
     */
    int getNumVotesInFavourOfKicking();

    /**
     * <code>required uint32 resultPlayerKicked = 5;</code>
     * @return Whether the resultPlayerKicked field is set.
     */
    boolean hasResultPlayerKicked();
    /**
     * <code>required uint32 resultPlayerKicked = 5;</code>
     * @return The resultPlayerKicked.
     */
    int getResultPlayerKicked();

    /**
     * <code>required .EndKickPetitionMessage.PetitionEndReason petitionEndReason = 6;</code>
     * @return Whether the petitionEndReason field is set.
     */
    boolean hasPetitionEndReason();
    /**
     * <code>required .EndKickPetitionMessage.PetitionEndReason petitionEndReason = 6;</code>
     * @return The petitionEndReason.
     */
    de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.PetitionEndReason getPetitionEndReason();
  }
  /**
   * Protobuf type {@code EndKickPetitionMessage}
   */
  public static final class EndKickPetitionMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:EndKickPetitionMessage)
      EndKickPetitionMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use EndKickPetitionMessage.newBuilder() to construct.
    private EndKickPetitionMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private EndKickPetitionMessage() {
      petitionEndReason_ = 0;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new EndKickPetitionMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_EndKickPetitionMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_EndKickPetitionMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.class, de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.Builder.class);
    }

    /**
     * Protobuf enum {@code EndKickPetitionMessage.PetitionEndReason}
     */
    public enum PetitionEndReason
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>petitionEndEnoughVotes = 0;</code>
       */
      petitionEndEnoughVotes(0),
      /**
       * <code>petitionEndTooFewPlayers = 1;</code>
       */
      petitionEndTooFewPlayers(1),
      /**
       * <code>petitionEndPlayerLeft = 2;</code>
       */
      petitionEndPlayerLeft(2),
      /**
       * <code>petitionEndTimeout = 3;</code>
       */
      petitionEndTimeout(3),
      ;

      /**
       * <code>petitionEndEnoughVotes = 0;</code>
       */
      public static final int petitionEndEnoughVotes_VALUE = 0;
      /**
       * <code>petitionEndTooFewPlayers = 1;</code>
       */
      public static final int petitionEndTooFewPlayers_VALUE = 1;
      /**
       * <code>petitionEndPlayerLeft = 2;</code>
       */
      public static final int petitionEndPlayerLeft_VALUE = 2;
      /**
       * <code>petitionEndTimeout = 3;</code>
       */
      public static final int petitionEndTimeout_VALUE = 3;


      public final int getNumber() {
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static PetitionEndReason valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static PetitionEndReason forNumber(int value) {
        switch (value) {
          case 0: return petitionEndEnoughVotes;
          case 1: return petitionEndTooFewPlayers;
          case 2: return petitionEndPlayerLeft;
          case 3: return petitionEndTimeout;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<PetitionEndReason>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          PetitionEndReason> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<PetitionEndReason>() {
              public PetitionEndReason findValueByNumber(int number) {
                return PetitionEndReason.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.getDescriptor().getEnumTypes().get(0);
      }

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

      public static PetitionEndReason 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 value;

      private PetitionEndReason(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:EndKickPetitionMessage.PetitionEndReason)
    }

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_ = 0;
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    @java.lang.Override
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 gameId = 1;</code>
     * @return The gameId.
     */
    @java.lang.Override
    public int getGameId() {
      return gameId_;
    }

    public static final int PETITIONID_FIELD_NUMBER = 2;
    private int petitionId_ = 0;
    /**
     * <code>required uint32 petitionId = 2;</code>
     * @return Whether the petitionId field is set.
     */
    @java.lang.Override
    public boolean hasPetitionId() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required uint32 petitionId = 2;</code>
     * @return The petitionId.
     */
    @java.lang.Override
    public int getPetitionId() {
      return petitionId_;
    }

    public static final int NUMVOTESAGAINSTKICKING_FIELD_NUMBER = 3;
    private int numVotesAgainstKicking_ = 0;
    /**
     * <code>required uint32 numVotesAgainstKicking = 3;</code>
     * @return Whether the numVotesAgainstKicking field is set.
     */
    @java.lang.Override
    public boolean hasNumVotesAgainstKicking() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>required uint32 numVotesAgainstKicking = 3;</code>
     * @return The numVotesAgainstKicking.
     */
    @java.lang.Override
    public int getNumVotesAgainstKicking() {
      return numVotesAgainstKicking_;
    }

    public static final int NUMVOTESINFAVOUROFKICKING_FIELD_NUMBER = 4;
    private int numVotesInFavourOfKicking_ = 0;
    /**
     * <code>required uint32 numVotesInFavourOfKicking = 4;</code>
     * @return Whether the numVotesInFavourOfKicking field is set.
     */
    @java.lang.Override
    public boolean hasNumVotesInFavourOfKicking() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>required uint32 numVotesInFavourOfKicking = 4;</code>
     * @return The numVotesInFavourOfKicking.
     */
    @java.lang.Override
    public int getNumVotesInFavourOfKicking() {
      return numVotesInFavourOfKicking_;
    }

    public static final int RESULTPLAYERKICKED_FIELD_NUMBER = 5;
    private int resultPlayerKicked_ = 0;
    /**
     * <code>required uint32 resultPlayerKicked = 5;</code>
     * @return Whether the resultPlayerKicked field is set.
     */
    @java.lang.Override
    public boolean hasResultPlayerKicked() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <code>required uint32 resultPlayerKicked = 5;</code>
     * @return The resultPlayerKicked.
     */
    @java.lang.Override
    public int getResultPlayerKicked() {
      return resultPlayerKicked_;
    }

    public static final int PETITIONENDREASON_FIELD_NUMBER = 6;
    private int petitionEndReason_ = 0;
    /**
     * <code>required .EndKickPetitionMessage.PetitionEndReason petitionEndReason = 6;</code>
     * @return Whether the petitionEndReason field is set.
     */
    @java.lang.Override public boolean hasPetitionEndReason() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <code>required .EndKickPetitionMessage.PetitionEndReason petitionEndReason = 6;</code>
     * @return The petitionEndReason.
     */
    @java.lang.Override public de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.PetitionEndReason getPetitionEndReason() {
      de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.PetitionEndReason result = de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.PetitionEndReason.forNumber(petitionEndReason_);
      return result == null ? de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.PetitionEndReason.petitionEndEnoughVotes : result;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPetitionId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasNumVotesAgainstKicking()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasNumVotesInFavourOfKicking()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasResultPlayerKicked()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPetitionEndReason()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt32(2, petitionId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeUInt32(3, numVotesAgainstKicking_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeUInt32(4, numVotesInFavourOfKicking_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeUInt32(5, resultPlayerKicked_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        output.writeEnum(6, petitionEndReason_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, petitionId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, numVotesAgainstKicking_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, numVotesInFavourOfKicking_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, resultPlayerKicked_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(6, petitionEndReason_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage other = (de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage) obj;

      if (hasGameId() != other.hasGameId()) return false;
      if (hasGameId()) {
        if (getGameId()
            != other.getGameId()) return false;
      }
      if (hasPetitionId() != other.hasPetitionId()) return false;
      if (hasPetitionId()) {
        if (getPetitionId()
            != other.getPetitionId()) return false;
      }
      if (hasNumVotesAgainstKicking() != other.hasNumVotesAgainstKicking()) return false;
      if (hasNumVotesAgainstKicking()) {
        if (getNumVotesAgainstKicking()
            != other.getNumVotesAgainstKicking()) return false;
      }
      if (hasNumVotesInFavourOfKicking() != other.hasNumVotesInFavourOfKicking()) return false;
      if (hasNumVotesInFavourOfKicking()) {
        if (getNumVotesInFavourOfKicking()
            != other.getNumVotesInFavourOfKicking()) return false;
      }
      if (hasResultPlayerKicked() != other.hasResultPlayerKicked()) return false;
      if (hasResultPlayerKicked()) {
        if (getResultPlayerKicked()
            != other.getResultPlayerKicked()) return false;
      }
      if (hasPetitionEndReason() != other.hasPetitionEndReason()) return false;
      if (hasPetitionEndReason()) {
        if (petitionEndReason_ != other.petitionEndReason_) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasGameId()) {
        hash = (37 * hash) + GAMEID_FIELD_NUMBER;
        hash = (53 * hash) + getGameId();
      }
      if (hasPetitionId()) {
        hash = (37 * hash) + PETITIONID_FIELD_NUMBER;
        hash = (53 * hash) + getPetitionId();
      }
      if (hasNumVotesAgainstKicking()) {
        hash = (37 * hash) + NUMVOTESAGAINSTKICKING_FIELD_NUMBER;
        hash = (53 * hash) + getNumVotesAgainstKicking();
      }
      if (hasNumVotesInFavourOfKicking()) {
        hash = (37 * hash) + NUMVOTESINFAVOUROFKICKING_FIELD_NUMBER;
        hash = (53 * hash) + getNumVotesInFavourOfKicking();
      }
      if (hasResultPlayerKicked()) {
        hash = (37 * hash) + RESULTPLAYERKICKED_FIELD_NUMBER;
        hash = (53 * hash) + getResultPlayerKicked();
      }
      if (hasPetitionEndReason()) {
        hash = (37 * hash) + PETITIONENDREASON_FIELD_NUMBER;
        hash = (53 * hash) + petitionEndReason_;
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code EndKickPetitionMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:EndKickPetitionMessage)
        de.pokerth.protocol.ProtoBuf.EndKickPetitionMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_EndKickPetitionMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_EndKickPetitionMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.class, de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        gameId_ = 0;
        petitionId_ = 0;
        numVotesAgainstKicking_ = 0;
        numVotesInFavourOfKicking_ = 0;
        resultPlayerKicked_ = 0;
        petitionEndReason_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_EndKickPetitionMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage build() {
        de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage result = new de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.gameId_ = gameId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.petitionId_ = petitionId_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.numVotesAgainstKicking_ = numVotesAgainstKicking_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.numVotesInFavourOfKicking_ = numVotesInFavourOfKicking_;
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.resultPlayerKicked_ = resultPlayerKicked_;
          to_bitField0_ |= 0x00000010;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.petitionEndReason_ = petitionEndReason_;
          to_bitField0_ |= 0x00000020;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasPetitionId()) {
          setPetitionId(other.getPetitionId());
        }
        if (other.hasNumVotesAgainstKicking()) {
          setNumVotesAgainstKicking(other.getNumVotesAgainstKicking());
        }
        if (other.hasNumVotesInFavourOfKicking()) {
          setNumVotesInFavourOfKicking(other.getNumVotesInFavourOfKicking());
        }
        if (other.hasResultPlayerKicked()) {
          setResultPlayerKicked(other.getResultPlayerKicked());
        }
        if (other.hasPetitionEndReason()) {
          setPetitionEndReason(other.getPetitionEndReason());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasGameId()) {
          return false;
        }
        if (!hasPetitionId()) {
          return false;
        }
        if (!hasNumVotesAgainstKicking()) {
          return false;
        }
        if (!hasNumVotesInFavourOfKicking()) {
          return false;
        }
        if (!hasResultPlayerKicked()) {
          return false;
        }
        if (!hasPetitionEndReason()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                gameId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                petitionId_ = input.readUInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                numVotesAgainstKicking_ = input.readUInt32();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 32: {
                numVotesInFavourOfKicking_ = input.readUInt32();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              case 40: {
                resultPlayerKicked_ = input.readUInt32();
                bitField0_ |= 0x00000010;
                break;
              } // case 40
              case 48: {
                int tmpRaw = input.readEnum();
                de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.PetitionEndReason tmpValue =
                    de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.PetitionEndReason.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(6, tmpRaw);
                } else {
                  petitionEndReason_ = tmpRaw;
                  bitField0_ |= 0x00000020;
                }
                break;
              } // case 48
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int gameId_ ;
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return Whether the gameId field is set.
       */
      @java.lang.Override
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return The gameId.
       */
      @java.lang.Override
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @param value The gameId to set.
       * @return This builder for chaining.
       */
      public Builder setGameId(int value) {
        
        gameId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 gameId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        onChanged();
        return this;
      }

      private int petitionId_ ;
      /**
       * <code>required uint32 petitionId = 2;</code>
       * @return Whether the petitionId field is set.
       */
      @java.lang.Override
      public boolean hasPetitionId() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required uint32 petitionId = 2;</code>
       * @return The petitionId.
       */
      @java.lang.Override
      public int getPetitionId() {
        return petitionId_;
      }
      /**
       * <code>required uint32 petitionId = 2;</code>
       * @param value The petitionId to set.
       * @return This builder for chaining.
       */
      public Builder setPetitionId(int value) {
        
        petitionId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 petitionId = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearPetitionId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        petitionId_ = 0;
        onChanged();
        return this;
      }

      private int numVotesAgainstKicking_ ;
      /**
       * <code>required uint32 numVotesAgainstKicking = 3;</code>
       * @return Whether the numVotesAgainstKicking field is set.
       */
      @java.lang.Override
      public boolean hasNumVotesAgainstKicking() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>required uint32 numVotesAgainstKicking = 3;</code>
       * @return The numVotesAgainstKicking.
       */
      @java.lang.Override
      public int getNumVotesAgainstKicking() {
        return numVotesAgainstKicking_;
      }
      /**
       * <code>required uint32 numVotesAgainstKicking = 3;</code>
       * @param value The numVotesAgainstKicking to set.
       * @return This builder for chaining.
       */
      public Builder setNumVotesAgainstKicking(int value) {
        
        numVotesAgainstKicking_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 numVotesAgainstKicking = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearNumVotesAgainstKicking() {
        bitField0_ = (bitField0_ & ~0x00000004);
        numVotesAgainstKicking_ = 0;
        onChanged();
        return this;
      }

      private int numVotesInFavourOfKicking_ ;
      /**
       * <code>required uint32 numVotesInFavourOfKicking = 4;</code>
       * @return Whether the numVotesInFavourOfKicking field is set.
       */
      @java.lang.Override
      public boolean hasNumVotesInFavourOfKicking() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>required uint32 numVotesInFavourOfKicking = 4;</code>
       * @return The numVotesInFavourOfKicking.
       */
      @java.lang.Override
      public int getNumVotesInFavourOfKicking() {
        return numVotesInFavourOfKicking_;
      }
      /**
       * <code>required uint32 numVotesInFavourOfKicking = 4;</code>
       * @param value The numVotesInFavourOfKicking to set.
       * @return This builder for chaining.
       */
      public Builder setNumVotesInFavourOfKicking(int value) {
        
        numVotesInFavourOfKicking_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 numVotesInFavourOfKicking = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearNumVotesInFavourOfKicking() {
        bitField0_ = (bitField0_ & ~0x00000008);
        numVotesInFavourOfKicking_ = 0;
        onChanged();
        return this;
      }

      private int resultPlayerKicked_ ;
      /**
       * <code>required uint32 resultPlayerKicked = 5;</code>
       * @return Whether the resultPlayerKicked field is set.
       */
      @java.lang.Override
      public boolean hasResultPlayerKicked() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <code>required uint32 resultPlayerKicked = 5;</code>
       * @return The resultPlayerKicked.
       */
      @java.lang.Override
      public int getResultPlayerKicked() {
        return resultPlayerKicked_;
      }
      /**
       * <code>required uint32 resultPlayerKicked = 5;</code>
       * @param value The resultPlayerKicked to set.
       * @return This builder for chaining.
       */
      public Builder setResultPlayerKicked(int value) {
        
        resultPlayerKicked_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 resultPlayerKicked = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearResultPlayerKicked() {
        bitField0_ = (bitField0_ & ~0x00000010);
        resultPlayerKicked_ = 0;
        onChanged();
        return this;
      }

      private int petitionEndReason_ = 0;
      /**
       * <code>required .EndKickPetitionMessage.PetitionEndReason petitionEndReason = 6;</code>
       * @return Whether the petitionEndReason field is set.
       */
      @java.lang.Override public boolean hasPetitionEndReason() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <code>required .EndKickPetitionMessage.PetitionEndReason petitionEndReason = 6;</code>
       * @return The petitionEndReason.
       */
      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.PetitionEndReason getPetitionEndReason() {
        de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.PetitionEndReason result = de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.PetitionEndReason.forNumber(petitionEndReason_);
        return result == null ? de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.PetitionEndReason.petitionEndEnoughVotes : result;
      }
      /**
       * <code>required .EndKickPetitionMessage.PetitionEndReason petitionEndReason = 6;</code>
       * @param value The petitionEndReason to set.
       * @return This builder for chaining.
       */
      public Builder setPetitionEndReason(de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.PetitionEndReason value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000020;
        petitionEndReason_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>required .EndKickPetitionMessage.PetitionEndReason petitionEndReason = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearPetitionEndReason() {
        bitField0_ = (bitField0_ & ~0x00000020);
        petitionEndReason_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:EndKickPetitionMessage)
    }

    // @@protoc_insertion_point(class_scope:EndKickPetitionMessage)
    private static final de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<EndKickPetitionMessage>
        PARSER = new com.google.protobuf.AbstractParser<EndKickPetitionMessage>() {
      @java.lang.Override
      public EndKickPetitionMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<EndKickPetitionMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>repeated .StatisticsMessage.StatisticsData statisticsData = 1;</code>
     */
    java.util.List<de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData> 
        getStatisticsDataList();
    /**
     * <code>repeated .StatisticsMessage.StatisticsData statisticsData = 1;</code>
     */
    de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData getStatisticsData(int index);
    /**
     * <code>repeated .StatisticsMessage.StatisticsData statisticsData = 1;</code>
     */
    int getStatisticsDataCount();
    /**
     * <code>repeated .StatisticsMessage.StatisticsData statisticsData = 1;</code>
     */
    java.util.List<? extends de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsDataOrBuilder> 
        getStatisticsDataOrBuilderList();
    /**
     * <code>repeated .StatisticsMessage.StatisticsData statisticsData = 1;</code>
     */
    de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsDataOrBuilder getStatisticsDataOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code StatisticsMessage}
   */
  public static final class StatisticsMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:StatisticsMessage)
      StatisticsMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use StatisticsMessage.newBuilder() to construct.
    private StatisticsMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private StatisticsMessage() {
      statisticsData_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new StatisticsMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_StatisticsMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_StatisticsMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.StatisticsMessage.class, de.pokerth.protocol.ProtoBuf.StatisticsMessage.Builder.class);
    }

    public interface StatisticsDataOrBuilder extends
        // @@protoc_insertion_point(interface_extends:StatisticsMessage.StatisticsData)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>required .StatisticsMessage.StatisticsData.StatisticsType statisticsType = 1;</code>
       * @return Whether the statisticsType field is set.
       */
      boolean hasStatisticsType();
      /**
       * <code>required .StatisticsMessage.StatisticsData.StatisticsType statisticsType = 1;</code>
       * @return The statisticsType.
       */
      de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.StatisticsType getStatisticsType();

      /**
       * <code>required uint32 statisticsValue = 2;</code>
       * @return Whether the statisticsValue field is set.
       */
      boolean hasStatisticsValue();
      /**
       * <code>required uint32 statisticsValue = 2;</code>
       * @return The statisticsValue.
       */
      int getStatisticsValue();
    }
    /**
     * Protobuf type {@code StatisticsMessage.StatisticsData}
     */
    public static final class StatisticsData extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:StatisticsMessage.StatisticsData)
        StatisticsDataOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use StatisticsData.newBuilder() to construct.
      private StatisticsData(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private StatisticsData() {
        statisticsType_ = 1;
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new StatisticsData();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_StatisticsMessage_StatisticsData_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_StatisticsMessage_StatisticsData_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.class, de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.Builder.class);
      }

      /**
       * Protobuf enum {@code StatisticsMessage.StatisticsData.StatisticsType}
       */
      public enum StatisticsType
          implements com.google.protobuf.ProtocolMessageEnum {
        /**
         * <code>statNumberOfPlayers = 1;</code>
         */
        statNumberOfPlayers(1),
        ;

        /**
         * <code>statNumberOfPlayers = 1;</code>
         */
        public static final int statNumberOfPlayers_VALUE = 1;


        public final int getNumber() {
          return value;
        }

        /**
         * @param value The numeric wire value of the corresponding enum entry.
         * @return The enum associated with the given numeric wire value.
         * @deprecated Use {@link #forNumber(int)} instead.
         */
        @java.lang.Deprecated
        public static StatisticsType valueOf(int value) {
          return forNumber(value);
        }

        /**
         * @param value The numeric wire value of the corresponding enum entry.
         * @return The enum associated with the given numeric wire value.
         */
        public static StatisticsType forNumber(int value) {
          switch (value) {
            case 1: return statNumberOfPlayers;
            default: return null;
          }
        }

        public static com.google.protobuf.Internal.EnumLiteMap<StatisticsType>
            internalGetValueMap() {
          return internalValueMap;
        }
        private static final com.google.protobuf.Internal.EnumLiteMap<
            StatisticsType> internalValueMap =
              new com.google.protobuf.Internal.EnumLiteMap<StatisticsType>() {
                public StatisticsType findValueByNumber(int number) {
                  return StatisticsType.forNumber(number);
                }
              };

        public final com.google.protobuf.Descriptors.EnumValueDescriptor
            getValueDescriptor() {
          return getDescriptor().getValues().get(ordinal());
        }
        public final com.google.protobuf.Descriptors.EnumDescriptor
            getDescriptorForType() {
          return getDescriptor();
        }
        public static final com.google.protobuf.Descriptors.EnumDescriptor
            getDescriptor() {
          return de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.getDescriptor().getEnumTypes().get(0);
        }

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

        public static StatisticsType 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 value;

        private StatisticsType(int value) {
          this.value = value;
        }

        // @@protoc_insertion_point(enum_scope:StatisticsMessage.StatisticsData.StatisticsType)
      }

      private int bitField0_;
      public static final int STATISTICSTYPE_FIELD_NUMBER = 1;
      private int statisticsType_ = 1;
      /**
       * <code>required .StatisticsMessage.StatisticsData.StatisticsType statisticsType = 1;</code>
       * @return Whether the statisticsType field is set.
       */
      @java.lang.Override public boolean hasStatisticsType() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required .StatisticsMessage.StatisticsData.StatisticsType statisticsType = 1;</code>
       * @return The statisticsType.
       */
      @java.lang.Override public de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.StatisticsType getStatisticsType() {
        de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.StatisticsType result = de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.StatisticsType.forNumber(statisticsType_);
        return result == null ? de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.StatisticsType.statNumberOfPlayers : result;
      }

      public static final int STATISTICSVALUE_FIELD_NUMBER = 2;
      private int statisticsValue_ = 0;
      /**
       * <code>required uint32 statisticsValue = 2;</code>
       * @return Whether the statisticsValue field is set.
       */
      @java.lang.Override
      public boolean hasStatisticsValue() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required uint32 statisticsValue = 2;</code>
       * @return The statisticsValue.
       */
      @java.lang.Override
      public int getStatisticsValue() {
        return statisticsValue_;
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

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

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (((bitField0_ & 0x00000001) != 0)) {
          output.writeEnum(1, statisticsType_);
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          output.writeUInt32(2, statisticsValue_);
        }
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeEnumSize(1, statisticsType_);
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(2, statisticsValue_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData)) {
          return super.equals(obj);
        }
        de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData other = (de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData) obj;

        if (hasStatisticsType() != other.hasStatisticsType()) return false;
        if (hasStatisticsType()) {
          if (statisticsType_ != other.statisticsType_) return false;
        }
        if (hasStatisticsValue() != other.hasStatisticsValue()) return false;
        if (hasStatisticsValue()) {
          if (getStatisticsValue()
              != other.getStatisticsValue()) return false;
        }
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasStatisticsType()) {
          hash = (37 * hash) + STATISTICSTYPE_FIELD_NUMBER;
          hash = (53 * hash) + statisticsType_;
        }
        if (hasStatisticsValue()) {
          hash = (37 * hash) + STATISTICSVALUE_FIELD_NUMBER;
          hash = (53 * hash) + getStatisticsValue();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code StatisticsMessage.StatisticsData}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:StatisticsMessage.StatisticsData)
          de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsDataOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return de.pokerth.protocol.ProtoBuf.internal_static_StatisticsMessage_StatisticsData_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return de.pokerth.protocol.ProtoBuf.internal_static_StatisticsMessage_StatisticsData_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.class, de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.Builder.class);
        }

        // Construct using de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.newBuilder()
        private Builder() {

        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);

        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          statisticsType_ = 1;
          statisticsValue_ = 0;
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return de.pokerth.protocol.ProtoBuf.internal_static_StatisticsMessage_StatisticsData_descriptor;
        }

        @java.lang.Override
        public de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData getDefaultInstanceForType() {
          return de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.getDefaultInstance();
        }

        @java.lang.Override
        public de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData build() {
          de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData buildPartial() {
          de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData result = new de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData(this);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }

        private void buildPartial0(de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData result) {
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.statisticsType_ = statisticsType_;
            to_bitField0_ |= 0x00000001;
          }
          if (((from_bitField0_ & 0x00000002) != 0)) {
            result.statisticsValue_ = statisticsValue_;
            to_bitField0_ |= 0x00000002;
          }
          result.bitField0_ |= to_bitField0_;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData) {
            return mergeFrom((de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData other) {
          if (other == de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.getDefaultInstance()) return this;
          if (other.hasStatisticsType()) {
            setStatisticsType(other.getStatisticsType());
          }
          if (other.hasStatisticsValue()) {
            setStatisticsValue(other.getStatisticsValue());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          if (!hasStatisticsType()) {
            return false;
          }
          if (!hasStatisticsValue()) {
            return false;
          }
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 8: {
                  int tmpRaw = input.readEnum();
                  de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.StatisticsType tmpValue =
                      de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.StatisticsType.forNumber(tmpRaw);
                  if (tmpValue == null) {
                    mergeUnknownVarintField(1, tmpRaw);
                  } else {
                    statisticsType_ = tmpRaw;
                    bitField0_ |= 0x00000001;
                  }
                  break;
                } // case 8
                case 16: {
                  statisticsValue_ = input.readUInt32();
                  bitField0_ |= 0x00000002;
                  break;
                } // case 16
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        private int bitField0_;

        private int statisticsType_ = 1;
        /**
         * <code>required .StatisticsMessage.StatisticsData.StatisticsType statisticsType = 1;</code>
         * @return Whether the statisticsType field is set.
         */
        @java.lang.Override public boolean hasStatisticsType() {
          return ((bitField0_ & 0x00000001) != 0);
        }
        /**
         * <code>required .StatisticsMessage.StatisticsData.StatisticsType statisticsType = 1;</code>
         * @return The statisticsType.
         */
        @java.lang.Override
        public de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.StatisticsType getStatisticsType() {
          de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.StatisticsType result = de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.StatisticsType.forNumber(statisticsType_);
          return result == null ? de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.StatisticsType.statNumberOfPlayers : result;
        }
        /**
         * <code>required .StatisticsMessage.StatisticsData.StatisticsType statisticsType = 1;</code>
         * @param value The statisticsType to set.
         * @return This builder for chaining.
         */
        public Builder setStatisticsType(de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.StatisticsType value) {
          if (value == null) {
            throw new NullPointerException();
          }
          bitField0_ |= 0x00000001;
          statisticsType_ = value.getNumber();
          onChanged();
          return this;
        }
        /**
         * <code>required .StatisticsMessage.StatisticsData.StatisticsType statisticsType = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearStatisticsType() {
          bitField0_ = (bitField0_ & ~0x00000001);
          statisticsType_ = 1;
          onChanged();
          return this;
        }

        private int statisticsValue_ ;
        /**
         * <code>required uint32 statisticsValue = 2;</code>
         * @return Whether the statisticsValue field is set.
         */
        @java.lang.Override
        public boolean hasStatisticsValue() {
          return ((bitField0_ & 0x00000002) != 0);
        }
        /**
         * <code>required uint32 statisticsValue = 2;</code>
         * @return The statisticsValue.
         */
        @java.lang.Override
        public int getStatisticsValue() {
          return statisticsValue_;
        }
        /**
         * <code>required uint32 statisticsValue = 2;</code>
         * @param value The statisticsValue to set.
         * @return This builder for chaining.
         */
        public Builder setStatisticsValue(int value) {
          
          statisticsValue_ = value;
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        /**
         * <code>required uint32 statisticsValue = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearStatisticsValue() {
          bitField0_ = (bitField0_ & ~0x00000002);
          statisticsValue_ = 0;
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:StatisticsMessage.StatisticsData)
      }

      // @@protoc_insertion_point(class_scope:StatisticsMessage.StatisticsData)
      private static final de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData();
      }

      public static de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      @java.lang.Deprecated public static final com.google.protobuf.Parser<StatisticsData>
          PARSER = new com.google.protobuf.AbstractParser<StatisticsData>() {
        @java.lang.Override
        public StatisticsData parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

      public static com.google.protobuf.Parser<StatisticsData> parser() {
        return PARSER;
      }

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

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public static final int STATISTICSDATA_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private java.util.List<de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData> statisticsData_;
    /**
     * <code>repeated .StatisticsMessage.StatisticsData statisticsData = 1;</code>
     */
    @java.lang.Override
    public java.util.List<de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData> getStatisticsDataList() {
      return statisticsData_;
    }
    /**
     * <code>repeated .StatisticsMessage.StatisticsData statisticsData = 1;</code>
     */
    @java.lang.Override
    public java.util.List<? extends de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsDataOrBuilder> 
        getStatisticsDataOrBuilderList() {
      return statisticsData_;
    }
    /**
     * <code>repeated .StatisticsMessage.StatisticsData statisticsData = 1;</code>
     */
    @java.lang.Override
    public int getStatisticsDataCount() {
      return statisticsData_.size();
    }
    /**
     * <code>repeated .StatisticsMessage.StatisticsData statisticsData = 1;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData getStatisticsData(int index) {
      return statisticsData_.get(index);
    }
    /**
     * <code>repeated .StatisticsMessage.StatisticsData statisticsData = 1;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsDataOrBuilder getStatisticsDataOrBuilder(
        int index) {
      return statisticsData_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      for (int i = 0; i < getStatisticsDataCount(); i++) {
        if (!getStatisticsData(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

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

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

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

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.StatisticsMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.StatisticsMessage other = (de.pokerth.protocol.ProtoBuf.StatisticsMessage) obj;

      if (!getStatisticsDataList()
          .equals(other.getStatisticsDataList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getStatisticsDataCount() > 0) {
        hash = (37 * hash) + STATISTICSDATA_FIELD_NUMBER;
        hash = (53 * hash) + getStatisticsDataList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.StatisticsMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.StatisticsMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.StatisticsMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.StatisticsMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.StatisticsMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.StatisticsMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.StatisticsMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.StatisticsMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.StatisticsMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.StatisticsMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.StatisticsMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.StatisticsMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.StatisticsMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code StatisticsMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:StatisticsMessage)
        de.pokerth.protocol.ProtoBuf.StatisticsMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_StatisticsMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_StatisticsMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.StatisticsMessage.class, de.pokerth.protocol.ProtoBuf.StatisticsMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.StatisticsMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        if (statisticsDataBuilder_ == null) {
          statisticsData_ = java.util.Collections.emptyList();
        } else {
          statisticsData_ = null;
          statisticsDataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_StatisticsMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.StatisticsMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.StatisticsMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.StatisticsMessage build() {
        de.pokerth.protocol.ProtoBuf.StatisticsMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.StatisticsMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.StatisticsMessage result = new de.pokerth.protocol.ProtoBuf.StatisticsMessage(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(de.pokerth.protocol.ProtoBuf.StatisticsMessage result) {
        if (statisticsDataBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            statisticsData_ = java.util.Collections.unmodifiableList(statisticsData_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.statisticsData_ = statisticsData_;
        } else {
          result.statisticsData_ = statisticsDataBuilder_.build();
        }
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.StatisticsMessage result) {
        int from_bitField0_ = bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.StatisticsMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.StatisticsMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.StatisticsMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.StatisticsMessage.getDefaultInstance()) return this;
        if (statisticsDataBuilder_ == null) {
          if (!other.statisticsData_.isEmpty()) {
            if (statisticsData_.isEmpty()) {
              statisticsData_ = other.statisticsData_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureStatisticsDataIsMutable();
              statisticsData_.addAll(other.statisticsData_);
            }
            onChanged();
          }
        } else {
          if (!other.statisticsData_.isEmpty()) {
            if (statisticsDataBuilder_.isEmpty()) {
              statisticsDataBuilder_.dispose();
              statisticsDataBuilder_ = null;
              statisticsData_ = other.statisticsData_;
              bitField0_ = (bitField0_ & ~0x00000001);
              statisticsDataBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getStatisticsDataFieldBuilder() : null;
            } else {
              statisticsDataBuilder_.addAllMessages(other.statisticsData_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        for (int i = 0; i < getStatisticsDataCount(); i++) {
          if (!getStatisticsData(i).isInitialized()) {
            return false;
          }
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData m =
                    input.readMessage(
                        de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.PARSER,
                        extensionRegistry);
                if (statisticsDataBuilder_ == null) {
                  ensureStatisticsDataIsMutable();
                  statisticsData_.add(m);
                } else {
                  statisticsDataBuilder_.addMessage(m);
                }
                break;
              } // case 10
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.util.List<de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData> statisticsData_ =
        java.util.Collections.emptyList();
      private void ensureStatisticsDataIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          statisticsData_ = new java.util.ArrayList<de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData>(statisticsData_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData, de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.Builder, de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsDataOrBuilder> statisticsDataBuilder_;

      /**
       * <code>repeated .StatisticsMessage.StatisticsData statisticsData = 1;</code>
       */
      public java.util.List<de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData> getStatisticsDataList() {
        if (statisticsDataBuilder_ == null) {
          return java.util.Collections.unmodifiableList(statisticsData_);
        } else {
          return statisticsDataBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .StatisticsMessage.StatisticsData statisticsData = 1;</code>
       */
      public int getStatisticsDataCount() {
        if (statisticsDataBuilder_ == null) {
          return statisticsData_.size();
        } else {
          return statisticsDataBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .StatisticsMessage.StatisticsData statisticsData = 1;</code>
       */
      public de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData getStatisticsData(int index) {
        if (statisticsDataBuilder_ == null) {
          return statisticsData_.get(index);
        } else {
          return statisticsDataBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .StatisticsMessage.StatisticsData statisticsData = 1;</code>
       */
      public Builder setStatisticsData(
          int index, de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData value) {
        if (statisticsDataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureStatisticsDataIsMutable();
          statisticsData_.set(index, value);
          onChanged();
        } else {
          statisticsDataBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .StatisticsMessage.StatisticsData statisticsData = 1;</code>
       */
      public Builder setStatisticsData(
          int index, de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.Builder builderForValue) {
        if (statisticsDataBuilder_ == null) {
          ensureStatisticsDataIsMutable();
          statisticsData_.set(index, builderForValue.build());
          onChanged();
        } else {
          statisticsDataBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .StatisticsMessage.StatisticsData statisticsData = 1;</code>
       */
      public Builder addStatisticsData(de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData value) {
        if (statisticsDataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureStatisticsDataIsMutable();
          statisticsData_.add(value);
          onChanged();
        } else {
          statisticsDataBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .StatisticsMessage.StatisticsData statisticsData = 1;</code>
       */
      public Builder addStatisticsData(
          int index, de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData value) {
        if (statisticsDataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureStatisticsDataIsMutable();
          statisticsData_.add(index, value);
          onChanged();
        } else {
          statisticsDataBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .StatisticsMessage.StatisticsData statisticsData = 1;</code>
       */
      public Builder addStatisticsData(
          de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.Builder builderForValue) {
        if (statisticsDataBuilder_ == null) {
          ensureStatisticsDataIsMutable();
          statisticsData_.add(builderForValue.build());
          onChanged();
        } else {
          statisticsDataBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .StatisticsMessage.StatisticsData statisticsData = 1;</code>
       */
      public Builder addStatisticsData(
          int index, de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.Builder builderForValue) {
        if (statisticsDataBuilder_ == null) {
          ensureStatisticsDataIsMutable();
          statisticsData_.add(index, builderForValue.build());
          onChanged();
        } else {
          statisticsDataBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .StatisticsMessage.StatisticsData statisticsData = 1;</code>
       */
      public Builder addAllStatisticsData(
          java.lang.Iterable<? extends de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData> values) {
        if (statisticsDataBuilder_ == null) {
          ensureStatisticsDataIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, statisticsData_);
          onChanged();
        } else {
          statisticsDataBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .StatisticsMessage.StatisticsData statisticsData = 1;</code>
       */
      public Builder clearStatisticsData() {
        if (statisticsDataBuilder_ == null) {
          statisticsData_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          statisticsDataBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .StatisticsMessage.StatisticsData statisticsData = 1;</code>
       */
      public Builder removeStatisticsData(int index) {
        if (statisticsDataBuilder_ == null) {
          ensureStatisticsDataIsMutable();
          statisticsData_.remove(index);
          onChanged();
        } else {
          statisticsDataBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .StatisticsMessage.StatisticsData statisticsData = 1;</code>
       */
      public de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.Builder getStatisticsDataBuilder(
          int index) {
        return getStatisticsDataFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .StatisticsMessage.StatisticsData statisticsData = 1;</code>
       */
      public de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsDataOrBuilder getStatisticsDataOrBuilder(
          int index) {
        if (statisticsDataBuilder_ == null) {
          return statisticsData_.get(index);  } else {
          return statisticsDataBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .StatisticsMessage.StatisticsData statisticsData = 1;</code>
       */
      public java.util.List<? extends de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsDataOrBuilder> 
           getStatisticsDataOrBuilderList() {
        if (statisticsDataBuilder_ != null) {
          return statisticsDataBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(statisticsData_);
        }
      }
      /**
       * <code>repeated .StatisticsMessage.StatisticsData statisticsData = 1;</code>
       */
      public de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.Builder addStatisticsDataBuilder() {
        return getStatisticsDataFieldBuilder().addBuilder(
            de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.getDefaultInstance());
      }
      /**
       * <code>repeated .StatisticsMessage.StatisticsData statisticsData = 1;</code>
       */
      public de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.Builder addStatisticsDataBuilder(
          int index) {
        return getStatisticsDataFieldBuilder().addBuilder(
            index, de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.getDefaultInstance());
      }
      /**
       * <code>repeated .StatisticsMessage.StatisticsData statisticsData = 1;</code>
       */
      public java.util.List<de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.Builder> 
           getStatisticsDataBuilderList() {
        return getStatisticsDataFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData, de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.Builder, de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsDataOrBuilder> 
          getStatisticsDataFieldBuilder() {
        if (statisticsDataBuilder_ == null) {
          statisticsDataBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData, de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.Builder, de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsDataOrBuilder>(
                  statisticsData_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          statisticsData_ = null;
        }
        return statisticsDataBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:StatisticsMessage)
    }

    // @@protoc_insertion_point(class_scope:StatisticsMessage)
    private static final de.pokerth.protocol.ProtoBuf.StatisticsMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.StatisticsMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.StatisticsMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<StatisticsMessage>
        PARSER = new com.google.protobuf.AbstractParser<StatisticsMessage>() {
      @java.lang.Override
      public StatisticsMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<StatisticsMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.StatisticsMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>optional uint32 targetGameId = 1;</code>
     * @return Whether the targetGameId field is set.
     */
    boolean hasTargetGameId();
    /**
     * <code>optional uint32 targetGameId = 1;</code>
     * @return The targetGameId.
     */
    int getTargetGameId();

    /**
     * <code>optional uint32 targetPlayerId = 2;</code>
     * @return Whether the targetPlayerId field is set.
     */
    boolean hasTargetPlayerId();
    /**
     * <code>optional uint32 targetPlayerId = 2;</code>
     * @return The targetPlayerId.
     */
    int getTargetPlayerId();

    /**
     * <code>required string chatText = 3;</code>
     * @return Whether the chatText field is set.
     */
    boolean hasChatText();
    /**
     * <code>required string chatText = 3;</code>
     * @return The chatText.
     */
    java.lang.String getChatText();
    /**
     * <code>required string chatText = 3;</code>
     * @return The bytes for chatText.
     */
    com.google.protobuf.ByteString
        getChatTextBytes();
  }
  /**
   * Protobuf type {@code ChatRequestMessage}
   */
  public static final class ChatRequestMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ChatRequestMessage)
      ChatRequestMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ChatRequestMessage.newBuilder() to construct.
    private ChatRequestMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ChatRequestMessage() {
      chatText_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ChatRequestMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_ChatRequestMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_ChatRequestMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.ChatRequestMessage.class, de.pokerth.protocol.ProtoBuf.ChatRequestMessage.Builder.class);
    }

    private int bitField0_;
    public static final int TARGETGAMEID_FIELD_NUMBER = 1;
    private int targetGameId_ = 0;
    /**
     * <code>optional uint32 targetGameId = 1;</code>
     * @return Whether the targetGameId field is set.
     */
    @java.lang.Override
    public boolean hasTargetGameId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional uint32 targetGameId = 1;</code>
     * @return The targetGameId.
     */
    @java.lang.Override
    public int getTargetGameId() {
      return targetGameId_;
    }

    public static final int TARGETPLAYERID_FIELD_NUMBER = 2;
    private int targetPlayerId_ = 0;
    /**
     * <code>optional uint32 targetPlayerId = 2;</code>
     * @return Whether the targetPlayerId field is set.
     */
    @java.lang.Override
    public boolean hasTargetPlayerId() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional uint32 targetPlayerId = 2;</code>
     * @return The targetPlayerId.
     */
    @java.lang.Override
    public int getTargetPlayerId() {
      return targetPlayerId_;
    }

    public static final int CHATTEXT_FIELD_NUMBER = 3;
    @SuppressWarnings("serial")
    private volatile java.lang.Object chatText_ = "";
    /**
     * <code>required string chatText = 3;</code>
     * @return Whether the chatText field is set.
     */
    @java.lang.Override
    public boolean hasChatText() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>required string chatText = 3;</code>
     * @return The chatText.
     */
    @java.lang.Override
    public java.lang.String getChatText() {
      java.lang.Object ref = chatText_;
      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()) {
          chatText_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string chatText = 3;</code>
     * @return The bytes for chatText.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getChatTextBytes() {
      java.lang.Object ref = chatText_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        chatText_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

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

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, targetGameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt32(2, targetPlayerId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, chatText_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, targetGameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, targetPlayerId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, chatText_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.ChatRequestMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.ChatRequestMessage other = (de.pokerth.protocol.ProtoBuf.ChatRequestMessage) obj;

      if (hasTargetGameId() != other.hasTargetGameId()) return false;
      if (hasTargetGameId()) {
        if (getTargetGameId()
            != other.getTargetGameId()) return false;
      }
      if (hasTargetPlayerId() != other.hasTargetPlayerId()) return false;
      if (hasTargetPlayerId()) {
        if (getTargetPlayerId()
            != other.getTargetPlayerId()) return false;
      }
      if (hasChatText() != other.hasChatText()) return false;
      if (hasChatText()) {
        if (!getChatText()
            .equals(other.getChatText())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasTargetGameId()) {
        hash = (37 * hash) + TARGETGAMEID_FIELD_NUMBER;
        hash = (53 * hash) + getTargetGameId();
      }
      if (hasTargetPlayerId()) {
        hash = (37 * hash) + TARGETPLAYERID_FIELD_NUMBER;
        hash = (53 * hash) + getTargetPlayerId();
      }
      if (hasChatText()) {
        hash = (37 * hash) + CHATTEXT_FIELD_NUMBER;
        hash = (53 * hash) + getChatText().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.ChatRequestMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.ChatRequestMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ChatRequestMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.ChatRequestMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ChatRequestMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.ChatRequestMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ChatRequestMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.ChatRequestMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ChatRequestMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.ChatRequestMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ChatRequestMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.ChatRequestMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.ChatRequestMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code ChatRequestMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ChatRequestMessage)
        de.pokerth.protocol.ProtoBuf.ChatRequestMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_ChatRequestMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_ChatRequestMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.ChatRequestMessage.class, de.pokerth.protocol.ProtoBuf.ChatRequestMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.ChatRequestMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        targetGameId_ = 0;
        targetPlayerId_ = 0;
        chatText_ = "";
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_ChatRequestMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.ChatRequestMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.ChatRequestMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.ChatRequestMessage build() {
        de.pokerth.protocol.ProtoBuf.ChatRequestMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.ChatRequestMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.ChatRequestMessage result = new de.pokerth.protocol.ProtoBuf.ChatRequestMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.ChatRequestMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.targetGameId_ = targetGameId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.targetPlayerId_ = targetPlayerId_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.chatText_ = chatText_;
          to_bitField0_ |= 0x00000004;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.ChatRequestMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.ChatRequestMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.ChatRequestMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.ChatRequestMessage.getDefaultInstance()) return this;
        if (other.hasTargetGameId()) {
          setTargetGameId(other.getTargetGameId());
        }
        if (other.hasTargetPlayerId()) {
          setTargetPlayerId(other.getTargetPlayerId());
        }
        if (other.hasChatText()) {
          chatText_ = other.chatText_;
          bitField0_ |= 0x00000004;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasChatText()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                targetGameId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                targetPlayerId_ = input.readUInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 26: {
                chatText_ = input.readBytes();
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int targetGameId_ ;
      /**
       * <code>optional uint32 targetGameId = 1;</code>
       * @return Whether the targetGameId field is set.
       */
      @java.lang.Override
      public boolean hasTargetGameId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>optional uint32 targetGameId = 1;</code>
       * @return The targetGameId.
       */
      @java.lang.Override
      public int getTargetGameId() {
        return targetGameId_;
      }
      /**
       * <code>optional uint32 targetGameId = 1;</code>
       * @param value The targetGameId to set.
       * @return This builder for chaining.
       */
      public Builder setTargetGameId(int value) {
        
        targetGameId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>optional uint32 targetGameId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearTargetGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        targetGameId_ = 0;
        onChanged();
        return this;
      }

      private int targetPlayerId_ ;
      /**
       * <code>optional uint32 targetPlayerId = 2;</code>
       * @return Whether the targetPlayerId field is set.
       */
      @java.lang.Override
      public boolean hasTargetPlayerId() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional uint32 targetPlayerId = 2;</code>
       * @return The targetPlayerId.
       */
      @java.lang.Override
      public int getTargetPlayerId() {
        return targetPlayerId_;
      }
      /**
       * <code>optional uint32 targetPlayerId = 2;</code>
       * @param value The targetPlayerId to set.
       * @return This builder for chaining.
       */
      public Builder setTargetPlayerId(int value) {
        
        targetPlayerId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>optional uint32 targetPlayerId = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearTargetPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        targetPlayerId_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object chatText_ = "";
      /**
       * <code>required string chatText = 3;</code>
       * @return Whether the chatText field is set.
       */
      public boolean hasChatText() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>required string chatText = 3;</code>
       * @return The chatText.
       */
      public java.lang.String getChatText() {
        java.lang.Object ref = chatText_;
        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()) {
            chatText_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string chatText = 3;</code>
       * @return The bytes for chatText.
       */
      public com.google.protobuf.ByteString
          getChatTextBytes() {
        java.lang.Object ref = chatText_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          chatText_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>required string chatText = 3;</code>
       * @param value The chatText to set.
       * @return This builder for chaining.
       */
      public Builder setChatText(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        chatText_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>required string chatText = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearChatText() {
        chatText_ = getDefaultInstance().getChatText();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * <code>required string chatText = 3;</code>
       * @param value The bytes for chatText to set.
       * @return This builder for chaining.
       */
      public Builder setChatTextBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        chatText_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:ChatRequestMessage)
    }

    // @@protoc_insertion_point(class_scope:ChatRequestMessage)
    private static final de.pokerth.protocol.ProtoBuf.ChatRequestMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.ChatRequestMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.ChatRequestMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<ChatRequestMessage>
        PARSER = new com.google.protobuf.AbstractParser<ChatRequestMessage>() {
      @java.lang.Override
      public ChatRequestMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<ChatRequestMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.ChatRequestMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>optional uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    boolean hasGameId();
    /**
     * <code>optional uint32 gameId = 1;</code>
     * @return The gameId.
     */
    int getGameId();

    /**
     * <code>optional uint32 playerId = 2;</code>
     * @return Whether the playerId field is set.
     */
    boolean hasPlayerId();
    /**
     * <code>optional uint32 playerId = 2;</code>
     * @return The playerId.
     */
    int getPlayerId();

    /**
     * <code>required .ChatMessage.ChatType chatType = 3;</code>
     * @return Whether the chatType field is set.
     */
    boolean hasChatType();
    /**
     * <code>required .ChatMessage.ChatType chatType = 3;</code>
     * @return The chatType.
     */
    de.pokerth.protocol.ProtoBuf.ChatMessage.ChatType getChatType();

    /**
     * <code>required string chatText = 4;</code>
     * @return Whether the chatText field is set.
     */
    boolean hasChatText();
    /**
     * <code>required string chatText = 4;</code>
     * @return The chatText.
     */
    java.lang.String getChatText();
    /**
     * <code>required string chatText = 4;</code>
     * @return The bytes for chatText.
     */
    com.google.protobuf.ByteString
        getChatTextBytes();
  }
  /**
   * Protobuf type {@code ChatMessage}
   */
  public static final class ChatMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ChatMessage)
      ChatMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ChatMessage.newBuilder() to construct.
    private ChatMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ChatMessage() {
      chatType_ = 0;
      chatText_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ChatMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_ChatMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_ChatMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.ChatMessage.class, de.pokerth.protocol.ProtoBuf.ChatMessage.Builder.class);
    }

    /**
     * Protobuf enum {@code ChatMessage.ChatType}
     */
    public enum ChatType
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>chatTypeLobby = 0;</code>
       */
      chatTypeLobby(0),
      /**
       * <code>chatTypeGame = 1;</code>
       */
      chatTypeGame(1),
      /**
       * <code>chatTypeBot = 2;</code>
       */
      chatTypeBot(2),
      /**
       * <code>chatTypeBroadcast = 3;</code>
       */
      chatTypeBroadcast(3),
      /**
       * <code>chatTypePrivate = 4;</code>
       */
      chatTypePrivate(4),
      ;

      /**
       * <code>chatTypeLobby = 0;</code>
       */
      public static final int chatTypeLobby_VALUE = 0;
      /**
       * <code>chatTypeGame = 1;</code>
       */
      public static final int chatTypeGame_VALUE = 1;
      /**
       * <code>chatTypeBot = 2;</code>
       */
      public static final int chatTypeBot_VALUE = 2;
      /**
       * <code>chatTypeBroadcast = 3;</code>
       */
      public static final int chatTypeBroadcast_VALUE = 3;
      /**
       * <code>chatTypePrivate = 4;</code>
       */
      public static final int chatTypePrivate_VALUE = 4;


      public final int getNumber() {
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static ChatType valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static ChatType forNumber(int value) {
        switch (value) {
          case 0: return chatTypeLobby;
          case 1: return chatTypeGame;
          case 2: return chatTypeBot;
          case 3: return chatTypeBroadcast;
          case 4: return chatTypePrivate;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<ChatType>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          ChatType> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<ChatType>() {
              public ChatType findValueByNumber(int number) {
                return ChatType.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.ChatMessage.getDescriptor().getEnumTypes().get(0);
      }

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

      public static ChatType 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 value;

      private ChatType(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:ChatMessage.ChatType)
    }

    private int bitField0_;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_ = 0;
    /**
     * <code>optional uint32 gameId = 1;</code>
     * @return Whether the gameId field is set.
     */
    @java.lang.Override
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional uint32 gameId = 1;</code>
     * @return The gameId.
     */
    @java.lang.Override
    public int getGameId() {
      return gameId_;
    }

    public static final int PLAYERID_FIELD_NUMBER = 2;
    private int playerId_ = 0;
    /**
     * <code>optional uint32 playerId = 2;</code>
     * @return Whether the playerId field is set.
     */
    @java.lang.Override
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional uint32 playerId = 2;</code>
     * @return The playerId.
     */
    @java.lang.Override
    public int getPlayerId() {
      return playerId_;
    }

    public static final int CHATTYPE_FIELD_NUMBER = 3;
    private int chatType_ = 0;
    /**
     * <code>required .ChatMessage.ChatType chatType = 3;</code>
     * @return Whether the chatType field is set.
     */
    @java.lang.Override public boolean hasChatType() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>required .ChatMessage.ChatType chatType = 3;</code>
     * @return The chatType.
     */
    @java.lang.Override public de.pokerth.protocol.ProtoBuf.ChatMessage.ChatType getChatType() {
      de.pokerth.protocol.ProtoBuf.ChatMessage.ChatType result = de.pokerth.protocol.ProtoBuf.ChatMessage.ChatType.forNumber(chatType_);
      return result == null ? de.pokerth.protocol.ProtoBuf.ChatMessage.ChatType.chatTypeLobby : result;
    }

    public static final int CHATTEXT_FIELD_NUMBER = 4;
    @SuppressWarnings("serial")
    private volatile java.lang.Object chatText_ = "";
    /**
     * <code>required string chatText = 4;</code>
     * @return Whether the chatText field is set.
     */
    @java.lang.Override
    public boolean hasChatText() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>required string chatText = 4;</code>
     * @return The chatText.
     */
    @java.lang.Override
    public java.lang.String getChatText() {
      java.lang.Object ref = chatText_;
      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()) {
          chatText_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string chatText = 4;</code>
     * @return The bytes for chatText.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getChatTextBytes() {
      java.lang.Object ref = chatText_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        chatText_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

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

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt32(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeEnum(3, chatType_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, chatText_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, chatType_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, chatText_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.ChatMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.ChatMessage other = (de.pokerth.protocol.ProtoBuf.ChatMessage) obj;

      if (hasGameId() != other.hasGameId()) return false;
      if (hasGameId()) {
        if (getGameId()
            != other.getGameId()) return false;
      }
      if (hasPlayerId() != other.hasPlayerId()) return false;
      if (hasPlayerId()) {
        if (getPlayerId()
            != other.getPlayerId()) return false;
      }
      if (hasChatType() != other.hasChatType()) return false;
      if (hasChatType()) {
        if (chatType_ != other.chatType_) return false;
      }
      if (hasChatText() != other.hasChatText()) return false;
      if (hasChatText()) {
        if (!getChatText()
            .equals(other.getChatText())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasGameId()) {
        hash = (37 * hash) + GAMEID_FIELD_NUMBER;
        hash = (53 * hash) + getGameId();
      }
      if (hasPlayerId()) {
        hash = (37 * hash) + PLAYERID_FIELD_NUMBER;
        hash = (53 * hash) + getPlayerId();
      }
      if (hasChatType()) {
        hash = (37 * hash) + CHATTYPE_FIELD_NUMBER;
        hash = (53 * hash) + chatType_;
      }
      if (hasChatText()) {
        hash = (37 * hash) + CHATTEXT_FIELD_NUMBER;
        hash = (53 * hash) + getChatText().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.ChatMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.ChatMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ChatMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.ChatMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ChatMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.ChatMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ChatMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.ChatMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ChatMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.ChatMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ChatMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.ChatMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.ChatMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code ChatMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ChatMessage)
        de.pokerth.protocol.ProtoBuf.ChatMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_ChatMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_ChatMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.ChatMessage.class, de.pokerth.protocol.ProtoBuf.ChatMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.ChatMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        gameId_ = 0;
        playerId_ = 0;
        chatType_ = 0;
        chatText_ = "";
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_ChatMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.ChatMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.ChatMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.ChatMessage build() {
        de.pokerth.protocol.ProtoBuf.ChatMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.ChatMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.ChatMessage result = new de.pokerth.protocol.ProtoBuf.ChatMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.ChatMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.gameId_ = gameId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.playerId_ = playerId_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.chatType_ = chatType_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.chatText_ = chatText_;
          to_bitField0_ |= 0x00000008;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.ChatMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.ChatMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.ChatMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.ChatMessage.getDefaultInstance()) return this;
        if (other.hasGameId()) {
          setGameId(other.getGameId());
        }
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasChatType()) {
          setChatType(other.getChatType());
        }
        if (other.hasChatText()) {
          chatText_ = other.chatText_;
          bitField0_ |= 0x00000008;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasChatType()) {
          return false;
        }
        if (!hasChatText()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                gameId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                playerId_ = input.readUInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                int tmpRaw = input.readEnum();
                de.pokerth.protocol.ProtoBuf.ChatMessage.ChatType tmpValue =
                    de.pokerth.protocol.ProtoBuf.ChatMessage.ChatType.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(3, tmpRaw);
                } else {
                  chatType_ = tmpRaw;
                  bitField0_ |= 0x00000004;
                }
                break;
              } // case 24
              case 34: {
                chatText_ = input.readBytes();
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int gameId_ ;
      /**
       * <code>optional uint32 gameId = 1;</code>
       * @return Whether the gameId field is set.
       */
      @java.lang.Override
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>optional uint32 gameId = 1;</code>
       * @return The gameId.
       */
      @java.lang.Override
      public int getGameId() {
        return gameId_;
      }
      /**
       * <code>optional uint32 gameId = 1;</code>
       * @param value The gameId to set.
       * @return This builder for chaining.
       */
      public Builder setGameId(int value) {
        
        gameId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>optional uint32 gameId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        onChanged();
        return this;
      }

      private int playerId_ ;
      /**
       * <code>optional uint32 playerId = 2;</code>
       * @return Whether the playerId field is set.
       */
      @java.lang.Override
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional uint32 playerId = 2;</code>
       * @return The playerId.
       */
      @java.lang.Override
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * <code>optional uint32 playerId = 2;</code>
       * @param value The playerId to set.
       * @return This builder for chaining.
       */
      public Builder setPlayerId(int value) {
        
        playerId_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>optional uint32 playerId = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private int chatType_ = 0;
      /**
       * <code>required .ChatMessage.ChatType chatType = 3;</code>
       * @return Whether the chatType field is set.
       */
      @java.lang.Override public boolean hasChatType() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>required .ChatMessage.ChatType chatType = 3;</code>
       * @return The chatType.
       */
      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.ChatMessage.ChatType getChatType() {
        de.pokerth.protocol.ProtoBuf.ChatMessage.ChatType result = de.pokerth.protocol.ProtoBuf.ChatMessage.ChatType.forNumber(chatType_);
        return result == null ? de.pokerth.protocol.ProtoBuf.ChatMessage.ChatType.chatTypeLobby : result;
      }
      /**
       * <code>required .ChatMessage.ChatType chatType = 3;</code>
       * @param value The chatType to set.
       * @return This builder for chaining.
       */
      public Builder setChatType(de.pokerth.protocol.ProtoBuf.ChatMessage.ChatType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        chatType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>required .ChatMessage.ChatType chatType = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearChatType() {
        bitField0_ = (bitField0_ & ~0x00000004);
        chatType_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object chatText_ = "";
      /**
       * <code>required string chatText = 4;</code>
       * @return Whether the chatText field is set.
       */
      public boolean hasChatText() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>required string chatText = 4;</code>
       * @return The chatText.
       */
      public java.lang.String getChatText() {
        java.lang.Object ref = chatText_;
        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()) {
            chatText_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string chatText = 4;</code>
       * @return The bytes for chatText.
       */
      public com.google.protobuf.ByteString
          getChatTextBytes() {
        java.lang.Object ref = chatText_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          chatText_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>required string chatText = 4;</code>
       * @param value The chatText to set.
       * @return This builder for chaining.
       */
      public Builder setChatText(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        chatText_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>required string chatText = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearChatText() {
        chatText_ = getDefaultInstance().getChatText();
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }
      /**
       * <code>required string chatText = 4;</code>
       * @param value The bytes for chatText to set.
       * @return This builder for chaining.
       */
      public Builder setChatTextBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        chatText_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:ChatMessage)
    }

    // @@protoc_insertion_point(class_scope:ChatMessage)
    private static final de.pokerth.protocol.ProtoBuf.ChatMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.ChatMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.ChatMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<ChatMessage>
        PARSER = new com.google.protobuf.AbstractParser<ChatMessage>() {
      @java.lang.Override
      public ChatMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<ChatMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.ChatMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required string chatText = 1;</code>
     * @return Whether the chatText field is set.
     */
    boolean hasChatText();
    /**
     * <code>required string chatText = 1;</code>
     * @return The chatText.
     */
    java.lang.String getChatText();
    /**
     * <code>required string chatText = 1;</code>
     * @return The bytes for chatText.
     */
    com.google.protobuf.ByteString
        getChatTextBytes();
  }
  /**
   * Protobuf type {@code ChatRejectMessage}
   */
  public static final class ChatRejectMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ChatRejectMessage)
      ChatRejectMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ChatRejectMessage.newBuilder() to construct.
    private ChatRejectMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ChatRejectMessage() {
      chatText_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ChatRejectMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_ChatRejectMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_ChatRejectMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.ChatRejectMessage.class, de.pokerth.protocol.ProtoBuf.ChatRejectMessage.Builder.class);
    }

    private int bitField0_;
    public static final int CHATTEXT_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object chatText_ = "";
    /**
     * <code>required string chatText = 1;</code>
     * @return Whether the chatText field is set.
     */
    @java.lang.Override
    public boolean hasChatText() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required string chatText = 1;</code>
     * @return The chatText.
     */
    @java.lang.Override
    public java.lang.String getChatText() {
      java.lang.Object ref = chatText_;
      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()) {
          chatText_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string chatText = 1;</code>
     * @return The bytes for chatText.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getChatTextBytes() {
      java.lang.Object ref = chatText_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        chatText_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

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

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, chatText_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, chatText_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.ChatRejectMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.ChatRejectMessage other = (de.pokerth.protocol.ProtoBuf.ChatRejectMessage) obj;

      if (hasChatText() != other.hasChatText()) return false;
      if (hasChatText()) {
        if (!getChatText()
            .equals(other.getChatText())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasChatText()) {
        hash = (37 * hash) + CHATTEXT_FIELD_NUMBER;
        hash = (53 * hash) + getChatText().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.ChatRejectMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.ChatRejectMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ChatRejectMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.ChatRejectMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ChatRejectMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.ChatRejectMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ChatRejectMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.ChatRejectMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ChatRejectMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.ChatRejectMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ChatRejectMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.ChatRejectMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.ChatRejectMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code ChatRejectMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ChatRejectMessage)
        de.pokerth.protocol.ProtoBuf.ChatRejectMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_ChatRejectMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_ChatRejectMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.ChatRejectMessage.class, de.pokerth.protocol.ProtoBuf.ChatRejectMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.ChatRejectMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        chatText_ = "";
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_ChatRejectMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.ChatRejectMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.ChatRejectMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.ChatRejectMessage build() {
        de.pokerth.protocol.ProtoBuf.ChatRejectMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.ChatRejectMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.ChatRejectMessage result = new de.pokerth.protocol.ProtoBuf.ChatRejectMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.ChatRejectMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.chatText_ = chatText_;
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.ChatRejectMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.ChatRejectMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.ChatRejectMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.ChatRejectMessage.getDefaultInstance()) return this;
        if (other.hasChatText()) {
          chatText_ = other.chatText_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasChatText()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                chatText_ = input.readBytes();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object chatText_ = "";
      /**
       * <code>required string chatText = 1;</code>
       * @return Whether the chatText field is set.
       */
      public boolean hasChatText() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required string chatText = 1;</code>
       * @return The chatText.
       */
      public java.lang.String getChatText() {
        java.lang.Object ref = chatText_;
        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()) {
            chatText_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string chatText = 1;</code>
       * @return The bytes for chatText.
       */
      public com.google.protobuf.ByteString
          getChatTextBytes() {
        java.lang.Object ref = chatText_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          chatText_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>required string chatText = 1;</code>
       * @param value The chatText to set.
       * @return This builder for chaining.
       */
      public Builder setChatText(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        chatText_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required string chatText = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearChatText() {
        chatText_ = getDefaultInstance().getChatText();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <code>required string chatText = 1;</code>
       * @param value The bytes for chatText to set.
       * @return This builder for chaining.
       */
      public Builder setChatTextBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        chatText_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:ChatRejectMessage)
    }

    // @@protoc_insertion_point(class_scope:ChatRejectMessage)
    private static final de.pokerth.protocol.ProtoBuf.ChatRejectMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.ChatRejectMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.ChatRejectMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<ChatRejectMessage>
        PARSER = new com.google.protobuf.AbstractParser<ChatRejectMessage>() {
      @java.lang.Override
      public ChatRejectMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<ChatRejectMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.ChatRejectMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required string notificationText = 1;</code>
     * @return Whether the notificationText field is set.
     */
    boolean hasNotificationText();
    /**
     * <code>required string notificationText = 1;</code>
     * @return The notificationText.
     */
    java.lang.String getNotificationText();
    /**
     * <code>required string notificationText = 1;</code>
     * @return The bytes for notificationText.
     */
    com.google.protobuf.ByteString
        getNotificationTextBytes();
  }
  /**
   * Protobuf type {@code DialogMessage}
   */
  public static final class DialogMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:DialogMessage)
      DialogMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use DialogMessage.newBuilder() to construct.
    private DialogMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private DialogMessage() {
      notificationText_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new DialogMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_DialogMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_DialogMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.DialogMessage.class, de.pokerth.protocol.ProtoBuf.DialogMessage.Builder.class);
    }

    private int bitField0_;
    public static final int NOTIFICATIONTEXT_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object notificationText_ = "";
    /**
     * <code>required string notificationText = 1;</code>
     * @return Whether the notificationText field is set.
     */
    @java.lang.Override
    public boolean hasNotificationText() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required string notificationText = 1;</code>
     * @return The notificationText.
     */
    @java.lang.Override
    public java.lang.String getNotificationText() {
      java.lang.Object ref = notificationText_;
      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()) {
          notificationText_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string notificationText = 1;</code>
     * @return The bytes for notificationText.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getNotificationTextBytes() {
      java.lang.Object ref = notificationText_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        notificationText_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

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

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, notificationText_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, notificationText_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.DialogMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.DialogMessage other = (de.pokerth.protocol.ProtoBuf.DialogMessage) obj;

      if (hasNotificationText() != other.hasNotificationText()) return false;
      if (hasNotificationText()) {
        if (!getNotificationText()
            .equals(other.getNotificationText())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasNotificationText()) {
        hash = (37 * hash) + NOTIFICATIONTEXT_FIELD_NUMBER;
        hash = (53 * hash) + getNotificationText().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.DialogMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.DialogMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.DialogMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.DialogMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.DialogMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.DialogMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.DialogMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.DialogMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.DialogMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.DialogMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.DialogMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.DialogMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.DialogMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code DialogMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:DialogMessage)
        de.pokerth.protocol.ProtoBuf.DialogMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_DialogMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_DialogMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.DialogMessage.class, de.pokerth.protocol.ProtoBuf.DialogMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.DialogMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        notificationText_ = "";
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_DialogMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.DialogMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.DialogMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.DialogMessage build() {
        de.pokerth.protocol.ProtoBuf.DialogMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.DialogMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.DialogMessage result = new de.pokerth.protocol.ProtoBuf.DialogMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.DialogMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.notificationText_ = notificationText_;
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.DialogMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.DialogMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.DialogMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.DialogMessage.getDefaultInstance()) return this;
        if (other.hasNotificationText()) {
          notificationText_ = other.notificationText_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasNotificationText()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                notificationText_ = input.readBytes();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object notificationText_ = "";
      /**
       * <code>required string notificationText = 1;</code>
       * @return Whether the notificationText field is set.
       */
      public boolean hasNotificationText() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required string notificationText = 1;</code>
       * @return The notificationText.
       */
      public java.lang.String getNotificationText() {
        java.lang.Object ref = notificationText_;
        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()) {
            notificationText_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string notificationText = 1;</code>
       * @return The bytes for notificationText.
       */
      public com.google.protobuf.ByteString
          getNotificationTextBytes() {
        java.lang.Object ref = notificationText_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          notificationText_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>required string notificationText = 1;</code>
       * @param value The notificationText to set.
       * @return This builder for chaining.
       */
      public Builder setNotificationText(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        notificationText_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required string notificationText = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearNotificationText() {
        notificationText_ = getDefaultInstance().getNotificationText();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <code>required string notificationText = 1;</code>
       * @param value The bytes for notificationText to set.
       * @return This builder for chaining.
       */
      public Builder setNotificationTextBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        notificationText_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:DialogMessage)
    }

    // @@protoc_insertion_point(class_scope:DialogMessage)
    private static final de.pokerth.protocol.ProtoBuf.DialogMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.DialogMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.DialogMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<DialogMessage>
        PARSER = new com.google.protobuf.AbstractParser<DialogMessage>() {
      @java.lang.Override
      public DialogMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<DialogMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.DialogMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required .TimeoutWarningMessage.TimeoutReason timeoutReason = 1;</code>
     * @return Whether the timeoutReason field is set.
     */
    boolean hasTimeoutReason();
    /**
     * <code>required .TimeoutWarningMessage.TimeoutReason timeoutReason = 1;</code>
     * @return The timeoutReason.
     */
    de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.TimeoutReason getTimeoutReason();

    /**
     * <code>required uint32 remainingSeconds = 2;</code>
     * @return Whether the remainingSeconds field is set.
     */
    boolean hasRemainingSeconds();
    /**
     * <code>required uint32 remainingSeconds = 2;</code>
     * @return The remainingSeconds.
     */
    int getRemainingSeconds();
  }
  /**
   * Protobuf type {@code TimeoutWarningMessage}
   */
  public static final class TimeoutWarningMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:TimeoutWarningMessage)
      TimeoutWarningMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use TimeoutWarningMessage.newBuilder() to construct.
    private TimeoutWarningMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private TimeoutWarningMessage() {
      timeoutReason_ = 0;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new TimeoutWarningMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_TimeoutWarningMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_TimeoutWarningMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.class, de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.Builder.class);
    }

    /**
     * Protobuf enum {@code TimeoutWarningMessage.TimeoutReason}
     */
    public enum TimeoutReason
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>timeoutNoDataReceived = 0;</code>
       */
      timeoutNoDataReceived(0),
      /**
       * <code>timeoutInactiveGame = 1;</code>
       */
      timeoutInactiveGame(1),
      /**
       * <code>timeoutKickAfterAutofold = 2;</code>
       */
      timeoutKickAfterAutofold(2),
      ;

      /**
       * <code>timeoutNoDataReceived = 0;</code>
       */
      public static final int timeoutNoDataReceived_VALUE = 0;
      /**
       * <code>timeoutInactiveGame = 1;</code>
       */
      public static final int timeoutInactiveGame_VALUE = 1;
      /**
       * <code>timeoutKickAfterAutofold = 2;</code>
       */
      public static final int timeoutKickAfterAutofold_VALUE = 2;


      public final int getNumber() {
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static TimeoutReason valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static TimeoutReason forNumber(int value) {
        switch (value) {
          case 0: return timeoutNoDataReceived;
          case 1: return timeoutInactiveGame;
          case 2: return timeoutKickAfterAutofold;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<TimeoutReason>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          TimeoutReason> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<TimeoutReason>() {
              public TimeoutReason findValueByNumber(int number) {
                return TimeoutReason.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.getDescriptor().getEnumTypes().get(0);
      }

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

      public static TimeoutReason 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 value;

      private TimeoutReason(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:TimeoutWarningMessage.TimeoutReason)
    }

    private int bitField0_;
    public static final int TIMEOUTREASON_FIELD_NUMBER = 1;
    private int timeoutReason_ = 0;
    /**
     * <code>required .TimeoutWarningMessage.TimeoutReason timeoutReason = 1;</code>
     * @return Whether the timeoutReason field is set.
     */
    @java.lang.Override public boolean hasTimeoutReason() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required .TimeoutWarningMessage.TimeoutReason timeoutReason = 1;</code>
     * @return The timeoutReason.
     */
    @java.lang.Override public de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.TimeoutReason getTimeoutReason() {
      de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.TimeoutReason result = de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.TimeoutReason.forNumber(timeoutReason_);
      return result == null ? de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.TimeoutReason.timeoutNoDataReceived : result;
    }

    public static final int REMAININGSECONDS_FIELD_NUMBER = 2;
    private int remainingSeconds_ = 0;
    /**
     * <code>required uint32 remainingSeconds = 2;</code>
     * @return Whether the remainingSeconds field is set.
     */
    @java.lang.Override
    public boolean hasRemainingSeconds() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required uint32 remainingSeconds = 2;</code>
     * @return The remainingSeconds.
     */
    @java.lang.Override
    public int getRemainingSeconds() {
      return remainingSeconds_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

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

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeEnum(1, timeoutReason_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt32(2, remainingSeconds_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, timeoutReason_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, remainingSeconds_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage other = (de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage) obj;

      if (hasTimeoutReason() != other.hasTimeoutReason()) return false;
      if (hasTimeoutReason()) {
        if (timeoutReason_ != other.timeoutReason_) return false;
      }
      if (hasRemainingSeconds() != other.hasRemainingSeconds()) return false;
      if (hasRemainingSeconds()) {
        if (getRemainingSeconds()
            != other.getRemainingSeconds()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasTimeoutReason()) {
        hash = (37 * hash) + TIMEOUTREASON_FIELD_NUMBER;
        hash = (53 * hash) + timeoutReason_;
      }
      if (hasRemainingSeconds()) {
        hash = (37 * hash) + REMAININGSECONDS_FIELD_NUMBER;
        hash = (53 * hash) + getRemainingSeconds();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code TimeoutWarningMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:TimeoutWarningMessage)
        de.pokerth.protocol.ProtoBuf.TimeoutWarningMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_TimeoutWarningMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_TimeoutWarningMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.class, de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        timeoutReason_ = 0;
        remainingSeconds_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_TimeoutWarningMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage build() {
        de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage result = new de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.timeoutReason_ = timeoutReason_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.remainingSeconds_ = remainingSeconds_;
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.getDefaultInstance()) return this;
        if (other.hasTimeoutReason()) {
          setTimeoutReason(other.getTimeoutReason());
        }
        if (other.hasRemainingSeconds()) {
          setRemainingSeconds(other.getRemainingSeconds());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasTimeoutReason()) {
          return false;
        }
        if (!hasRemainingSeconds()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                int tmpRaw = input.readEnum();
                de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.TimeoutReason tmpValue =
                    de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.TimeoutReason.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(1, tmpRaw);
                } else {
                  timeoutReason_ = tmpRaw;
                  bitField0_ |= 0x00000001;
                }
                break;
              } // case 8
              case 16: {
                remainingSeconds_ = input.readUInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int timeoutReason_ = 0;
      /**
       * <code>required .TimeoutWarningMessage.TimeoutReason timeoutReason = 1;</code>
       * @return Whether the timeoutReason field is set.
       */
      @java.lang.Override public boolean hasTimeoutReason() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required .TimeoutWarningMessage.TimeoutReason timeoutReason = 1;</code>
       * @return The timeoutReason.
       */
      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.TimeoutReason getTimeoutReason() {
        de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.TimeoutReason result = de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.TimeoutReason.forNumber(timeoutReason_);
        return result == null ? de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.TimeoutReason.timeoutNoDataReceived : result;
      }
      /**
       * <code>required .TimeoutWarningMessage.TimeoutReason timeoutReason = 1;</code>
       * @param value The timeoutReason to set.
       * @return This builder for chaining.
       */
      public Builder setTimeoutReason(de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.TimeoutReason value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        timeoutReason_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>required .TimeoutWarningMessage.TimeoutReason timeoutReason = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearTimeoutReason() {
        bitField0_ = (bitField0_ & ~0x00000001);
        timeoutReason_ = 0;
        onChanged();
        return this;
      }

      private int remainingSeconds_ ;
      /**
       * <code>required uint32 remainingSeconds = 2;</code>
       * @return Whether the remainingSeconds field is set.
       */
      @java.lang.Override
      public boolean hasRemainingSeconds() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required uint32 remainingSeconds = 2;</code>
       * @return The remainingSeconds.
       */
      @java.lang.Override
      public int getRemainingSeconds() {
        return remainingSeconds_;
      }
      /**
       * <code>required uint32 remainingSeconds = 2;</code>
       * @param value The remainingSeconds to set.
       * @return This builder for chaining.
       */
      public Builder setRemainingSeconds(int value) {
        
        remainingSeconds_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 remainingSeconds = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearRemainingSeconds() {
        bitField0_ = (bitField0_ & ~0x00000002);
        remainingSeconds_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:TimeoutWarningMessage)
    }

    // @@protoc_insertion_point(class_scope:TimeoutWarningMessage)
    private static final de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<TimeoutWarningMessage>
        PARSER = new com.google.protobuf.AbstractParser<TimeoutWarningMessage>() {
      @java.lang.Override
      public TimeoutWarningMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<TimeoutWarningMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ResetTimeoutMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ResetTimeoutMessage)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code ResetTimeoutMessage}
   */
  public static final class ResetTimeoutMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ResetTimeoutMessage)
      ResetTimeoutMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ResetTimeoutMessage.newBuilder() to construct.
    private ResetTimeoutMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ResetTimeoutMessage() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ResetTimeoutMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_ResetTimeoutMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_ResetTimeoutMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage.class, de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage.Builder.class);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

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

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

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

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage other = (de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage) obj;

      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code ResetTimeoutMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ResetTimeoutMessage)
        de.pokerth.protocol.ProtoBuf.ResetTimeoutMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_ResetTimeoutMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_ResetTimeoutMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage.class, de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_ResetTimeoutMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage build() {
        de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage result = new de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:ResetTimeoutMessage)
    }

    // @@protoc_insertion_point(class_scope:ResetTimeoutMessage)
    private static final de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<ResetTimeoutMessage>
        PARSER = new com.google.protobuf.AbstractParser<ResetTimeoutMessage>() {
      @java.lang.Override
      public ResetTimeoutMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<ResetTimeoutMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 reportedPlayerId = 1;</code>
     * @return Whether the reportedPlayerId field is set.
     */
    boolean hasReportedPlayerId();
    /**
     * <code>required uint32 reportedPlayerId = 1;</code>
     * @return The reportedPlayerId.
     */
    int getReportedPlayerId();

    /**
     * <code>required bytes reportedAvatarHash = 2;</code>
     * @return Whether the reportedAvatarHash field is set.
     */
    boolean hasReportedAvatarHash();
    /**
     * <code>required bytes reportedAvatarHash = 2;</code>
     * @return The reportedAvatarHash.
     */
    com.google.protobuf.ByteString getReportedAvatarHash();
  }
  /**
   * Protobuf type {@code ReportAvatarMessage}
   */
  public static final class ReportAvatarMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ReportAvatarMessage)
      ReportAvatarMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ReportAvatarMessage.newBuilder() to construct.
    private ReportAvatarMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ReportAvatarMessage() {
      reportedAvatarHash_ = com.google.protobuf.ByteString.EMPTY;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ReportAvatarMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_ReportAvatarMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_ReportAvatarMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.ReportAvatarMessage.class, de.pokerth.protocol.ProtoBuf.ReportAvatarMessage.Builder.class);
    }

    private int bitField0_;
    public static final int REPORTEDPLAYERID_FIELD_NUMBER = 1;
    private int reportedPlayerId_ = 0;
    /**
     * <code>required uint32 reportedPlayerId = 1;</code>
     * @return Whether the reportedPlayerId field is set.
     */
    @java.lang.Override
    public boolean hasReportedPlayerId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 reportedPlayerId = 1;</code>
     * @return The reportedPlayerId.
     */
    @java.lang.Override
    public int getReportedPlayerId() {
      return reportedPlayerId_;
    }

    public static final int REPORTEDAVATARHASH_FIELD_NUMBER = 2;
    private com.google.protobuf.ByteString reportedAvatarHash_ = com.google.protobuf.ByteString.EMPTY;
    /**
     * <code>required bytes reportedAvatarHash = 2;</code>
     * @return Whether the reportedAvatarHash field is set.
     */
    @java.lang.Override
    public boolean hasReportedAvatarHash() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required bytes reportedAvatarHash = 2;</code>
     * @return The reportedAvatarHash.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getReportedAvatarHash() {
      return reportedAvatarHash_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

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

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, reportedPlayerId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeBytes(2, reportedAvatarHash_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, reportedPlayerId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, reportedAvatarHash_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.ReportAvatarMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.ReportAvatarMessage other = (de.pokerth.protocol.ProtoBuf.ReportAvatarMessage) obj;

      if (hasReportedPlayerId() != other.hasReportedPlayerId()) return false;
      if (hasReportedPlayerId()) {
        if (getReportedPlayerId()
            != other.getReportedPlayerId()) return false;
      }
      if (hasReportedAvatarHash() != other.hasReportedAvatarHash()) return false;
      if (hasReportedAvatarHash()) {
        if (!getReportedAvatarHash()
            .equals(other.getReportedAvatarHash())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasReportedPlayerId()) {
        hash = (37 * hash) + REPORTEDPLAYERID_FIELD_NUMBER;
        hash = (53 * hash) + getReportedPlayerId();
      }
      if (hasReportedAvatarHash()) {
        hash = (37 * hash) + REPORTEDAVATARHASH_FIELD_NUMBER;
        hash = (53 * hash) + getReportedAvatarHash().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.ReportAvatarMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportAvatarMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportAvatarMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportAvatarMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportAvatarMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportAvatarMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportAvatarMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportAvatarMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportAvatarMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportAvatarMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportAvatarMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportAvatarMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.ReportAvatarMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code ReportAvatarMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ReportAvatarMessage)
        de.pokerth.protocol.ProtoBuf.ReportAvatarMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_ReportAvatarMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_ReportAvatarMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.ReportAvatarMessage.class, de.pokerth.protocol.ProtoBuf.ReportAvatarMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.ReportAvatarMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        reportedPlayerId_ = 0;
        reportedAvatarHash_ = com.google.protobuf.ByteString.EMPTY;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_ReportAvatarMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.ReportAvatarMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.ReportAvatarMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.ReportAvatarMessage build() {
        de.pokerth.protocol.ProtoBuf.ReportAvatarMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.ReportAvatarMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.ReportAvatarMessage result = new de.pokerth.protocol.ProtoBuf.ReportAvatarMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.ReportAvatarMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.reportedPlayerId_ = reportedPlayerId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.reportedAvatarHash_ = reportedAvatarHash_;
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.ReportAvatarMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.ReportAvatarMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.ReportAvatarMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.ReportAvatarMessage.getDefaultInstance()) return this;
        if (other.hasReportedPlayerId()) {
          setReportedPlayerId(other.getReportedPlayerId());
        }
        if (other.hasReportedAvatarHash()) {
          setReportedAvatarHash(other.getReportedAvatarHash());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasReportedPlayerId()) {
          return false;
        }
        if (!hasReportedAvatarHash()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                reportedPlayerId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                reportedAvatarHash_ = input.readBytes();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int reportedPlayerId_ ;
      /**
       * <code>required uint32 reportedPlayerId = 1;</code>
       * @return Whether the reportedPlayerId field is set.
       */
      @java.lang.Override
      public boolean hasReportedPlayerId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 reportedPlayerId = 1;</code>
       * @return The reportedPlayerId.
       */
      @java.lang.Override
      public int getReportedPlayerId() {
        return reportedPlayerId_;
      }
      /**
       * <code>required uint32 reportedPlayerId = 1;</code>
       * @param value The reportedPlayerId to set.
       * @return This builder for chaining.
       */
      public Builder setReportedPlayerId(int value) {
        
        reportedPlayerId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 reportedPlayerId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearReportedPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        reportedPlayerId_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString reportedAvatarHash_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <code>required bytes reportedAvatarHash = 2;</code>
       * @return Whether the reportedAvatarHash field is set.
       */
      @java.lang.Override
      public boolean hasReportedAvatarHash() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required bytes reportedAvatarHash = 2;</code>
       * @return The reportedAvatarHash.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getReportedAvatarHash() {
        return reportedAvatarHash_;
      }
      /**
       * <code>required bytes reportedAvatarHash = 2;</code>
       * @param value The reportedAvatarHash to set.
       * @return This builder for chaining.
       */
      public Builder setReportedAvatarHash(com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        reportedAvatarHash_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>required bytes reportedAvatarHash = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearReportedAvatarHash() {
        bitField0_ = (bitField0_ & ~0x00000002);
        reportedAvatarHash_ = getDefaultInstance().getReportedAvatarHash();
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:ReportAvatarMessage)
    }

    // @@protoc_insertion_point(class_scope:ReportAvatarMessage)
    private static final de.pokerth.protocol.ProtoBuf.ReportAvatarMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.ReportAvatarMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.ReportAvatarMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<ReportAvatarMessage>
        PARSER = new com.google.protobuf.AbstractParser<ReportAvatarMessage>() {
      @java.lang.Override
      public ReportAvatarMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<ReportAvatarMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.ReportAvatarMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 reportedPlayerId = 1;</code>
     * @return Whether the reportedPlayerId field is set.
     */
    boolean hasReportedPlayerId();
    /**
     * <code>required uint32 reportedPlayerId = 1;</code>
     * @return The reportedPlayerId.
     */
    int getReportedPlayerId();

    /**
     * <code>required .ReportAvatarAckMessage.ReportAvatarResult reportAvatarResult = 2;</code>
     * @return Whether the reportAvatarResult field is set.
     */
    boolean hasReportAvatarResult();
    /**
     * <code>required .ReportAvatarAckMessage.ReportAvatarResult reportAvatarResult = 2;</code>
     * @return The reportAvatarResult.
     */
    de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.ReportAvatarResult getReportAvatarResult();
  }
  /**
   * Protobuf type {@code ReportAvatarAckMessage}
   */
  public static final class ReportAvatarAckMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ReportAvatarAckMessage)
      ReportAvatarAckMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ReportAvatarAckMessage.newBuilder() to construct.
    private ReportAvatarAckMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ReportAvatarAckMessage() {
      reportAvatarResult_ = 0;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ReportAvatarAckMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_ReportAvatarAckMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_ReportAvatarAckMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.class, de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.Builder.class);
    }

    /**
     * Protobuf enum {@code ReportAvatarAckMessage.ReportAvatarResult}
     */
    public enum ReportAvatarResult
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>avatarReportAccepted = 0;</code>
       */
      avatarReportAccepted(0),
      /**
       * <code>avatarReportDuplicate = 1;</code>
       */
      avatarReportDuplicate(1),
      /**
       * <code>avatarReportInvalid = 2;</code>
       */
      avatarReportInvalid(2),
      ;

      /**
       * <code>avatarReportAccepted = 0;</code>
       */
      public static final int avatarReportAccepted_VALUE = 0;
      /**
       * <code>avatarReportDuplicate = 1;</code>
       */
      public static final int avatarReportDuplicate_VALUE = 1;
      /**
       * <code>avatarReportInvalid = 2;</code>
       */
      public static final int avatarReportInvalid_VALUE = 2;


      public final int getNumber() {
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static ReportAvatarResult valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static ReportAvatarResult forNumber(int value) {
        switch (value) {
          case 0: return avatarReportAccepted;
          case 1: return avatarReportDuplicate;
          case 2: return avatarReportInvalid;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<ReportAvatarResult>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          ReportAvatarResult> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<ReportAvatarResult>() {
              public ReportAvatarResult findValueByNumber(int number) {
                return ReportAvatarResult.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.getDescriptor().getEnumTypes().get(0);
      }

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

      public static ReportAvatarResult 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 value;

      private ReportAvatarResult(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:ReportAvatarAckMessage.ReportAvatarResult)
    }

    private int bitField0_;
    public static final int REPORTEDPLAYERID_FIELD_NUMBER = 1;
    private int reportedPlayerId_ = 0;
    /**
     * <code>required uint32 reportedPlayerId = 1;</code>
     * @return Whether the reportedPlayerId field is set.
     */
    @java.lang.Override
    public boolean hasReportedPlayerId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 reportedPlayerId = 1;</code>
     * @return The reportedPlayerId.
     */
    @java.lang.Override
    public int getReportedPlayerId() {
      return reportedPlayerId_;
    }

    public static final int REPORTAVATARRESULT_FIELD_NUMBER = 2;
    private int reportAvatarResult_ = 0;
    /**
     * <code>required .ReportAvatarAckMessage.ReportAvatarResult reportAvatarResult = 2;</code>
     * @return Whether the reportAvatarResult field is set.
     */
    @java.lang.Override public boolean hasReportAvatarResult() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required .ReportAvatarAckMessage.ReportAvatarResult reportAvatarResult = 2;</code>
     * @return The reportAvatarResult.
     */
    @java.lang.Override public de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.ReportAvatarResult getReportAvatarResult() {
      de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.ReportAvatarResult result = de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.ReportAvatarResult.forNumber(reportAvatarResult_);
      return result == null ? de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.ReportAvatarResult.avatarReportAccepted : result;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

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

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, reportedPlayerId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeEnum(2, reportAvatarResult_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, reportedPlayerId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, reportAvatarResult_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage other = (de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage) obj;

      if (hasReportedPlayerId() != other.hasReportedPlayerId()) return false;
      if (hasReportedPlayerId()) {
        if (getReportedPlayerId()
            != other.getReportedPlayerId()) return false;
      }
      if (hasReportAvatarResult() != other.hasReportAvatarResult()) return false;
      if (hasReportAvatarResult()) {
        if (reportAvatarResult_ != other.reportAvatarResult_) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasReportedPlayerId()) {
        hash = (37 * hash) + REPORTEDPLAYERID_FIELD_NUMBER;
        hash = (53 * hash) + getReportedPlayerId();
      }
      if (hasReportAvatarResult()) {
        hash = (37 * hash) + REPORTAVATARRESULT_FIELD_NUMBER;
        hash = (53 * hash) + reportAvatarResult_;
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code ReportAvatarAckMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ReportAvatarAckMessage)
        de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_ReportAvatarAckMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_ReportAvatarAckMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.class, de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        reportedPlayerId_ = 0;
        reportAvatarResult_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_ReportAvatarAckMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage build() {
        de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage result = new de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.reportedPlayerId_ = reportedPlayerId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.reportAvatarResult_ = reportAvatarResult_;
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.getDefaultInstance()) return this;
        if (other.hasReportedPlayerId()) {
          setReportedPlayerId(other.getReportedPlayerId());
        }
        if (other.hasReportAvatarResult()) {
          setReportAvatarResult(other.getReportAvatarResult());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasReportedPlayerId()) {
          return false;
        }
        if (!hasReportAvatarResult()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                reportedPlayerId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                int tmpRaw = input.readEnum();
                de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.ReportAvatarResult tmpValue =
                    de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.ReportAvatarResult.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(2, tmpRaw);
                } else {
                  reportAvatarResult_ = tmpRaw;
                  bitField0_ |= 0x00000002;
                }
                break;
              } // case 16
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int reportedPlayerId_ ;
      /**
       * <code>required uint32 reportedPlayerId = 1;</code>
       * @return Whether the reportedPlayerId field is set.
       */
      @java.lang.Override
      public boolean hasReportedPlayerId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 reportedPlayerId = 1;</code>
       * @return The reportedPlayerId.
       */
      @java.lang.Override
      public int getReportedPlayerId() {
        return reportedPlayerId_;
      }
      /**
       * <code>required uint32 reportedPlayerId = 1;</code>
       * @param value The reportedPlayerId to set.
       * @return This builder for chaining.
       */
      public Builder setReportedPlayerId(int value) {
        
        reportedPlayerId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 reportedPlayerId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearReportedPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        reportedPlayerId_ = 0;
        onChanged();
        return this;
      }

      private int reportAvatarResult_ = 0;
      /**
       * <code>required .ReportAvatarAckMessage.ReportAvatarResult reportAvatarResult = 2;</code>
       * @return Whether the reportAvatarResult field is set.
       */
      @java.lang.Override public boolean hasReportAvatarResult() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required .ReportAvatarAckMessage.ReportAvatarResult reportAvatarResult = 2;</code>
       * @return The reportAvatarResult.
       */
      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.ReportAvatarResult getReportAvatarResult() {
        de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.ReportAvatarResult result = de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.ReportAvatarResult.forNumber(reportAvatarResult_);
        return result == null ? de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.ReportAvatarResult.avatarReportAccepted : result;
      }
      /**
       * <code>required .ReportAvatarAckMessage.ReportAvatarResult reportAvatarResult = 2;</code>
       * @param value The reportAvatarResult to set.
       * @return This builder for chaining.
       */
      public Builder setReportAvatarResult(de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.ReportAvatarResult value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        reportAvatarResult_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>required .ReportAvatarAckMessage.ReportAvatarResult reportAvatarResult = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearReportAvatarResult() {
        bitField0_ = (bitField0_ & ~0x00000002);
        reportAvatarResult_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:ReportAvatarAckMessage)
    }

    // @@protoc_insertion_point(class_scope:ReportAvatarAckMessage)
    private static final de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<ReportAvatarAckMessage>
        PARSER = new com.google.protobuf.AbstractParser<ReportAvatarAckMessage>() {
      @java.lang.Override
      public ReportAvatarAckMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<ReportAvatarAckMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 reportedGameId = 1;</code>
     * @return Whether the reportedGameId field is set.
     */
    boolean hasReportedGameId();
    /**
     * <code>required uint32 reportedGameId = 1;</code>
     * @return The reportedGameId.
     */
    int getReportedGameId();
  }
  /**
   * Protobuf type {@code ReportGameMessage}
   */
  public static final class ReportGameMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ReportGameMessage)
      ReportGameMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ReportGameMessage.newBuilder() to construct.
    private ReportGameMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ReportGameMessage() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ReportGameMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_ReportGameMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_ReportGameMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.ReportGameMessage.class, de.pokerth.protocol.ProtoBuf.ReportGameMessage.Builder.class);
    }

    private int bitField0_;
    public static final int REPORTEDGAMEID_FIELD_NUMBER = 1;
    private int reportedGameId_ = 0;
    /**
     * <code>required uint32 reportedGameId = 1;</code>
     * @return Whether the reportedGameId field is set.
     */
    @java.lang.Override
    public boolean hasReportedGameId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 reportedGameId = 1;</code>
     * @return The reportedGameId.
     */
    @java.lang.Override
    public int getReportedGameId() {
      return reportedGameId_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

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

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, reportedGameId_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, reportedGameId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.ReportGameMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.ReportGameMessage other = (de.pokerth.protocol.ProtoBuf.ReportGameMessage) obj;

      if (hasReportedGameId() != other.hasReportedGameId()) return false;
      if (hasReportedGameId()) {
        if (getReportedGameId()
            != other.getReportedGameId()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasReportedGameId()) {
        hash = (37 * hash) + REPORTEDGAMEID_FIELD_NUMBER;
        hash = (53 * hash) + getReportedGameId();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.ReportGameMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportGameMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportGameMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportGameMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportGameMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportGameMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportGameMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportGameMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportGameMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportGameMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportGameMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportGameMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.ReportGameMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code ReportGameMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ReportGameMessage)
        de.pokerth.protocol.ProtoBuf.ReportGameMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_ReportGameMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_ReportGameMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.ReportGameMessage.class, de.pokerth.protocol.ProtoBuf.ReportGameMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.ReportGameMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        reportedGameId_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_ReportGameMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.ReportGameMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.ReportGameMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.ReportGameMessage build() {
        de.pokerth.protocol.ProtoBuf.ReportGameMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.ReportGameMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.ReportGameMessage result = new de.pokerth.protocol.ProtoBuf.ReportGameMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.ReportGameMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.reportedGameId_ = reportedGameId_;
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.ReportGameMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.ReportGameMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.ReportGameMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.ReportGameMessage.getDefaultInstance()) return this;
        if (other.hasReportedGameId()) {
          setReportedGameId(other.getReportedGameId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasReportedGameId()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                reportedGameId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int reportedGameId_ ;
      /**
       * <code>required uint32 reportedGameId = 1;</code>
       * @return Whether the reportedGameId field is set.
       */
      @java.lang.Override
      public boolean hasReportedGameId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 reportedGameId = 1;</code>
       * @return The reportedGameId.
       */
      @java.lang.Override
      public int getReportedGameId() {
        return reportedGameId_;
      }
      /**
       * <code>required uint32 reportedGameId = 1;</code>
       * @param value The reportedGameId to set.
       * @return This builder for chaining.
       */
      public Builder setReportedGameId(int value) {
        
        reportedGameId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 reportedGameId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearReportedGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        reportedGameId_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:ReportGameMessage)
    }

    // @@protoc_insertion_point(class_scope:ReportGameMessage)
    private static final de.pokerth.protocol.ProtoBuf.ReportGameMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.ReportGameMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.ReportGameMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<ReportGameMessage>
        PARSER = new com.google.protobuf.AbstractParser<ReportGameMessage>() {
      @java.lang.Override
      public ReportGameMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<ReportGameMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.ReportGameMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 reportedGameId = 1;</code>
     * @return Whether the reportedGameId field is set.
     */
    boolean hasReportedGameId();
    /**
     * <code>required uint32 reportedGameId = 1;</code>
     * @return The reportedGameId.
     */
    int getReportedGameId();

    /**
     * <code>required .ReportGameAckMessage.ReportGameResult reportGameResult = 2;</code>
     * @return Whether the reportGameResult field is set.
     */
    boolean hasReportGameResult();
    /**
     * <code>required .ReportGameAckMessage.ReportGameResult reportGameResult = 2;</code>
     * @return The reportGameResult.
     */
    de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.ReportGameResult getReportGameResult();
  }
  /**
   * Protobuf type {@code ReportGameAckMessage}
   */
  public static final class ReportGameAckMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ReportGameAckMessage)
      ReportGameAckMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ReportGameAckMessage.newBuilder() to construct.
    private ReportGameAckMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ReportGameAckMessage() {
      reportGameResult_ = 0;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ReportGameAckMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_ReportGameAckMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_ReportGameAckMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.class, de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.Builder.class);
    }

    /**
     * Protobuf enum {@code ReportGameAckMessage.ReportGameResult}
     */
    public enum ReportGameResult
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>gameReportAccepted = 0;</code>
       */
      gameReportAccepted(0),
      /**
       * <code>gameReportDuplicate = 1;</code>
       */
      gameReportDuplicate(1),
      /**
       * <code>gameReportInvalid = 2;</code>
       */
      gameReportInvalid(2),
      ;

      /**
       * <code>gameReportAccepted = 0;</code>
       */
      public static final int gameReportAccepted_VALUE = 0;
      /**
       * <code>gameReportDuplicate = 1;</code>
       */
      public static final int gameReportDuplicate_VALUE = 1;
      /**
       * <code>gameReportInvalid = 2;</code>
       */
      public static final int gameReportInvalid_VALUE = 2;


      public final int getNumber() {
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static ReportGameResult valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static ReportGameResult forNumber(int value) {
        switch (value) {
          case 0: return gameReportAccepted;
          case 1: return gameReportDuplicate;
          case 2: return gameReportInvalid;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<ReportGameResult>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          ReportGameResult> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<ReportGameResult>() {
              public ReportGameResult findValueByNumber(int number) {
                return ReportGameResult.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.getDescriptor().getEnumTypes().get(0);
      }

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

      public static ReportGameResult 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 value;

      private ReportGameResult(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:ReportGameAckMessage.ReportGameResult)
    }

    private int bitField0_;
    public static final int REPORTEDGAMEID_FIELD_NUMBER = 1;
    private int reportedGameId_ = 0;
    /**
     * <code>required uint32 reportedGameId = 1;</code>
     * @return Whether the reportedGameId field is set.
     */
    @java.lang.Override
    public boolean hasReportedGameId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 reportedGameId = 1;</code>
     * @return The reportedGameId.
     */
    @java.lang.Override
    public int getReportedGameId() {
      return reportedGameId_;
    }

    public static final int REPORTGAMERESULT_FIELD_NUMBER = 2;
    private int reportGameResult_ = 0;
    /**
     * <code>required .ReportGameAckMessage.ReportGameResult reportGameResult = 2;</code>
     * @return Whether the reportGameResult field is set.
     */
    @java.lang.Override public boolean hasReportGameResult() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required .ReportGameAckMessage.ReportGameResult reportGameResult = 2;</code>
     * @return The reportGameResult.
     */
    @java.lang.Override public de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.ReportGameResult getReportGameResult() {
      de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.ReportGameResult result = de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.ReportGameResult.forNumber(reportGameResult_);
      return result == null ? de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.ReportGameResult.gameReportAccepted : result;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

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

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, reportedGameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeEnum(2, reportGameResult_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, reportedGameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, reportGameResult_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.ReportGameAckMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.ReportGameAckMessage other = (de.pokerth.protocol.ProtoBuf.ReportGameAckMessage) obj;

      if (hasReportedGameId() != other.hasReportedGameId()) return false;
      if (hasReportedGameId()) {
        if (getReportedGameId()
            != other.getReportedGameId()) return false;
      }
      if (hasReportGameResult() != other.hasReportGameResult()) return false;
      if (hasReportGameResult()) {
        if (reportGameResult_ != other.reportGameResult_) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasReportedGameId()) {
        hash = (37 * hash) + REPORTEDGAMEID_FIELD_NUMBER;
        hash = (53 * hash) + getReportedGameId();
      }
      if (hasReportGameResult()) {
        hash = (37 * hash) + REPORTGAMERESULT_FIELD_NUMBER;
        hash = (53 * hash) + reportGameResult_;
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.ReportGameAckMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportGameAckMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportGameAckMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportGameAckMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportGameAckMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportGameAckMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportGameAckMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportGameAckMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportGameAckMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportGameAckMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportGameAckMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.ReportGameAckMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.ReportGameAckMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code ReportGameAckMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ReportGameAckMessage)
        de.pokerth.protocol.ProtoBuf.ReportGameAckMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_ReportGameAckMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_ReportGameAckMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.class, de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        reportedGameId_ = 0;
        reportGameResult_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_ReportGameAckMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.ReportGameAckMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.ReportGameAckMessage build() {
        de.pokerth.protocol.ProtoBuf.ReportGameAckMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.ReportGameAckMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.ReportGameAckMessage result = new de.pokerth.protocol.ProtoBuf.ReportGameAckMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.ReportGameAckMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.reportedGameId_ = reportedGameId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.reportGameResult_ = reportGameResult_;
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.ReportGameAckMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.ReportGameAckMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.ReportGameAckMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.getDefaultInstance()) return this;
        if (other.hasReportedGameId()) {
          setReportedGameId(other.getReportedGameId());
        }
        if (other.hasReportGameResult()) {
          setReportGameResult(other.getReportGameResult());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasReportedGameId()) {
          return false;
        }
        if (!hasReportGameResult()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                reportedGameId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                int tmpRaw = input.readEnum();
                de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.ReportGameResult tmpValue =
                    de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.ReportGameResult.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(2, tmpRaw);
                } else {
                  reportGameResult_ = tmpRaw;
                  bitField0_ |= 0x00000002;
                }
                break;
              } // case 16
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int reportedGameId_ ;
      /**
       * <code>required uint32 reportedGameId = 1;</code>
       * @return Whether the reportedGameId field is set.
       */
      @java.lang.Override
      public boolean hasReportedGameId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 reportedGameId = 1;</code>
       * @return The reportedGameId.
       */
      @java.lang.Override
      public int getReportedGameId() {
        return reportedGameId_;
      }
      /**
       * <code>required uint32 reportedGameId = 1;</code>
       * @param value The reportedGameId to set.
       * @return This builder for chaining.
       */
      public Builder setReportedGameId(int value) {
        
        reportedGameId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 reportedGameId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearReportedGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        reportedGameId_ = 0;
        onChanged();
        return this;
      }

      private int reportGameResult_ = 0;
      /**
       * <code>required .ReportGameAckMessage.ReportGameResult reportGameResult = 2;</code>
       * @return Whether the reportGameResult field is set.
       */
      @java.lang.Override public boolean hasReportGameResult() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required .ReportGameAckMessage.ReportGameResult reportGameResult = 2;</code>
       * @return The reportGameResult.
       */
      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.ReportGameResult getReportGameResult() {
        de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.ReportGameResult result = de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.ReportGameResult.forNumber(reportGameResult_);
        return result == null ? de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.ReportGameResult.gameReportAccepted : result;
      }
      /**
       * <code>required .ReportGameAckMessage.ReportGameResult reportGameResult = 2;</code>
       * @param value The reportGameResult to set.
       * @return This builder for chaining.
       */
      public Builder setReportGameResult(de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.ReportGameResult value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        reportGameResult_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>required .ReportGameAckMessage.ReportGameResult reportGameResult = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearReportGameResult() {
        bitField0_ = (bitField0_ & ~0x00000002);
        reportGameResult_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:ReportGameAckMessage)
    }

    // @@protoc_insertion_point(class_scope:ReportGameAckMessage)
    private static final de.pokerth.protocol.ProtoBuf.ReportGameAckMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.ReportGameAckMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.ReportGameAckMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<ReportGameAckMessage>
        PARSER = new com.google.protobuf.AbstractParser<ReportGameAckMessage>() {
      @java.lang.Override
      public ReportGameAckMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<ReportGameAckMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.ReportGameAckMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required .ErrorMessage.ErrorReason errorReason = 1;</code>
     * @return Whether the errorReason field is set.
     */
    boolean hasErrorReason();
    /**
     * <code>required .ErrorMessage.ErrorReason errorReason = 1;</code>
     * @return The errorReason.
     */
    de.pokerth.protocol.ProtoBuf.ErrorMessage.ErrorReason getErrorReason();
  }
  /**
   * Protobuf type {@code ErrorMessage}
   */
  public static final class ErrorMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ErrorMessage)
      ErrorMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ErrorMessage.newBuilder() to construct.
    private ErrorMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ErrorMessage() {
      errorReason_ = 0;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ErrorMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_ErrorMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_ErrorMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.ErrorMessage.class, de.pokerth.protocol.ProtoBuf.ErrorMessage.Builder.class);
    }

    /**
     * Protobuf enum {@code ErrorMessage.ErrorReason}
     */
    public enum ErrorReason
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>custReserved = 0;</code>
       */
      custReserved(0),
      /**
       * <code>initVersionNotSupported = 1;</code>
       */
      initVersionNotSupported(1),
      /**
       * <code>initServerFull = 2;</code>
       */
      initServerFull(2),
      /**
       * <code>initAuthFailure = 3;</code>
       */
      initAuthFailure(3),
      /**
       * <code>initPlayerNameInUse = 4;</code>
       */
      initPlayerNameInUse(4),
      /**
       * <code>initInvalidPlayerName = 5;</code>
       */
      initInvalidPlayerName(5),
      /**
       * <code>initServerMaintenance = 6;</code>
       */
      initServerMaintenance(6),
      /**
       * <code>initBlocked = 7;</code>
       */
      initBlocked(7),
      /**
       * <code>avatarTooLarge = 8;</code>
       */
      avatarTooLarge(8),
      /**
       * <code>invalidPacket = 9;</code>
       */
      invalidPacket(9),
      /**
       * <code>invalidState = 10;</code>
       */
      invalidState(10),
      /**
       * <code>kickedFromServer = 11;</code>
       */
      kickedFromServer(11),
      /**
       * <code>bannedFromServer = 12;</code>
       */
      bannedFromServer(12),
      /**
       * <code>blockedByServer = 13;</code>
       */
      blockedByServer(13),
      /**
       * <code>sessionTimeout = 14;</code>
       */
      sessionTimeout(14),
      ;

      /**
       * <code>custReserved = 0;</code>
       */
      public static final int custReserved_VALUE = 0;
      /**
       * <code>initVersionNotSupported = 1;</code>
       */
      public static final int initVersionNotSupported_VALUE = 1;
      /**
       * <code>initServerFull = 2;</code>
       */
      public static final int initServerFull_VALUE = 2;
      /**
       * <code>initAuthFailure = 3;</code>
       */
      public static final int initAuthFailure_VALUE = 3;
      /**
       * <code>initPlayerNameInUse = 4;</code>
       */
      public static final int initPlayerNameInUse_VALUE = 4;
      /**
       * <code>initInvalidPlayerName = 5;</code>
       */
      public static final int initInvalidPlayerName_VALUE = 5;
      /**
       * <code>initServerMaintenance = 6;</code>
       */
      public static final int initServerMaintenance_VALUE = 6;
      /**
       * <code>initBlocked = 7;</code>
       */
      public static final int initBlocked_VALUE = 7;
      /**
       * <code>avatarTooLarge = 8;</code>
       */
      public static final int avatarTooLarge_VALUE = 8;
      /**
       * <code>invalidPacket = 9;</code>
       */
      public static final int invalidPacket_VALUE = 9;
      /**
       * <code>invalidState = 10;</code>
       */
      public static final int invalidState_VALUE = 10;
      /**
       * <code>kickedFromServer = 11;</code>
       */
      public static final int kickedFromServer_VALUE = 11;
      /**
       * <code>bannedFromServer = 12;</code>
       */
      public static final int bannedFromServer_VALUE = 12;
      /**
       * <code>blockedByServer = 13;</code>
       */
      public static final int blockedByServer_VALUE = 13;
      /**
       * <code>sessionTimeout = 14;</code>
       */
      public static final int sessionTimeout_VALUE = 14;


      public final int getNumber() {
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static ErrorReason valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static ErrorReason forNumber(int value) {
        switch (value) {
          case 0: return custReserved;
          case 1: return initVersionNotSupported;
          case 2: return initServerFull;
          case 3: return initAuthFailure;
          case 4: return initPlayerNameInUse;
          case 5: return initInvalidPlayerName;
          case 6: return initServerMaintenance;
          case 7: return initBlocked;
          case 8: return avatarTooLarge;
          case 9: return invalidPacket;
          case 10: return invalidState;
          case 11: return kickedFromServer;
          case 12: return bannedFromServer;
          case 13: return blockedByServer;
          case 14: return sessionTimeout;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<ErrorReason>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          ErrorReason> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<ErrorReason>() {
              public ErrorReason findValueByNumber(int number) {
                return ErrorReason.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.ErrorMessage.getDescriptor().getEnumTypes().get(0);
      }

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

      public static ErrorReason 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 value;

      private ErrorReason(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:ErrorMessage.ErrorReason)
    }

    private int bitField0_;
    public static final int ERRORREASON_FIELD_NUMBER = 1;
    private int errorReason_ = 0;
    /**
     * <code>required .ErrorMessage.ErrorReason errorReason = 1;</code>
     * @return Whether the errorReason field is set.
     */
    @java.lang.Override public boolean hasErrorReason() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required .ErrorMessage.ErrorReason errorReason = 1;</code>
     * @return The errorReason.
     */
    @java.lang.Override public de.pokerth.protocol.ProtoBuf.ErrorMessage.ErrorReason getErrorReason() {
      de.pokerth.protocol.ProtoBuf.ErrorMessage.ErrorReason result = de.pokerth.protocol.ProtoBuf.ErrorMessage.ErrorReason.forNumber(errorReason_);
      return result == null ? de.pokerth.protocol.ProtoBuf.ErrorMessage.ErrorReason.custReserved : result;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

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

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeEnum(1, errorReason_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, errorReason_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.ErrorMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.ErrorMessage other = (de.pokerth.protocol.ProtoBuf.ErrorMessage) obj;

      if (hasErrorReason() != other.hasErrorReason()) return false;
      if (hasErrorReason()) {
        if (errorReason_ != other.errorReason_) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasErrorReason()) {
        hash = (37 * hash) + ERRORREASON_FIELD_NUMBER;
        hash = (53 * hash) + errorReason_;
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.ErrorMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.ErrorMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ErrorMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.ErrorMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ErrorMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.ErrorMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ErrorMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.ErrorMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ErrorMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.ErrorMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.ErrorMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.ErrorMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.ErrorMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code ErrorMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ErrorMessage)
        de.pokerth.protocol.ProtoBuf.ErrorMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_ErrorMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_ErrorMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.ErrorMessage.class, de.pokerth.protocol.ProtoBuf.ErrorMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.ErrorMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        errorReason_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_ErrorMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.ErrorMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.ErrorMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.ErrorMessage build() {
        de.pokerth.protocol.ProtoBuf.ErrorMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.ErrorMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.ErrorMessage result = new de.pokerth.protocol.ProtoBuf.ErrorMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.ErrorMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.errorReason_ = errorReason_;
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.ErrorMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.ErrorMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.ErrorMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.ErrorMessage.getDefaultInstance()) return this;
        if (other.hasErrorReason()) {
          setErrorReason(other.getErrorReason());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasErrorReason()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                int tmpRaw = input.readEnum();
                de.pokerth.protocol.ProtoBuf.ErrorMessage.ErrorReason tmpValue =
                    de.pokerth.protocol.ProtoBuf.ErrorMessage.ErrorReason.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(1, tmpRaw);
                } else {
                  errorReason_ = tmpRaw;
                  bitField0_ |= 0x00000001;
                }
                break;
              } // case 8
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int errorReason_ = 0;
      /**
       * <code>required .ErrorMessage.ErrorReason errorReason = 1;</code>
       * @return Whether the errorReason field is set.
       */
      @java.lang.Override public boolean hasErrorReason() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required .ErrorMessage.ErrorReason errorReason = 1;</code>
       * @return The errorReason.
       */
      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.ErrorMessage.ErrorReason getErrorReason() {
        de.pokerth.protocol.ProtoBuf.ErrorMessage.ErrorReason result = de.pokerth.protocol.ProtoBuf.ErrorMessage.ErrorReason.forNumber(errorReason_);
        return result == null ? de.pokerth.protocol.ProtoBuf.ErrorMessage.ErrorReason.custReserved : result;
      }
      /**
       * <code>required .ErrorMessage.ErrorReason errorReason = 1;</code>
       * @param value The errorReason to set.
       * @return This builder for chaining.
       */
      public Builder setErrorReason(de.pokerth.protocol.ProtoBuf.ErrorMessage.ErrorReason value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        errorReason_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>required .ErrorMessage.ErrorReason errorReason = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearErrorReason() {
        bitField0_ = (bitField0_ & ~0x00000001);
        errorReason_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:ErrorMessage)
    }

    // @@protoc_insertion_point(class_scope:ErrorMessage)
    private static final de.pokerth.protocol.ProtoBuf.ErrorMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.ErrorMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.ErrorMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<ErrorMessage>
        PARSER = new com.google.protobuf.AbstractParser<ErrorMessage>() {
      @java.lang.Override
      public ErrorMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<ErrorMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.ErrorMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 removeGameId = 1;</code>
     * @return Whether the removeGameId field is set.
     */
    boolean hasRemoveGameId();
    /**
     * <code>required uint32 removeGameId = 1;</code>
     * @return The removeGameId.
     */
    int getRemoveGameId();
  }
  /**
   * Protobuf type {@code AdminRemoveGameMessage}
   */
  public static final class AdminRemoveGameMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:AdminRemoveGameMessage)
      AdminRemoveGameMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use AdminRemoveGameMessage.newBuilder() to construct.
    private AdminRemoveGameMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private AdminRemoveGameMessage() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new AdminRemoveGameMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_AdminRemoveGameMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_AdminRemoveGameMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage.class, de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage.Builder.class);
    }

    private int bitField0_;
    public static final int REMOVEGAMEID_FIELD_NUMBER = 1;
    private int removeGameId_ = 0;
    /**
     * <code>required uint32 removeGameId = 1;</code>
     * @return Whether the removeGameId field is set.
     */
    @java.lang.Override
    public boolean hasRemoveGameId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 removeGameId = 1;</code>
     * @return The removeGameId.
     */
    @java.lang.Override
    public int getRemoveGameId() {
      return removeGameId_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

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

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, removeGameId_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, removeGameId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage other = (de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage) obj;

      if (hasRemoveGameId() != other.hasRemoveGameId()) return false;
      if (hasRemoveGameId()) {
        if (getRemoveGameId()
            != other.getRemoveGameId()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasRemoveGameId()) {
        hash = (37 * hash) + REMOVEGAMEID_FIELD_NUMBER;
        hash = (53 * hash) + getRemoveGameId();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code AdminRemoveGameMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:AdminRemoveGameMessage)
        de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_AdminRemoveGameMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_AdminRemoveGameMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage.class, de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        removeGameId_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_AdminRemoveGameMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage build() {
        de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage result = new de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.removeGameId_ = removeGameId_;
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage.getDefaultInstance()) return this;
        if (other.hasRemoveGameId()) {
          setRemoveGameId(other.getRemoveGameId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasRemoveGameId()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                removeGameId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int removeGameId_ ;
      /**
       * <code>required uint32 removeGameId = 1;</code>
       * @return Whether the removeGameId field is set.
       */
      @java.lang.Override
      public boolean hasRemoveGameId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 removeGameId = 1;</code>
       * @return The removeGameId.
       */
      @java.lang.Override
      public int getRemoveGameId() {
        return removeGameId_;
      }
      /**
       * <code>required uint32 removeGameId = 1;</code>
       * @param value The removeGameId to set.
       * @return This builder for chaining.
       */
      public Builder setRemoveGameId(int value) {
        
        removeGameId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 removeGameId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearRemoveGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        removeGameId_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:AdminRemoveGameMessage)
    }

    // @@protoc_insertion_point(class_scope:AdminRemoveGameMessage)
    private static final de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<AdminRemoveGameMessage>
        PARSER = new com.google.protobuf.AbstractParser<AdminRemoveGameMessage>() {
      @java.lang.Override
      public AdminRemoveGameMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<AdminRemoveGameMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 removeGameId = 1;</code>
     * @return Whether the removeGameId field is set.
     */
    boolean hasRemoveGameId();
    /**
     * <code>required uint32 removeGameId = 1;</code>
     * @return The removeGameId.
     */
    int getRemoveGameId();

    /**
     * <code>required .AdminRemoveGameAckMessage.AdminRemoveGameResult removeGameResult = 2;</code>
     * @return Whether the removeGameResult field is set.
     */
    boolean hasRemoveGameResult();
    /**
     * <code>required .AdminRemoveGameAckMessage.AdminRemoveGameResult removeGameResult = 2;</code>
     * @return The removeGameResult.
     */
    de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.AdminRemoveGameResult getRemoveGameResult();
  }
  /**
   * Protobuf type {@code AdminRemoveGameAckMessage}
   */
  public static final class AdminRemoveGameAckMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:AdminRemoveGameAckMessage)
      AdminRemoveGameAckMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use AdminRemoveGameAckMessage.newBuilder() to construct.
    private AdminRemoveGameAckMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private AdminRemoveGameAckMessage() {
      removeGameResult_ = 0;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new AdminRemoveGameAckMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_AdminRemoveGameAckMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_AdminRemoveGameAckMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.class, de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.Builder.class);
    }

    /**
     * Protobuf enum {@code AdminRemoveGameAckMessage.AdminRemoveGameResult}
     */
    public enum AdminRemoveGameResult
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>gameRemoveAccepted = 0;</code>
       */
      gameRemoveAccepted(0),
      /**
       * <code>gameRemoveInvalid = 1;</code>
       */
      gameRemoveInvalid(1),
      ;

      /**
       * <code>gameRemoveAccepted = 0;</code>
       */
      public static final int gameRemoveAccepted_VALUE = 0;
      /**
       * <code>gameRemoveInvalid = 1;</code>
       */
      public static final int gameRemoveInvalid_VALUE = 1;


      public final int getNumber() {
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static AdminRemoveGameResult valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static AdminRemoveGameResult forNumber(int value) {
        switch (value) {
          case 0: return gameRemoveAccepted;
          case 1: return gameRemoveInvalid;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<AdminRemoveGameResult>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          AdminRemoveGameResult> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<AdminRemoveGameResult>() {
              public AdminRemoveGameResult findValueByNumber(int number) {
                return AdminRemoveGameResult.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.getDescriptor().getEnumTypes().get(0);
      }

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

      public static AdminRemoveGameResult 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 value;

      private AdminRemoveGameResult(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:AdminRemoveGameAckMessage.AdminRemoveGameResult)
    }

    private int bitField0_;
    public static final int REMOVEGAMEID_FIELD_NUMBER = 1;
    private int removeGameId_ = 0;
    /**
     * <code>required uint32 removeGameId = 1;</code>
     * @return Whether the removeGameId field is set.
     */
    @java.lang.Override
    public boolean hasRemoveGameId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 removeGameId = 1;</code>
     * @return The removeGameId.
     */
    @java.lang.Override
    public int getRemoveGameId() {
      return removeGameId_;
    }

    public static final int REMOVEGAMERESULT_FIELD_NUMBER = 2;
    private int removeGameResult_ = 0;
    /**
     * <code>required .AdminRemoveGameAckMessage.AdminRemoveGameResult removeGameResult = 2;</code>
     * @return Whether the removeGameResult field is set.
     */
    @java.lang.Override public boolean hasRemoveGameResult() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required .AdminRemoveGameAckMessage.AdminRemoveGameResult removeGameResult = 2;</code>
     * @return The removeGameResult.
     */
    @java.lang.Override public de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.AdminRemoveGameResult getRemoveGameResult() {
      de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.AdminRemoveGameResult result = de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.AdminRemoveGameResult.forNumber(removeGameResult_);
      return result == null ? de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.AdminRemoveGameResult.gameRemoveAccepted : result;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

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

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, removeGameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeEnum(2, removeGameResult_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, removeGameId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, removeGameResult_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage other = (de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage) obj;

      if (hasRemoveGameId() != other.hasRemoveGameId()) return false;
      if (hasRemoveGameId()) {
        if (getRemoveGameId()
            != other.getRemoveGameId()) return false;
      }
      if (hasRemoveGameResult() != other.hasRemoveGameResult()) return false;
      if (hasRemoveGameResult()) {
        if (removeGameResult_ != other.removeGameResult_) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasRemoveGameId()) {
        hash = (37 * hash) + REMOVEGAMEID_FIELD_NUMBER;
        hash = (53 * hash) + getRemoveGameId();
      }
      if (hasRemoveGameResult()) {
        hash = (37 * hash) + REMOVEGAMERESULT_FIELD_NUMBER;
        hash = (53 * hash) + removeGameResult_;
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code AdminRemoveGameAckMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:AdminRemoveGameAckMessage)
        de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_AdminRemoveGameAckMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_AdminRemoveGameAckMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.class, de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        removeGameId_ = 0;
        removeGameResult_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_AdminRemoveGameAckMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage build() {
        de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage result = new de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.removeGameId_ = removeGameId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.removeGameResult_ = removeGameResult_;
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.getDefaultInstance()) return this;
        if (other.hasRemoveGameId()) {
          setRemoveGameId(other.getRemoveGameId());
        }
        if (other.hasRemoveGameResult()) {
          setRemoveGameResult(other.getRemoveGameResult());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasRemoveGameId()) {
          return false;
        }
        if (!hasRemoveGameResult()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                removeGameId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                int tmpRaw = input.readEnum();
                de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.AdminRemoveGameResult tmpValue =
                    de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.AdminRemoveGameResult.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(2, tmpRaw);
                } else {
                  removeGameResult_ = tmpRaw;
                  bitField0_ |= 0x00000002;
                }
                break;
              } // case 16
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int removeGameId_ ;
      /**
       * <code>required uint32 removeGameId = 1;</code>
       * @return Whether the removeGameId field is set.
       */
      @java.lang.Override
      public boolean hasRemoveGameId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 removeGameId = 1;</code>
       * @return The removeGameId.
       */
      @java.lang.Override
      public int getRemoveGameId() {
        return removeGameId_;
      }
      /**
       * <code>required uint32 removeGameId = 1;</code>
       * @param value The removeGameId to set.
       * @return This builder for chaining.
       */
      public Builder setRemoveGameId(int value) {
        
        removeGameId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 removeGameId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearRemoveGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        removeGameId_ = 0;
        onChanged();
        return this;
      }

      private int removeGameResult_ = 0;
      /**
       * <code>required .AdminRemoveGameAckMessage.AdminRemoveGameResult removeGameResult = 2;</code>
       * @return Whether the removeGameResult field is set.
       */
      @java.lang.Override public boolean hasRemoveGameResult() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required .AdminRemoveGameAckMessage.AdminRemoveGameResult removeGameResult = 2;</code>
       * @return The removeGameResult.
       */
      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.AdminRemoveGameResult getRemoveGameResult() {
        de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.AdminRemoveGameResult result = de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.AdminRemoveGameResult.forNumber(removeGameResult_);
        return result == null ? de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.AdminRemoveGameResult.gameRemoveAccepted : result;
      }
      /**
       * <code>required .AdminRemoveGameAckMessage.AdminRemoveGameResult removeGameResult = 2;</code>
       * @param value The removeGameResult to set.
       * @return This builder for chaining.
       */
      public Builder setRemoveGameResult(de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.AdminRemoveGameResult value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        removeGameResult_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>required .AdminRemoveGameAckMessage.AdminRemoveGameResult removeGameResult = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearRemoveGameResult() {
        bitField0_ = (bitField0_ & ~0x00000002);
        removeGameResult_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:AdminRemoveGameAckMessage)
    }

    // @@protoc_insertion_point(class_scope:AdminRemoveGameAckMessage)
    private static final de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<AdminRemoveGameAckMessage>
        PARSER = new com.google.protobuf.AbstractParser<AdminRemoveGameAckMessage>() {
      @java.lang.Override
      public AdminRemoveGameAckMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<AdminRemoveGameAckMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 banPlayerId = 1;</code>
     * @return Whether the banPlayerId field is set.
     */
    boolean hasBanPlayerId();
    /**
     * <code>required uint32 banPlayerId = 1;</code>
     * @return The banPlayerId.
     */
    int getBanPlayerId();
  }
  /**
   * Protobuf type {@code AdminBanPlayerMessage}
   */
  public static final class AdminBanPlayerMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:AdminBanPlayerMessage)
      AdminBanPlayerMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use AdminBanPlayerMessage.newBuilder() to construct.
    private AdminBanPlayerMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private AdminBanPlayerMessage() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new AdminBanPlayerMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_AdminBanPlayerMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_AdminBanPlayerMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage.class, de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage.Builder.class);
    }

    private int bitField0_;
    public static final int BANPLAYERID_FIELD_NUMBER = 1;
    private int banPlayerId_ = 0;
    /**
     * <code>required uint32 banPlayerId = 1;</code>
     * @return Whether the banPlayerId field is set.
     */
    @java.lang.Override
    public boolean hasBanPlayerId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 banPlayerId = 1;</code>
     * @return The banPlayerId.
     */
    @java.lang.Override
    public int getBanPlayerId() {
      return banPlayerId_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

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

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, banPlayerId_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, banPlayerId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage other = (de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage) obj;

      if (hasBanPlayerId() != other.hasBanPlayerId()) return false;
      if (hasBanPlayerId()) {
        if (getBanPlayerId()
            != other.getBanPlayerId()) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasBanPlayerId()) {
        hash = (37 * hash) + BANPLAYERID_FIELD_NUMBER;
        hash = (53 * hash) + getBanPlayerId();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code AdminBanPlayerMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:AdminBanPlayerMessage)
        de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_AdminBanPlayerMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_AdminBanPlayerMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage.class, de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        banPlayerId_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_AdminBanPlayerMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage build() {
        de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage result = new de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.banPlayerId_ = banPlayerId_;
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage.getDefaultInstance()) return this;
        if (other.hasBanPlayerId()) {
          setBanPlayerId(other.getBanPlayerId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasBanPlayerId()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                banPlayerId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int banPlayerId_ ;
      /**
       * <code>required uint32 banPlayerId = 1;</code>
       * @return Whether the banPlayerId field is set.
       */
      @java.lang.Override
      public boolean hasBanPlayerId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 banPlayerId = 1;</code>
       * @return The banPlayerId.
       */
      @java.lang.Override
      public int getBanPlayerId() {
        return banPlayerId_;
      }
      /**
       * <code>required uint32 banPlayerId = 1;</code>
       * @param value The banPlayerId to set.
       * @return This builder for chaining.
       */
      public Builder setBanPlayerId(int value) {
        
        banPlayerId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 banPlayerId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearBanPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        banPlayerId_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:AdminBanPlayerMessage)
    }

    // @@protoc_insertion_point(class_scope:AdminBanPlayerMessage)
    private static final de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<AdminBanPlayerMessage>
        PARSER = new com.google.protobuf.AbstractParser<AdminBanPlayerMessage>() {
      @java.lang.Override
      public AdminBanPlayerMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<AdminBanPlayerMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required uint32 banPlayerId = 1;</code>
     * @return Whether the banPlayerId field is set.
     */
    boolean hasBanPlayerId();
    /**
     * <code>required uint32 banPlayerId = 1;</code>
     * @return The banPlayerId.
     */
    int getBanPlayerId();

    /**
     * <code>required .AdminBanPlayerAckMessage.AdminBanPlayerResult banPlayerResult = 2;</code>
     * @return Whether the banPlayerResult field is set.
     */
    boolean hasBanPlayerResult();
    /**
     * <code>required .AdminBanPlayerAckMessage.AdminBanPlayerResult banPlayerResult = 2;</code>
     * @return The banPlayerResult.
     */
    de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.AdminBanPlayerResult getBanPlayerResult();
  }
  /**
   * Protobuf type {@code AdminBanPlayerAckMessage}
   */
  public static final class AdminBanPlayerAckMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:AdminBanPlayerAckMessage)
      AdminBanPlayerAckMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use AdminBanPlayerAckMessage.newBuilder() to construct.
    private AdminBanPlayerAckMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private AdminBanPlayerAckMessage() {
      banPlayerResult_ = 0;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new AdminBanPlayerAckMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_AdminBanPlayerAckMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_AdminBanPlayerAckMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.class, de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.Builder.class);
    }

    /**
     * Protobuf enum {@code AdminBanPlayerAckMessage.AdminBanPlayerResult}
     */
    public enum AdminBanPlayerResult
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>banPlayerAccepted = 0;</code>
       */
      banPlayerAccepted(0),
      /**
       * <code>banPlayerPending = 1;</code>
       */
      banPlayerPending(1),
      /**
       * <code>banPlayerNoDB = 2;</code>
       */
      banPlayerNoDB(2),
      /**
       * <code>banPlayerDBError = 3;</code>
       */
      banPlayerDBError(3),
      /**
       * <code>banPlayerInvalid = 4;</code>
       */
      banPlayerInvalid(4),
      ;

      /**
       * <code>banPlayerAccepted = 0;</code>
       */
      public static final int banPlayerAccepted_VALUE = 0;
      /**
       * <code>banPlayerPending = 1;</code>
       */
      public static final int banPlayerPending_VALUE = 1;
      /**
       * <code>banPlayerNoDB = 2;</code>
       */
      public static final int banPlayerNoDB_VALUE = 2;
      /**
       * <code>banPlayerDBError = 3;</code>
       */
      public static final int banPlayerDBError_VALUE = 3;
      /**
       * <code>banPlayerInvalid = 4;</code>
       */
      public static final int banPlayerInvalid_VALUE = 4;


      public final int getNumber() {
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static AdminBanPlayerResult valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static AdminBanPlayerResult forNumber(int value) {
        switch (value) {
          case 0: return banPlayerAccepted;
          case 1: return banPlayerPending;
          case 2: return banPlayerNoDB;
          case 3: return banPlayerDBError;
          case 4: return banPlayerInvalid;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<AdminBanPlayerResult>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          AdminBanPlayerResult> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<AdminBanPlayerResult>() {
              public AdminBanPlayerResult findValueByNumber(int number) {
                return AdminBanPlayerResult.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.getDescriptor().getEnumTypes().get(0);
      }

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

      public static AdminBanPlayerResult 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 value;

      private AdminBanPlayerResult(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:AdminBanPlayerAckMessage.AdminBanPlayerResult)
    }

    private int bitField0_;
    public static final int BANPLAYERID_FIELD_NUMBER = 1;
    private int banPlayerId_ = 0;
    /**
     * <code>required uint32 banPlayerId = 1;</code>
     * @return Whether the banPlayerId field is set.
     */
    @java.lang.Override
    public boolean hasBanPlayerId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 banPlayerId = 1;</code>
     * @return The banPlayerId.
     */
    @java.lang.Override
    public int getBanPlayerId() {
      return banPlayerId_;
    }

    public static final int BANPLAYERRESULT_FIELD_NUMBER = 2;
    private int banPlayerResult_ = 0;
    /**
     * <code>required .AdminBanPlayerAckMessage.AdminBanPlayerResult banPlayerResult = 2;</code>
     * @return Whether the banPlayerResult field is set.
     */
    @java.lang.Override public boolean hasBanPlayerResult() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required .AdminBanPlayerAckMessage.AdminBanPlayerResult banPlayerResult = 2;</code>
     * @return The banPlayerResult.
     */
    @java.lang.Override public de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.AdminBanPlayerResult getBanPlayerResult() {
      de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.AdminBanPlayerResult result = de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.AdminBanPlayerResult.forNumber(banPlayerResult_);
      return result == null ? de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.AdminBanPlayerResult.banPlayerAccepted : result;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

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

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, banPlayerId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeEnum(2, banPlayerResult_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, banPlayerId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, banPlayerResult_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage other = (de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage) obj;

      if (hasBanPlayerId() != other.hasBanPlayerId()) return false;
      if (hasBanPlayerId()) {
        if (getBanPlayerId()
            != other.getBanPlayerId()) return false;
      }
      if (hasBanPlayerResult() != other.hasBanPlayerResult()) return false;
      if (hasBanPlayerResult()) {
        if (banPlayerResult_ != other.banPlayerResult_) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasBanPlayerId()) {
        hash = (37 * hash) + BANPLAYERID_FIELD_NUMBER;
        hash = (53 * hash) + getBanPlayerId();
      }
      if (hasBanPlayerResult()) {
        hash = (37 * hash) + BANPLAYERRESULT_FIELD_NUMBER;
        hash = (53 * hash) + banPlayerResult_;
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code AdminBanPlayerAckMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:AdminBanPlayerAckMessage)
        de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_AdminBanPlayerAckMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_AdminBanPlayerAckMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.class, de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        banPlayerId_ = 0;
        banPlayerResult_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_AdminBanPlayerAckMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage build() {
        de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage result = new de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.banPlayerId_ = banPlayerId_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.banPlayerResult_ = banPlayerResult_;
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.getDefaultInstance()) return this;
        if (other.hasBanPlayerId()) {
          setBanPlayerId(other.getBanPlayerId());
        }
        if (other.hasBanPlayerResult()) {
          setBanPlayerResult(other.getBanPlayerResult());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasBanPlayerId()) {
          return false;
        }
        if (!hasBanPlayerResult()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                banPlayerId_ = input.readUInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                int tmpRaw = input.readEnum();
                de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.AdminBanPlayerResult tmpValue =
                    de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.AdminBanPlayerResult.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(2, tmpRaw);
                } else {
                  banPlayerResult_ = tmpRaw;
                  bitField0_ |= 0x00000002;
                }
                break;
              } // case 16
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int banPlayerId_ ;
      /**
       * <code>required uint32 banPlayerId = 1;</code>
       * @return Whether the banPlayerId field is set.
       */
      @java.lang.Override
      public boolean hasBanPlayerId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 banPlayerId = 1;</code>
       * @return The banPlayerId.
       */
      @java.lang.Override
      public int getBanPlayerId() {
        return banPlayerId_;
      }
      /**
       * <code>required uint32 banPlayerId = 1;</code>
       * @param value The banPlayerId to set.
       * @return This builder for chaining.
       */
      public Builder setBanPlayerId(int value) {
        
        banPlayerId_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 banPlayerId = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearBanPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        banPlayerId_ = 0;
        onChanged();
        return this;
      }

      private int banPlayerResult_ = 0;
      /**
       * <code>required .AdminBanPlayerAckMessage.AdminBanPlayerResult banPlayerResult = 2;</code>
       * @return Whether the banPlayerResult field is set.
       */
      @java.lang.Override public boolean hasBanPlayerResult() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required .AdminBanPlayerAckMessage.AdminBanPlayerResult banPlayerResult = 2;</code>
       * @return The banPlayerResult.
       */
      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.AdminBanPlayerResult getBanPlayerResult() {
        de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.AdminBanPlayerResult result = de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.AdminBanPlayerResult.forNumber(banPlayerResult_);
        return result == null ? de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.AdminBanPlayerResult.banPlayerAccepted : result;
      }
      /**
       * <code>required .AdminBanPlayerAckMessage.AdminBanPlayerResult banPlayerResult = 2;</code>
       * @param value The banPlayerResult to set.
       * @return This builder for chaining.
       */
      public Builder setBanPlayerResult(de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.AdminBanPlayerResult value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        banPlayerResult_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>required .AdminBanPlayerAckMessage.AdminBanPlayerResult banPlayerResult = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearBanPlayerResult() {
        bitField0_ = (bitField0_ & ~0x00000002);
        banPlayerResult_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:AdminBanPlayerAckMessage)
    }

    // @@protoc_insertion_point(class_scope:AdminBanPlayerAckMessage)
    private static final de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<AdminBanPlayerAckMessage>
        PARSER = new com.google.protobuf.AbstractParser<AdminBanPlayerAckMessage>() {
      @java.lang.Override
      public AdminBanPlayerAckMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<AdminBanPlayerAckMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>required .PokerTHMessage.PokerTHMessageType messageType = 1;</code>
     * @return Whether the messageType field is set.
     */
    boolean hasMessageType();
    /**
     * <code>required .PokerTHMessage.PokerTHMessageType messageType = 1;</code>
     * @return The messageType.
     */
    de.pokerth.protocol.ProtoBuf.PokerTHMessage.PokerTHMessageType getMessageType();

    /**
     * <code>optional .AnnounceMessage announceMessage = 2;</code>
     * @return Whether the announceMessage field is set.
     */
    boolean hasAnnounceMessage();
    /**
     * <code>optional .AnnounceMessage announceMessage = 2;</code>
     * @return The announceMessage.
     */
    de.pokerth.protocol.ProtoBuf.AnnounceMessage getAnnounceMessage();
    /**
     * <code>optional .AnnounceMessage announceMessage = 2;</code>
     */
    de.pokerth.protocol.ProtoBuf.AnnounceMessageOrBuilder getAnnounceMessageOrBuilder();

    /**
     * <code>optional .InitMessage initMessage = 3;</code>
     * @return Whether the initMessage field is set.
     */
    boolean hasInitMessage();
    /**
     * <code>optional .InitMessage initMessage = 3;</code>
     * @return The initMessage.
     */
    de.pokerth.protocol.ProtoBuf.InitMessage getInitMessage();
    /**
     * <code>optional .InitMessage initMessage = 3;</code>
     */
    de.pokerth.protocol.ProtoBuf.InitMessageOrBuilder getInitMessageOrBuilder();

    /**
     * <code>optional .AuthServerChallengeMessage authServerChallengeMessage = 4;</code>
     * @return Whether the authServerChallengeMessage field is set.
     */
    boolean hasAuthServerChallengeMessage();
    /**
     * <code>optional .AuthServerChallengeMessage authServerChallengeMessage = 4;</code>
     * @return The authServerChallengeMessage.
     */
    de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage getAuthServerChallengeMessage();
    /**
     * <code>optional .AuthServerChallengeMessage authServerChallengeMessage = 4;</code>
     */
    de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessageOrBuilder getAuthServerChallengeMessageOrBuilder();

    /**
     * <code>optional .AuthClientResponseMessage authClientResponseMessage = 5;</code>
     * @return Whether the authClientResponseMessage field is set.
     */
    boolean hasAuthClientResponseMessage();
    /**
     * <code>optional .AuthClientResponseMessage authClientResponseMessage = 5;</code>
     * @return The authClientResponseMessage.
     */
    de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage getAuthClientResponseMessage();
    /**
     * <code>optional .AuthClientResponseMessage authClientResponseMessage = 5;</code>
     */
    de.pokerth.protocol.ProtoBuf.AuthClientResponseMessageOrBuilder getAuthClientResponseMessageOrBuilder();

    /**
     * <code>optional .AuthServerVerificationMessage authServerVerificationMessage = 6;</code>
     * @return Whether the authServerVerificationMessage field is set.
     */
    boolean hasAuthServerVerificationMessage();
    /**
     * <code>optional .AuthServerVerificationMessage authServerVerificationMessage = 6;</code>
     * @return The authServerVerificationMessage.
     */
    de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage getAuthServerVerificationMessage();
    /**
     * <code>optional .AuthServerVerificationMessage authServerVerificationMessage = 6;</code>
     */
    de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessageOrBuilder getAuthServerVerificationMessageOrBuilder();

    /**
     * <code>optional .InitAckMessage initAckMessage = 7;</code>
     * @return Whether the initAckMessage field is set.
     */
    boolean hasInitAckMessage();
    /**
     * <code>optional .InitAckMessage initAckMessage = 7;</code>
     * @return The initAckMessage.
     */
    de.pokerth.protocol.ProtoBuf.InitAckMessage getInitAckMessage();
    /**
     * <code>optional .InitAckMessage initAckMessage = 7;</code>
     */
    de.pokerth.protocol.ProtoBuf.InitAckMessageOrBuilder getInitAckMessageOrBuilder();

    /**
     * <code>optional .AvatarRequestMessage avatarRequestMessage = 8;</code>
     * @return Whether the avatarRequestMessage field is set.
     */
    boolean hasAvatarRequestMessage();
    /**
     * <code>optional .AvatarRequestMessage avatarRequestMessage = 8;</code>
     * @return The avatarRequestMessage.
     */
    de.pokerth.protocol.ProtoBuf.AvatarRequestMessage getAvatarRequestMessage();
    /**
     * <code>optional .AvatarRequestMessage avatarRequestMessage = 8;</code>
     */
    de.pokerth.protocol.ProtoBuf.AvatarRequestMessageOrBuilder getAvatarRequestMessageOrBuilder();

    /**
     * <code>optional .AvatarHeaderMessage avatarHeaderMessage = 9;</code>
     * @return Whether the avatarHeaderMessage field is set.
     */
    boolean hasAvatarHeaderMessage();
    /**
     * <code>optional .AvatarHeaderMessage avatarHeaderMessage = 9;</code>
     * @return The avatarHeaderMessage.
     */
    de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage getAvatarHeaderMessage();
    /**
     * <code>optional .AvatarHeaderMessage avatarHeaderMessage = 9;</code>
     */
    de.pokerth.protocol.ProtoBuf.AvatarHeaderMessageOrBuilder getAvatarHeaderMessageOrBuilder();

    /**
     * <code>optional .AvatarDataMessage avatarDataMessage = 10;</code>
     * @return Whether the avatarDataMessage field is set.
     */
    boolean hasAvatarDataMessage();
    /**
     * <code>optional .AvatarDataMessage avatarDataMessage = 10;</code>
     * @return The avatarDataMessage.
     */
    de.pokerth.protocol.ProtoBuf.AvatarDataMessage getAvatarDataMessage();
    /**
     * <code>optional .AvatarDataMessage avatarDataMessage = 10;</code>
     */
    de.pokerth.protocol.ProtoBuf.AvatarDataMessageOrBuilder getAvatarDataMessageOrBuilder();

    /**
     * <code>optional .AvatarEndMessage avatarEndMessage = 11;</code>
     * @return Whether the avatarEndMessage field is set.
     */
    boolean hasAvatarEndMessage();
    /**
     * <code>optional .AvatarEndMessage avatarEndMessage = 11;</code>
     * @return The avatarEndMessage.
     */
    de.pokerth.protocol.ProtoBuf.AvatarEndMessage getAvatarEndMessage();
    /**
     * <code>optional .AvatarEndMessage avatarEndMessage = 11;</code>
     */
    de.pokerth.protocol.ProtoBuf.AvatarEndMessageOrBuilder getAvatarEndMessageOrBuilder();

    /**
     * <code>optional .UnknownAvatarMessage unknownAvatarMessage = 12;</code>
     * @return Whether the unknownAvatarMessage field is set.
     */
    boolean hasUnknownAvatarMessage();
    /**
     * <code>optional .UnknownAvatarMessage unknownAvatarMessage = 12;</code>
     * @return The unknownAvatarMessage.
     */
    de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage getUnknownAvatarMessage();
    /**
     * <code>optional .UnknownAvatarMessage unknownAvatarMessage = 12;</code>
     */
    de.pokerth.protocol.ProtoBuf.UnknownAvatarMessageOrBuilder getUnknownAvatarMessageOrBuilder();

    /**
     * <code>optional .PlayerListMessage playerListMessage = 13;</code>
     * @return Whether the playerListMessage field is set.
     */
    boolean hasPlayerListMessage();
    /**
     * <code>optional .PlayerListMessage playerListMessage = 13;</code>
     * @return The playerListMessage.
     */
    de.pokerth.protocol.ProtoBuf.PlayerListMessage getPlayerListMessage();
    /**
     * <code>optional .PlayerListMessage playerListMessage = 13;</code>
     */
    de.pokerth.protocol.ProtoBuf.PlayerListMessageOrBuilder getPlayerListMessageOrBuilder();

    /**
     * <code>optional .GameListNewMessage gameListNewMessage = 14;</code>
     * @return Whether the gameListNewMessage field is set.
     */
    boolean hasGameListNewMessage();
    /**
     * <code>optional .GameListNewMessage gameListNewMessage = 14;</code>
     * @return The gameListNewMessage.
     */
    de.pokerth.protocol.ProtoBuf.GameListNewMessage getGameListNewMessage();
    /**
     * <code>optional .GameListNewMessage gameListNewMessage = 14;</code>
     */
    de.pokerth.protocol.ProtoBuf.GameListNewMessageOrBuilder getGameListNewMessageOrBuilder();

    /**
     * <code>optional .GameListUpdateMessage gameListUpdateMessage = 15;</code>
     * @return Whether the gameListUpdateMessage field is set.
     */
    boolean hasGameListUpdateMessage();
    /**
     * <code>optional .GameListUpdateMessage gameListUpdateMessage = 15;</code>
     * @return The gameListUpdateMessage.
     */
    de.pokerth.protocol.ProtoBuf.GameListUpdateMessage getGameListUpdateMessage();
    /**
     * <code>optional .GameListUpdateMessage gameListUpdateMessage = 15;</code>
     */
    de.pokerth.protocol.ProtoBuf.GameListUpdateMessageOrBuilder getGameListUpdateMessageOrBuilder();

    /**
     * <code>optional .GameListPlayerJoinedMessage gameListPlayerJoinedMessage = 16;</code>
     * @return Whether the gameListPlayerJoinedMessage field is set.
     */
    boolean hasGameListPlayerJoinedMessage();
    /**
     * <code>optional .GameListPlayerJoinedMessage gameListPlayerJoinedMessage = 16;</code>
     * @return The gameListPlayerJoinedMessage.
     */
    de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage getGameListPlayerJoinedMessage();
    /**
     * <code>optional .GameListPlayerJoinedMessage gameListPlayerJoinedMessage = 16;</code>
     */
    de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessageOrBuilder getGameListPlayerJoinedMessageOrBuilder();

    /**
     * <code>optional .GameListPlayerLeftMessage gameListPlayerLeftMessage = 17;</code>
     * @return Whether the gameListPlayerLeftMessage field is set.
     */
    boolean hasGameListPlayerLeftMessage();
    /**
     * <code>optional .GameListPlayerLeftMessage gameListPlayerLeftMessage = 17;</code>
     * @return The gameListPlayerLeftMessage.
     */
    de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage getGameListPlayerLeftMessage();
    /**
     * <code>optional .GameListPlayerLeftMessage gameListPlayerLeftMessage = 17;</code>
     */
    de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessageOrBuilder getGameListPlayerLeftMessageOrBuilder();

    /**
     * <code>optional .GameListAdminChangedMessage gameListAdminChangedMessage = 18;</code>
     * @return Whether the gameListAdminChangedMessage field is set.
     */
    boolean hasGameListAdminChangedMessage();
    /**
     * <code>optional .GameListAdminChangedMessage gameListAdminChangedMessage = 18;</code>
     * @return The gameListAdminChangedMessage.
     */
    de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage getGameListAdminChangedMessage();
    /**
     * <code>optional .GameListAdminChangedMessage gameListAdminChangedMessage = 18;</code>
     */
    de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessageOrBuilder getGameListAdminChangedMessageOrBuilder();

    /**
     * <code>optional .PlayerInfoRequestMessage playerInfoRequestMessage = 19;</code>
     * @return Whether the playerInfoRequestMessage field is set.
     */
    boolean hasPlayerInfoRequestMessage();
    /**
     * <code>optional .PlayerInfoRequestMessage playerInfoRequestMessage = 19;</code>
     * @return The playerInfoRequestMessage.
     */
    de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage getPlayerInfoRequestMessage();
    /**
     * <code>optional .PlayerInfoRequestMessage playerInfoRequestMessage = 19;</code>
     */
    de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessageOrBuilder getPlayerInfoRequestMessageOrBuilder();

    /**
     * <code>optional .PlayerInfoReplyMessage playerInfoReplyMessage = 20;</code>
     * @return Whether the playerInfoReplyMessage field is set.
     */
    boolean hasPlayerInfoReplyMessage();
    /**
     * <code>optional .PlayerInfoReplyMessage playerInfoReplyMessage = 20;</code>
     * @return The playerInfoReplyMessage.
     */
    de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage getPlayerInfoReplyMessage();
    /**
     * <code>optional .PlayerInfoReplyMessage playerInfoReplyMessage = 20;</code>
     */
    de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessageOrBuilder getPlayerInfoReplyMessageOrBuilder();

    /**
     * <code>optional .SubscriptionRequestMessage subscriptionRequestMessage = 21;</code>
     * @return Whether the subscriptionRequestMessage field is set.
     */
    boolean hasSubscriptionRequestMessage();
    /**
     * <code>optional .SubscriptionRequestMessage subscriptionRequestMessage = 21;</code>
     * @return The subscriptionRequestMessage.
     */
    de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage getSubscriptionRequestMessage();
    /**
     * <code>optional .SubscriptionRequestMessage subscriptionRequestMessage = 21;</code>
     */
    de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessageOrBuilder getSubscriptionRequestMessageOrBuilder();

    /**
     * <code>optional .JoinExistingGameMessage joinExistingGameMessage = 22;</code>
     * @return Whether the joinExistingGameMessage field is set.
     */
    boolean hasJoinExistingGameMessage();
    /**
     * <code>optional .JoinExistingGameMessage joinExistingGameMessage = 22;</code>
     * @return The joinExistingGameMessage.
     */
    de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage getJoinExistingGameMessage();
    /**
     * <code>optional .JoinExistingGameMessage joinExistingGameMessage = 22;</code>
     */
    de.pokerth.protocol.ProtoBuf.JoinExistingGameMessageOrBuilder getJoinExistingGameMessageOrBuilder();

    /**
     * <code>optional .JoinNewGameMessage joinNewGameMessage = 23;</code>
     * @return Whether the joinNewGameMessage field is set.
     */
    boolean hasJoinNewGameMessage();
    /**
     * <code>optional .JoinNewGameMessage joinNewGameMessage = 23;</code>
     * @return The joinNewGameMessage.
     */
    de.pokerth.protocol.ProtoBuf.JoinNewGameMessage getJoinNewGameMessage();
    /**
     * <code>optional .JoinNewGameMessage joinNewGameMessage = 23;</code>
     */
    de.pokerth.protocol.ProtoBuf.JoinNewGameMessageOrBuilder getJoinNewGameMessageOrBuilder();

    /**
     * <code>optional .RejoinExistingGameMessage rejoinExistingGameMessage = 24;</code>
     * @return Whether the rejoinExistingGameMessage field is set.
     */
    boolean hasRejoinExistingGameMessage();
    /**
     * <code>optional .RejoinExistingGameMessage rejoinExistingGameMessage = 24;</code>
     * @return The rejoinExistingGameMessage.
     */
    de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage getRejoinExistingGameMessage();
    /**
     * <code>optional .RejoinExistingGameMessage rejoinExistingGameMessage = 24;</code>
     */
    de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessageOrBuilder getRejoinExistingGameMessageOrBuilder();

    /**
     * <code>optional .JoinGameAckMessage joinGameAckMessage = 25;</code>
     * @return Whether the joinGameAckMessage field is set.
     */
    boolean hasJoinGameAckMessage();
    /**
     * <code>optional .JoinGameAckMessage joinGameAckMessage = 25;</code>
     * @return The joinGameAckMessage.
     */
    de.pokerth.protocol.ProtoBuf.JoinGameAckMessage getJoinGameAckMessage();
    /**
     * <code>optional .JoinGameAckMessage joinGameAckMessage = 25;</code>
     */
    de.pokerth.protocol.ProtoBuf.JoinGameAckMessageOrBuilder getJoinGameAckMessageOrBuilder();

    /**
     * <code>optional .JoinGameFailedMessage joinGameFailedMessage = 26;</code>
     * @return Whether the joinGameFailedMessage field is set.
     */
    boolean hasJoinGameFailedMessage();
    /**
     * <code>optional .JoinGameFailedMessage joinGameFailedMessage = 26;</code>
     * @return The joinGameFailedMessage.
     */
    de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage getJoinGameFailedMessage();
    /**
     * <code>optional .JoinGameFailedMessage joinGameFailedMessage = 26;</code>
     */
    de.pokerth.protocol.ProtoBuf.JoinGameFailedMessageOrBuilder getJoinGameFailedMessageOrBuilder();

    /**
     * <code>optional .GamePlayerJoinedMessage gamePlayerJoinedMessage = 27;</code>
     * @return Whether the gamePlayerJoinedMessage field is set.
     */
    boolean hasGamePlayerJoinedMessage();
    /**
     * <code>optional .GamePlayerJoinedMessage gamePlayerJoinedMessage = 27;</code>
     * @return The gamePlayerJoinedMessage.
     */
    de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage getGamePlayerJoinedMessage();
    /**
     * <code>optional .GamePlayerJoinedMessage gamePlayerJoinedMessage = 27;</code>
     */
    de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessageOrBuilder getGamePlayerJoinedMessageOrBuilder();

    /**
     * <code>optional .GamePlayerLeftMessage gamePlayerLeftMessage = 28;</code>
     * @return Whether the gamePlayerLeftMessage field is set.
     */
    boolean hasGamePlayerLeftMessage();
    /**
     * <code>optional .GamePlayerLeftMessage gamePlayerLeftMessage = 28;</code>
     * @return The gamePlayerLeftMessage.
     */
    de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage getGamePlayerLeftMessage();
    /**
     * <code>optional .GamePlayerLeftMessage gamePlayerLeftMessage = 28;</code>
     */
    de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessageOrBuilder getGamePlayerLeftMessageOrBuilder();

    /**
     * <code>optional .GameAdminChangedMessage gameAdminChangedMessage = 29;</code>
     * @return Whether the gameAdminChangedMessage field is set.
     */
    boolean hasGameAdminChangedMessage();
    /**
     * <code>optional .GameAdminChangedMessage gameAdminChangedMessage = 29;</code>
     * @return The gameAdminChangedMessage.
     */
    de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage getGameAdminChangedMessage();
    /**
     * <code>optional .GameAdminChangedMessage gameAdminChangedMessage = 29;</code>
     */
    de.pokerth.protocol.ProtoBuf.GameAdminChangedMessageOrBuilder getGameAdminChangedMessageOrBuilder();

    /**
     * <code>optional .RemovedFromGameMessage removedFromGameMessage = 30;</code>
     * @return Whether the removedFromGameMessage field is set.
     */
    boolean hasRemovedFromGameMessage();
    /**
     * <code>optional .RemovedFromGameMessage removedFromGameMessage = 30;</code>
     * @return The removedFromGameMessage.
     */
    de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage getRemovedFromGameMessage();
    /**
     * <code>optional .RemovedFromGameMessage removedFromGameMessage = 30;</code>
     */
    de.pokerth.protocol.ProtoBuf.RemovedFromGameMessageOrBuilder getRemovedFromGameMessageOrBuilder();

    /**
     * <code>optional .KickPlayerRequestMessage kickPlayerRequestMessage = 31;</code>
     * @return Whether the kickPlayerRequestMessage field is set.
     */
    boolean hasKickPlayerRequestMessage();
    /**
     * <code>optional .KickPlayerRequestMessage kickPlayerRequestMessage = 31;</code>
     * @return The kickPlayerRequestMessage.
     */
    de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage getKickPlayerRequestMessage();
    /**
     * <code>optional .KickPlayerRequestMessage kickPlayerRequestMessage = 31;</code>
     */
    de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessageOrBuilder getKickPlayerRequestMessageOrBuilder();

    /**
     * <code>optional .LeaveGameRequestMessage leaveGameRequestMessage = 32;</code>
     * @return Whether the leaveGameRequestMessage field is set.
     */
    boolean hasLeaveGameRequestMessage();
    /**
     * <code>optional .LeaveGameRequestMessage leaveGameRequestMessage = 32;</code>
     * @return The leaveGameRequestMessage.
     */
    de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage getLeaveGameRequestMessage();
    /**
     * <code>optional .LeaveGameRequestMessage leaveGameRequestMessage = 32;</code>
     */
    de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessageOrBuilder getLeaveGameRequestMessageOrBuilder();

    /**
     * <code>optional .InvitePlayerToGameMessage invitePlayerToGameMessage = 33;</code>
     * @return Whether the invitePlayerToGameMessage field is set.
     */
    boolean hasInvitePlayerToGameMessage();
    /**
     * <code>optional .InvitePlayerToGameMessage invitePlayerToGameMessage = 33;</code>
     * @return The invitePlayerToGameMessage.
     */
    de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage getInvitePlayerToGameMessage();
    /**
     * <code>optional .InvitePlayerToGameMessage invitePlayerToGameMessage = 33;</code>
     */
    de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessageOrBuilder getInvitePlayerToGameMessageOrBuilder();

    /**
     * <code>optional .InviteNotifyMessage inviteNotifyMessage = 34;</code>
     * @return Whether the inviteNotifyMessage field is set.
     */
    boolean hasInviteNotifyMessage();
    /**
     * <code>optional .InviteNotifyMessage inviteNotifyMessage = 34;</code>
     * @return The inviteNotifyMessage.
     */
    de.pokerth.protocol.ProtoBuf.InviteNotifyMessage getInviteNotifyMessage();
    /**
     * <code>optional .InviteNotifyMessage inviteNotifyMessage = 34;</code>
     */
    de.pokerth.protocol.ProtoBuf.InviteNotifyMessageOrBuilder getInviteNotifyMessageOrBuilder();

    /**
     * <code>optional .RejectGameInvitationMessage rejectGameInvitationMessage = 35;</code>
     * @return Whether the rejectGameInvitationMessage field is set.
     */
    boolean hasRejectGameInvitationMessage();
    /**
     * <code>optional .RejectGameInvitationMessage rejectGameInvitationMessage = 35;</code>
     * @return The rejectGameInvitationMessage.
     */
    de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage getRejectGameInvitationMessage();
    /**
     * <code>optional .RejectGameInvitationMessage rejectGameInvitationMessage = 35;</code>
     */
    de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessageOrBuilder getRejectGameInvitationMessageOrBuilder();

    /**
     * <code>optional .RejectInvNotifyMessage rejectInvNotifyMessage = 36;</code>
     * @return Whether the rejectInvNotifyMessage field is set.
     */
    boolean hasRejectInvNotifyMessage();
    /**
     * <code>optional .RejectInvNotifyMessage rejectInvNotifyMessage = 36;</code>
     * @return The rejectInvNotifyMessage.
     */
    de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage getRejectInvNotifyMessage();
    /**
     * <code>optional .RejectInvNotifyMessage rejectInvNotifyMessage = 36;</code>
     */
    de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessageOrBuilder getRejectInvNotifyMessageOrBuilder();

    /**
     * <code>optional .StartEventMessage startEventMessage = 37;</code>
     * @return Whether the startEventMessage field is set.
     */
    boolean hasStartEventMessage();
    /**
     * <code>optional .StartEventMessage startEventMessage = 37;</code>
     * @return The startEventMessage.
     */
    de.pokerth.protocol.ProtoBuf.StartEventMessage getStartEventMessage();
    /**
     * <code>optional .StartEventMessage startEventMessage = 37;</code>
     */
    de.pokerth.protocol.ProtoBuf.StartEventMessageOrBuilder getStartEventMessageOrBuilder();

    /**
     * <code>optional .StartEventAckMessage startEventAckMessage = 38;</code>
     * @return Whether the startEventAckMessage field is set.
     */
    boolean hasStartEventAckMessage();
    /**
     * <code>optional .StartEventAckMessage startEventAckMessage = 38;</code>
     * @return The startEventAckMessage.
     */
    de.pokerth.protocol.ProtoBuf.StartEventAckMessage getStartEventAckMessage();
    /**
     * <code>optional .StartEventAckMessage startEventAckMessage = 38;</code>
     */
    de.pokerth.protocol.ProtoBuf.StartEventAckMessageOrBuilder getStartEventAckMessageOrBuilder();

    /**
     * <code>optional .GameStartInitialMessage gameStartInitialMessage = 39;</code>
     * @return Whether the gameStartInitialMessage field is set.
     */
    boolean hasGameStartInitialMessage();
    /**
     * <code>optional .GameStartInitialMessage gameStartInitialMessage = 39;</code>
     * @return The gameStartInitialMessage.
     */
    de.pokerth.protocol.ProtoBuf.GameStartInitialMessage getGameStartInitialMessage();
    /**
     * <code>optional .GameStartInitialMessage gameStartInitialMessage = 39;</code>
     */
    de.pokerth.protocol.ProtoBuf.GameStartInitialMessageOrBuilder getGameStartInitialMessageOrBuilder();

    /**
     * <code>optional .GameStartRejoinMessage gameStartRejoinMessage = 40;</code>
     * @return Whether the gameStartRejoinMessage field is set.
     */
    boolean hasGameStartRejoinMessage();
    /**
     * <code>optional .GameStartRejoinMessage gameStartRejoinMessage = 40;</code>
     * @return The gameStartRejoinMessage.
     */
    de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage getGameStartRejoinMessage();
    /**
     * <code>optional .GameStartRejoinMessage gameStartRejoinMessage = 40;</code>
     */
    de.pokerth.protocol.ProtoBuf.GameStartRejoinMessageOrBuilder getGameStartRejoinMessageOrBuilder();

    /**
     * <code>optional .HandStartMessage handStartMessage = 41;</code>
     * @return Whether the handStartMessage field is set.
     */
    boolean hasHandStartMessage();
    /**
     * <code>optional .HandStartMessage handStartMessage = 41;</code>
     * @return The handStartMessage.
     */
    de.pokerth.protocol.ProtoBuf.HandStartMessage getHandStartMessage();
    /**
     * <code>optional .HandStartMessage handStartMessage = 41;</code>
     */
    de.pokerth.protocol.ProtoBuf.HandStartMessageOrBuilder getHandStartMessageOrBuilder();

    /**
     * <code>optional .PlayersTurnMessage playersTurnMessage = 42;</code>
     * @return Whether the playersTurnMessage field is set.
     */
    boolean hasPlayersTurnMessage();
    /**
     * <code>optional .PlayersTurnMessage playersTurnMessage = 42;</code>
     * @return The playersTurnMessage.
     */
    de.pokerth.protocol.ProtoBuf.PlayersTurnMessage getPlayersTurnMessage();
    /**
     * <code>optional .PlayersTurnMessage playersTurnMessage = 42;</code>
     */
    de.pokerth.protocol.ProtoBuf.PlayersTurnMessageOrBuilder getPlayersTurnMessageOrBuilder();

    /**
     * <code>optional .MyActionRequestMessage myActionRequestMessage = 43;</code>
     * @return Whether the myActionRequestMessage field is set.
     */
    boolean hasMyActionRequestMessage();
    /**
     * <code>optional .MyActionRequestMessage myActionRequestMessage = 43;</code>
     * @return The myActionRequestMessage.
     */
    de.pokerth.protocol.ProtoBuf.MyActionRequestMessage getMyActionRequestMessage();
    /**
     * <code>optional .MyActionRequestMessage myActionRequestMessage = 43;</code>
     */
    de.pokerth.protocol.ProtoBuf.MyActionRequestMessageOrBuilder getMyActionRequestMessageOrBuilder();

    /**
     * <code>optional .YourActionRejectedMessage yourActionRejectedMessage = 44;</code>
     * @return Whether the yourActionRejectedMessage field is set.
     */
    boolean hasYourActionRejectedMessage();
    /**
     * <code>optional .YourActionRejectedMessage yourActionRejectedMessage = 44;</code>
     * @return The yourActionRejectedMessage.
     */
    de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage getYourActionRejectedMessage();
    /**
     * <code>optional .YourActionRejectedMessage yourActionRejectedMessage = 44;</code>
     */
    de.pokerth.protocol.ProtoBuf.YourActionRejectedMessageOrBuilder getYourActionRejectedMessageOrBuilder();

    /**
     * <code>optional .PlayersActionDoneMessage playersActionDoneMessage = 45;</code>
     * @return Whether the playersActionDoneMessage field is set.
     */
    boolean hasPlayersActionDoneMessage();
    /**
     * <code>optional .PlayersActionDoneMessage playersActionDoneMessage = 45;</code>
     * @return The playersActionDoneMessage.
     */
    de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage getPlayersActionDoneMessage();
    /**
     * <code>optional .PlayersActionDoneMessage playersActionDoneMessage = 45;</code>
     */
    de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessageOrBuilder getPlayersActionDoneMessageOrBuilder();

    /**
     * <code>optional .DealFlopCardsMessage dealFlopCardsMessage = 46;</code>
     * @return Whether the dealFlopCardsMessage field is set.
     */
    boolean hasDealFlopCardsMessage();
    /**
     * <code>optional .DealFlopCardsMessage dealFlopCardsMessage = 46;</code>
     * @return The dealFlopCardsMessage.
     */
    de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage getDealFlopCardsMessage();
    /**
     * <code>optional .DealFlopCardsMessage dealFlopCardsMessage = 46;</code>
     */
    de.pokerth.protocol.ProtoBuf.DealFlopCardsMessageOrBuilder getDealFlopCardsMessageOrBuilder();

    /**
     * <code>optional .DealTurnCardMessage dealTurnCardMessage = 47;</code>
     * @return Whether the dealTurnCardMessage field is set.
     */
    boolean hasDealTurnCardMessage();
    /**
     * <code>optional .DealTurnCardMessage dealTurnCardMessage = 47;</code>
     * @return The dealTurnCardMessage.
     */
    de.pokerth.protocol.ProtoBuf.DealTurnCardMessage getDealTurnCardMessage();
    /**
     * <code>optional .DealTurnCardMessage dealTurnCardMessage = 47;</code>
     */
    de.pokerth.protocol.ProtoBuf.DealTurnCardMessageOrBuilder getDealTurnCardMessageOrBuilder();

    /**
     * <code>optional .DealRiverCardMessage dealRiverCardMessage = 48;</code>
     * @return Whether the dealRiverCardMessage field is set.
     */
    boolean hasDealRiverCardMessage();
    /**
     * <code>optional .DealRiverCardMessage dealRiverCardMessage = 48;</code>
     * @return The dealRiverCardMessage.
     */
    de.pokerth.protocol.ProtoBuf.DealRiverCardMessage getDealRiverCardMessage();
    /**
     * <code>optional .DealRiverCardMessage dealRiverCardMessage = 48;</code>
     */
    de.pokerth.protocol.ProtoBuf.DealRiverCardMessageOrBuilder getDealRiverCardMessageOrBuilder();

    /**
     * <code>optional .AllInShowCardsMessage allInShowCardsMessage = 49;</code>
     * @return Whether the allInShowCardsMessage field is set.
     */
    boolean hasAllInShowCardsMessage();
    /**
     * <code>optional .AllInShowCardsMessage allInShowCardsMessage = 49;</code>
     * @return The allInShowCardsMessage.
     */
    de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage getAllInShowCardsMessage();
    /**
     * <code>optional .AllInShowCardsMessage allInShowCardsMessage = 49;</code>
     */
    de.pokerth.protocol.ProtoBuf.AllInShowCardsMessageOrBuilder getAllInShowCardsMessageOrBuilder();

    /**
     * <code>optional .EndOfHandShowCardsMessage endOfHandShowCardsMessage = 50;</code>
     * @return Whether the endOfHandShowCardsMessage field is set.
     */
    boolean hasEndOfHandShowCardsMessage();
    /**
     * <code>optional .EndOfHandShowCardsMessage endOfHandShowCardsMessage = 50;</code>
     * @return The endOfHandShowCardsMessage.
     */
    de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage getEndOfHandShowCardsMessage();
    /**
     * <code>optional .EndOfHandShowCardsMessage endOfHandShowCardsMessage = 50;</code>
     */
    de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessageOrBuilder getEndOfHandShowCardsMessageOrBuilder();

    /**
     * <code>optional .EndOfHandHideCardsMessage endOfHandHideCardsMessage = 51;</code>
     * @return Whether the endOfHandHideCardsMessage field is set.
     */
    boolean hasEndOfHandHideCardsMessage();
    /**
     * <code>optional .EndOfHandHideCardsMessage endOfHandHideCardsMessage = 51;</code>
     * @return The endOfHandHideCardsMessage.
     */
    de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage getEndOfHandHideCardsMessage();
    /**
     * <code>optional .EndOfHandHideCardsMessage endOfHandHideCardsMessage = 51;</code>
     */
    de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessageOrBuilder getEndOfHandHideCardsMessageOrBuilder();

    /**
     * <code>optional .ShowMyCardsRequestMessage showMyCardsRequestMessage = 52;</code>
     * @return Whether the showMyCardsRequestMessage field is set.
     */
    boolean hasShowMyCardsRequestMessage();
    /**
     * <code>optional .ShowMyCardsRequestMessage showMyCardsRequestMessage = 52;</code>
     * @return The showMyCardsRequestMessage.
     */
    de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage getShowMyCardsRequestMessage();
    /**
     * <code>optional .ShowMyCardsRequestMessage showMyCardsRequestMessage = 52;</code>
     */
    de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessageOrBuilder getShowMyCardsRequestMessageOrBuilder();

    /**
     * <code>optional .AfterHandShowCardsMessage afterHandShowCardsMessage = 53;</code>
     * @return Whether the afterHandShowCardsMessage field is set.
     */
    boolean hasAfterHandShowCardsMessage();
    /**
     * <code>optional .AfterHandShowCardsMessage afterHandShowCardsMessage = 53;</code>
     * @return The afterHandShowCardsMessage.
     */
    de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage getAfterHandShowCardsMessage();
    /**
     * <code>optional .AfterHandShowCardsMessage afterHandShowCardsMessage = 53;</code>
     */
    de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessageOrBuilder getAfterHandShowCardsMessageOrBuilder();

    /**
     * <code>optional .EndOfGameMessage endOfGameMessage = 54;</code>
     * @return Whether the endOfGameMessage field is set.
     */
    boolean hasEndOfGameMessage();
    /**
     * <code>optional .EndOfGameMessage endOfGameMessage = 54;</code>
     * @return The endOfGameMessage.
     */
    de.pokerth.protocol.ProtoBuf.EndOfGameMessage getEndOfGameMessage();
    /**
     * <code>optional .EndOfGameMessage endOfGameMessage = 54;</code>
     */
    de.pokerth.protocol.ProtoBuf.EndOfGameMessageOrBuilder getEndOfGameMessageOrBuilder();

    /**
     * <code>optional .PlayerIdChangedMessage playerIdChangedMessage = 55;</code>
     * @return Whether the playerIdChangedMessage field is set.
     */
    boolean hasPlayerIdChangedMessage();
    /**
     * <code>optional .PlayerIdChangedMessage playerIdChangedMessage = 55;</code>
     * @return The playerIdChangedMessage.
     */
    de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage getPlayerIdChangedMessage();
    /**
     * <code>optional .PlayerIdChangedMessage playerIdChangedMessage = 55;</code>
     */
    de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessageOrBuilder getPlayerIdChangedMessageOrBuilder();

    /**
     * <code>optional .AskKickPlayerMessage askKickPlayerMessage = 56;</code>
     * @return Whether the askKickPlayerMessage field is set.
     */
    boolean hasAskKickPlayerMessage();
    /**
     * <code>optional .AskKickPlayerMessage askKickPlayerMessage = 56;</code>
     * @return The askKickPlayerMessage.
     */
    de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage getAskKickPlayerMessage();
    /**
     * <code>optional .AskKickPlayerMessage askKickPlayerMessage = 56;</code>
     */
    de.pokerth.protocol.ProtoBuf.AskKickPlayerMessageOrBuilder getAskKickPlayerMessageOrBuilder();

    /**
     * <code>optional .AskKickDeniedMessage askKickDeniedMessage = 57;</code>
     * @return Whether the askKickDeniedMessage field is set.
     */
    boolean hasAskKickDeniedMessage();
    /**
     * <code>optional .AskKickDeniedMessage askKickDeniedMessage = 57;</code>
     * @return The askKickDeniedMessage.
     */
    de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage getAskKickDeniedMessage();
    /**
     * <code>optional .AskKickDeniedMessage askKickDeniedMessage = 57;</code>
     */
    de.pokerth.protocol.ProtoBuf.AskKickDeniedMessageOrBuilder getAskKickDeniedMessageOrBuilder();

    /**
     * <code>optional .StartKickPetitionMessage startKickPetitionMessage = 58;</code>
     * @return Whether the startKickPetitionMessage field is set.
     */
    boolean hasStartKickPetitionMessage();
    /**
     * <code>optional .StartKickPetitionMessage startKickPetitionMessage = 58;</code>
     * @return The startKickPetitionMessage.
     */
    de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage getStartKickPetitionMessage();
    /**
     * <code>optional .StartKickPetitionMessage startKickPetitionMessage = 58;</code>
     */
    de.pokerth.protocol.ProtoBuf.StartKickPetitionMessageOrBuilder getStartKickPetitionMessageOrBuilder();

    /**
     * <code>optional .VoteKickRequestMessage voteKickRequestMessage = 59;</code>
     * @return Whether the voteKickRequestMessage field is set.
     */
    boolean hasVoteKickRequestMessage();
    /**
     * <code>optional .VoteKickRequestMessage voteKickRequestMessage = 59;</code>
     * @return The voteKickRequestMessage.
     */
    de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage getVoteKickRequestMessage();
    /**
     * <code>optional .VoteKickRequestMessage voteKickRequestMessage = 59;</code>
     */
    de.pokerth.protocol.ProtoBuf.VoteKickRequestMessageOrBuilder getVoteKickRequestMessageOrBuilder();

    /**
     * <code>optional .VoteKickReplyMessage voteKickReplyMessage = 60;</code>
     * @return Whether the voteKickReplyMessage field is set.
     */
    boolean hasVoteKickReplyMessage();
    /**
     * <code>optional .VoteKickReplyMessage voteKickReplyMessage = 60;</code>
     * @return The voteKickReplyMessage.
     */
    de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage getVoteKickReplyMessage();
    /**
     * <code>optional .VoteKickReplyMessage voteKickReplyMessage = 60;</code>
     */
    de.pokerth.protocol.ProtoBuf.VoteKickReplyMessageOrBuilder getVoteKickReplyMessageOrBuilder();

    /**
     * <code>optional .KickPetitionUpdateMessage kickPetitionUpdateMessage = 61;</code>
     * @return Whether the kickPetitionUpdateMessage field is set.
     */
    boolean hasKickPetitionUpdateMessage();
    /**
     * <code>optional .KickPetitionUpdateMessage kickPetitionUpdateMessage = 61;</code>
     * @return The kickPetitionUpdateMessage.
     */
    de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage getKickPetitionUpdateMessage();
    /**
     * <code>optional .KickPetitionUpdateMessage kickPetitionUpdateMessage = 61;</code>
     */
    de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessageOrBuilder getKickPetitionUpdateMessageOrBuilder();

    /**
     * <code>optional .EndKickPetitionMessage endKickPetitionMessage = 62;</code>
     * @return Whether the endKickPetitionMessage field is set.
     */
    boolean hasEndKickPetitionMessage();
    /**
     * <code>optional .EndKickPetitionMessage endKickPetitionMessage = 62;</code>
     * @return The endKickPetitionMessage.
     */
    de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage getEndKickPetitionMessage();
    /**
     * <code>optional .EndKickPetitionMessage endKickPetitionMessage = 62;</code>
     */
    de.pokerth.protocol.ProtoBuf.EndKickPetitionMessageOrBuilder getEndKickPetitionMessageOrBuilder();

    /**
     * <code>optional .StatisticsMessage statisticsMessage = 63;</code>
     * @return Whether the statisticsMessage field is set.
     */
    boolean hasStatisticsMessage();
    /**
     * <code>optional .StatisticsMessage statisticsMessage = 63;</code>
     * @return The statisticsMessage.
     */
    de.pokerth.protocol.ProtoBuf.StatisticsMessage getStatisticsMessage();
    /**
     * <code>optional .StatisticsMessage statisticsMessage = 63;</code>
     */
    de.pokerth.protocol.ProtoBuf.StatisticsMessageOrBuilder getStatisticsMessageOrBuilder();

    /**
     * <code>optional .ChatRequestMessage chatRequestMessage = 64;</code>
     * @return Whether the chatRequestMessage field is set.
     */
    boolean hasChatRequestMessage();
    /**
     * <code>optional .ChatRequestMessage chatRequestMessage = 64;</code>
     * @return The chatRequestMessage.
     */
    de.pokerth.protocol.ProtoBuf.ChatRequestMessage getChatRequestMessage();
    /**
     * <code>optional .ChatRequestMessage chatRequestMessage = 64;</code>
     */
    de.pokerth.protocol.ProtoBuf.ChatRequestMessageOrBuilder getChatRequestMessageOrBuilder();

    /**
     * <code>optional .ChatMessage chatMessage = 65;</code>
     * @return Whether the chatMessage field is set.
     */
    boolean hasChatMessage();
    /**
     * <code>optional .ChatMessage chatMessage = 65;</code>
     * @return The chatMessage.
     */
    de.pokerth.protocol.ProtoBuf.ChatMessage getChatMessage();
    /**
     * <code>optional .ChatMessage chatMessage = 65;</code>
     */
    de.pokerth.protocol.ProtoBuf.ChatMessageOrBuilder getChatMessageOrBuilder();

    /**
     * <code>optional .ChatRejectMessage chatRejectMessage = 66;</code>
     * @return Whether the chatRejectMessage field is set.
     */
    boolean hasChatRejectMessage();
    /**
     * <code>optional .ChatRejectMessage chatRejectMessage = 66;</code>
     * @return The chatRejectMessage.
     */
    de.pokerth.protocol.ProtoBuf.ChatRejectMessage getChatRejectMessage();
    /**
     * <code>optional .ChatRejectMessage chatRejectMessage = 66;</code>
     */
    de.pokerth.protocol.ProtoBuf.ChatRejectMessageOrBuilder getChatRejectMessageOrBuilder();

    /**
     * <code>optional .DialogMessage dialogMessage = 67;</code>
     * @return Whether the dialogMessage field is set.
     */
    boolean hasDialogMessage();
    /**
     * <code>optional .DialogMessage dialogMessage = 67;</code>
     * @return The dialogMessage.
     */
    de.pokerth.protocol.ProtoBuf.DialogMessage getDialogMessage();
    /**
     * <code>optional .DialogMessage dialogMessage = 67;</code>
     */
    de.pokerth.protocol.ProtoBuf.DialogMessageOrBuilder getDialogMessageOrBuilder();

    /**
     * <code>optional .TimeoutWarningMessage timeoutWarningMessage = 68;</code>
     * @return Whether the timeoutWarningMessage field is set.
     */
    boolean hasTimeoutWarningMessage();
    /**
     * <code>optional .TimeoutWarningMessage timeoutWarningMessage = 68;</code>
     * @return The timeoutWarningMessage.
     */
    de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage getTimeoutWarningMessage();
    /**
     * <code>optional .TimeoutWarningMessage timeoutWarningMessage = 68;</code>
     */
    de.pokerth.protocol.ProtoBuf.TimeoutWarningMessageOrBuilder getTimeoutWarningMessageOrBuilder();

    /**
     * <code>optional .ResetTimeoutMessage resetTimeoutMessage = 69;</code>
     * @return Whether the resetTimeoutMessage field is set.
     */
    boolean hasResetTimeoutMessage();
    /**
     * <code>optional .ResetTimeoutMessage resetTimeoutMessage = 69;</code>
     * @return The resetTimeoutMessage.
     */
    de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage getResetTimeoutMessage();
    /**
     * <code>optional .ResetTimeoutMessage resetTimeoutMessage = 69;</code>
     */
    de.pokerth.protocol.ProtoBuf.ResetTimeoutMessageOrBuilder getResetTimeoutMessageOrBuilder();

    /**
     * <code>optional .ReportAvatarMessage reportAvatarMessage = 70;</code>
     * @return Whether the reportAvatarMessage field is set.
     */
    boolean hasReportAvatarMessage();
    /**
     * <code>optional .ReportAvatarMessage reportAvatarMessage = 70;</code>
     * @return The reportAvatarMessage.
     */
    de.pokerth.protocol.ProtoBuf.ReportAvatarMessage getReportAvatarMessage();
    /**
     * <code>optional .ReportAvatarMessage reportAvatarMessage = 70;</code>
     */
    de.pokerth.protocol.ProtoBuf.ReportAvatarMessageOrBuilder getReportAvatarMessageOrBuilder();

    /**
     * <code>optional .ReportAvatarAckMessage reportAvatarAckMessage = 71;</code>
     * @return Whether the reportAvatarAckMessage field is set.
     */
    boolean hasReportAvatarAckMessage();
    /**
     * <code>optional .ReportAvatarAckMessage reportAvatarAckMessage = 71;</code>
     * @return The reportAvatarAckMessage.
     */
    de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage getReportAvatarAckMessage();
    /**
     * <code>optional .ReportAvatarAckMessage reportAvatarAckMessage = 71;</code>
     */
    de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessageOrBuilder getReportAvatarAckMessageOrBuilder();

    /**
     * <code>optional .ReportGameMessage reportGameMessage = 72;</code>
     * @return Whether the reportGameMessage field is set.
     */
    boolean hasReportGameMessage();
    /**
     * <code>optional .ReportGameMessage reportGameMessage = 72;</code>
     * @return The reportGameMessage.
     */
    de.pokerth.protocol.ProtoBuf.ReportGameMessage getReportGameMessage();
    /**
     * <code>optional .ReportGameMessage reportGameMessage = 72;</code>
     */
    de.pokerth.protocol.ProtoBuf.ReportGameMessageOrBuilder getReportGameMessageOrBuilder();

    /**
     * <code>optional .ReportGameAckMessage reportGameAckMessage = 73;</code>
     * @return Whether the reportGameAckMessage field is set.
     */
    boolean hasReportGameAckMessage();
    /**
     * <code>optional .ReportGameAckMessage reportGameAckMessage = 73;</code>
     * @return The reportGameAckMessage.
     */
    de.pokerth.protocol.ProtoBuf.ReportGameAckMessage getReportGameAckMessage();
    /**
     * <code>optional .ReportGameAckMessage reportGameAckMessage = 73;</code>
     */
    de.pokerth.protocol.ProtoBuf.ReportGameAckMessageOrBuilder getReportGameAckMessageOrBuilder();

    /**
     * <code>optional .ErrorMessage errorMessage = 74;</code>
     * @return Whether the errorMessage field is set.
     */
    boolean hasErrorMessage();
    /**
     * <code>optional .ErrorMessage errorMessage = 74;</code>
     * @return The errorMessage.
     */
    de.pokerth.protocol.ProtoBuf.ErrorMessage getErrorMessage();
    /**
     * <code>optional .ErrorMessage errorMessage = 74;</code>
     */
    de.pokerth.protocol.ProtoBuf.ErrorMessageOrBuilder getErrorMessageOrBuilder();

    /**
     * <code>optional .AdminRemoveGameMessage adminRemoveGameMessage = 75;</code>
     * @return Whether the adminRemoveGameMessage field is set.
     */
    boolean hasAdminRemoveGameMessage();
    /**
     * <code>optional .AdminRemoveGameMessage adminRemoveGameMessage = 75;</code>
     * @return The adminRemoveGameMessage.
     */
    de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage getAdminRemoveGameMessage();
    /**
     * <code>optional .AdminRemoveGameMessage adminRemoveGameMessage = 75;</code>
     */
    de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessageOrBuilder getAdminRemoveGameMessageOrBuilder();

    /**
     * <code>optional .AdminRemoveGameAckMessage adminRemoveGameAckMessage = 76;</code>
     * @return Whether the adminRemoveGameAckMessage field is set.
     */
    boolean hasAdminRemoveGameAckMessage();
    /**
     * <code>optional .AdminRemoveGameAckMessage adminRemoveGameAckMessage = 76;</code>
     * @return The adminRemoveGameAckMessage.
     */
    de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage getAdminRemoveGameAckMessage();
    /**
     * <code>optional .AdminRemoveGameAckMessage adminRemoveGameAckMessage = 76;</code>
     */
    de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessageOrBuilder getAdminRemoveGameAckMessageOrBuilder();

    /**
     * <code>optional .AdminBanPlayerMessage adminBanPlayerMessage = 77;</code>
     * @return Whether the adminBanPlayerMessage field is set.
     */
    boolean hasAdminBanPlayerMessage();
    /**
     * <code>optional .AdminBanPlayerMessage adminBanPlayerMessage = 77;</code>
     * @return The adminBanPlayerMessage.
     */
    de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage getAdminBanPlayerMessage();
    /**
     * <code>optional .AdminBanPlayerMessage adminBanPlayerMessage = 77;</code>
     */
    de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessageOrBuilder getAdminBanPlayerMessageOrBuilder();

    /**
     * <code>optional .AdminBanPlayerAckMessage adminBanPlayerAckMessage = 78;</code>
     * @return Whether the adminBanPlayerAckMessage field is set.
     */
    boolean hasAdminBanPlayerAckMessage();
    /**
     * <code>optional .AdminBanPlayerAckMessage adminBanPlayerAckMessage = 78;</code>
     * @return The adminBanPlayerAckMessage.
     */
    de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage getAdminBanPlayerAckMessage();
    /**
     * <code>optional .AdminBanPlayerAckMessage adminBanPlayerAckMessage = 78;</code>
     */
    de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessageOrBuilder getAdminBanPlayerAckMessageOrBuilder();

    /**
     * <code>optional .GameListSpectatorJoinedMessage gameListSpectatorJoinedMessage = 79;</code>
     * @return Whether the gameListSpectatorJoinedMessage field is set.
     */
    boolean hasGameListSpectatorJoinedMessage();
    /**
     * <code>optional .GameListSpectatorJoinedMessage gameListSpectatorJoinedMessage = 79;</code>
     * @return The gameListSpectatorJoinedMessage.
     */
    de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage getGameListSpectatorJoinedMessage();
    /**
     * <code>optional .GameListSpectatorJoinedMessage gameListSpectatorJoinedMessage = 79;</code>
     */
    de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessageOrBuilder getGameListSpectatorJoinedMessageOrBuilder();

    /**
     * <code>optional .GameListSpectatorLeftMessage gameListSpectatorLeftMessage = 80;</code>
     * @return Whether the gameListSpectatorLeftMessage field is set.
     */
    boolean hasGameListSpectatorLeftMessage();
    /**
     * <code>optional .GameListSpectatorLeftMessage gameListSpectatorLeftMessage = 80;</code>
     * @return The gameListSpectatorLeftMessage.
     */
    de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage getGameListSpectatorLeftMessage();
    /**
     * <code>optional .GameListSpectatorLeftMessage gameListSpectatorLeftMessage = 80;</code>
     */
    de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessageOrBuilder getGameListSpectatorLeftMessageOrBuilder();

    /**
     * <code>optional .GameSpectatorJoinedMessage gameSpectatorJoinedMessage = 81;</code>
     * @return Whether the gameSpectatorJoinedMessage field is set.
     */
    boolean hasGameSpectatorJoinedMessage();
    /**
     * <code>optional .GameSpectatorJoinedMessage gameSpectatorJoinedMessage = 81;</code>
     * @return The gameSpectatorJoinedMessage.
     */
    de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage getGameSpectatorJoinedMessage();
    /**
     * <code>optional .GameSpectatorJoinedMessage gameSpectatorJoinedMessage = 81;</code>
     */
    de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessageOrBuilder getGameSpectatorJoinedMessageOrBuilder();

    /**
     * <code>optional .GameSpectatorLeftMessage gameSpectatorLeftMessage = 82;</code>
     * @return Whether the gameSpectatorLeftMessage field is set.
     */
    boolean hasGameSpectatorLeftMessage();
    /**
     * <code>optional .GameSpectatorLeftMessage gameSpectatorLeftMessage = 82;</code>
     * @return The gameSpectatorLeftMessage.
     */
    de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage getGameSpectatorLeftMessage();
    /**
     * <code>optional .GameSpectatorLeftMessage gameSpectatorLeftMessage = 82;</code>
     */
    de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessageOrBuilder getGameSpectatorLeftMessageOrBuilder();
  }
  /**
   * Protobuf type {@code PokerTHMessage}
   */
  public static final class PokerTHMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:PokerTHMessage)
      PokerTHMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PokerTHMessage.newBuilder() to construct.
    private PokerTHMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PokerTHMessage() {
      messageType_ = 1;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new PokerTHMessage();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return de.pokerth.protocol.ProtoBuf.internal_static_PokerTHMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return de.pokerth.protocol.ProtoBuf.internal_static_PokerTHMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              de.pokerth.protocol.ProtoBuf.PokerTHMessage.class, de.pokerth.protocol.ProtoBuf.PokerTHMessage.Builder.class);
    }

    /**
     * Protobuf enum {@code PokerTHMessage.PokerTHMessageType}
     */
    public enum PokerTHMessageType
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>Type_AnnounceMessage = 1;</code>
       */
      Type_AnnounceMessage(1),
      /**
       * <code>Type_InitMessage = 2;</code>
       */
      Type_InitMessage(2),
      /**
       * <code>Type_AuthServerChallengeMessage = 3;</code>
       */
      Type_AuthServerChallengeMessage(3),
      /**
       * <code>Type_AuthClientResponseMessage = 4;</code>
       */
      Type_AuthClientResponseMessage(4),
      /**
       * <code>Type_AuthServerVerificationMessage = 5;</code>
       */
      Type_AuthServerVerificationMessage(5),
      /**
       * <code>Type_InitAckMessage = 6;</code>
       */
      Type_InitAckMessage(6),
      /**
       * <code>Type_AvatarRequestMessage = 7;</code>
       */
      Type_AvatarRequestMessage(7),
      /**
       * <code>Type_AvatarHeaderMessage = 8;</code>
       */
      Type_AvatarHeaderMessage(8),
      /**
       * <code>Type_AvatarDataMessage = 9;</code>
       */
      Type_AvatarDataMessage(9),
      /**
       * <code>Type_AvatarEndMessage = 10;</code>
       */
      Type_AvatarEndMessage(10),
      /**
       * <code>Type_UnknownAvatarMessage = 11;</code>
       */
      Type_UnknownAvatarMessage(11),
      /**
       * <code>Type_PlayerListMessage = 12;</code>
       */
      Type_PlayerListMessage(12),
      /**
       * <code>Type_GameListNewMessage = 13;</code>
       */
      Type_GameListNewMessage(13),
      /**
       * <code>Type_GameListUpdateMessage = 14;</code>
       */
      Type_GameListUpdateMessage(14),
      /**
       * <code>Type_GameListPlayerJoinedMessage = 15;</code>
       */
      Type_GameListPlayerJoinedMessage(15),
      /**
       * <code>Type_GameListPlayerLeftMessage = 16;</code>
       */
      Type_GameListPlayerLeftMessage(16),
      /**
       * <code>Type_GameListAdminChangedMessage = 17;</code>
       */
      Type_GameListAdminChangedMessage(17),
      /**
       * <code>Type_PlayerInfoRequestMessage = 18;</code>
       */
      Type_PlayerInfoRequestMessage(18),
      /**
       * <code>Type_PlayerInfoReplyMessage = 19;</code>
       */
      Type_PlayerInfoReplyMessage(19),
      /**
       * <code>Type_SubscriptionRequestMessage = 20;</code>
       */
      Type_SubscriptionRequestMessage(20),
      /**
       * <code>Type_JoinExistingGameMessage = 21;</code>
       */
      Type_JoinExistingGameMessage(21),
      /**
       * <code>Type_JoinNewGameMessage = 22;</code>
       */
      Type_JoinNewGameMessage(22),
      /**
       * <code>Type_RejoinExistingGameMessage = 23;</code>
       */
      Type_RejoinExistingGameMessage(23),
      /**
       * <code>Type_JoinGameAckMessage = 24;</code>
       */
      Type_JoinGameAckMessage(24),
      /**
       * <code>Type_JoinGameFailedMessage = 25;</code>
       */
      Type_JoinGameFailedMessage(25),
      /**
       * <code>Type_GamePlayerJoinedMessage = 26;</code>
       */
      Type_GamePlayerJoinedMessage(26),
      /**
       * <code>Type_GamePlayerLeftMessage = 27;</code>
       */
      Type_GamePlayerLeftMessage(27),
      /**
       * <code>Type_GameAdminChangedMessage = 28;</code>
       */
      Type_GameAdminChangedMessage(28),
      /**
       * <code>Type_RemovedFromGameMessage = 29;</code>
       */
      Type_RemovedFromGameMessage(29),
      /**
       * <code>Type_KickPlayerRequestMessage = 30;</code>
       */
      Type_KickPlayerRequestMessage(30),
      /**
       * <code>Type_LeaveGameRequestMessage = 31;</code>
       */
      Type_LeaveGameRequestMessage(31),
      /**
       * <code>Type_InvitePlayerToGameMessage = 32;</code>
       */
      Type_InvitePlayerToGameMessage(32),
      /**
       * <code>Type_InviteNotifyMessage = 33;</code>
       */
      Type_InviteNotifyMessage(33),
      /**
       * <code>Type_RejectGameInvitationMessage = 34;</code>
       */
      Type_RejectGameInvitationMessage(34),
      /**
       * <code>Type_RejectInvNotifyMessage = 35;</code>
       */
      Type_RejectInvNotifyMessage(35),
      /**
       * <code>Type_StartEventMessage = 36;</code>
       */
      Type_StartEventMessage(36),
      /**
       * <code>Type_StartEventAckMessage = 37;</code>
       */
      Type_StartEventAckMessage(37),
      /**
       * <code>Type_GameStartInitialMessage = 38;</code>
       */
      Type_GameStartInitialMessage(38),
      /**
       * <code>Type_GameStartRejoinMessage = 39;</code>
       */
      Type_GameStartRejoinMessage(39),
      /**
       * <code>Type_HandStartMessage = 40;</code>
       */
      Type_HandStartMessage(40),
      /**
       * <code>Type_PlayersTurnMessage = 41;</code>
       */
      Type_PlayersTurnMessage(41),
      /**
       * <code>Type_MyActionRequestMessage = 42;</code>
       */
      Type_MyActionRequestMessage(42),
      /**
       * <code>Type_YourActionRejectedMessage = 43;</code>
       */
      Type_YourActionRejectedMessage(43),
      /**
       * <code>Type_PlayersActionDoneMessage = 44;</code>
       */
      Type_PlayersActionDoneMessage(44),
      /**
       * <code>Type_DealFlopCardsMessage = 45;</code>
       */
      Type_DealFlopCardsMessage(45),
      /**
       * <code>Type_DealTurnCardMessage = 46;</code>
       */
      Type_DealTurnCardMessage(46),
      /**
       * <code>Type_DealRiverCardMessage = 47;</code>
       */
      Type_DealRiverCardMessage(47),
      /**
       * <code>Type_AllInShowCardsMessage = 48;</code>
       */
      Type_AllInShowCardsMessage(48),
      /**
       * <code>Type_EndOfHandShowCardsMessage = 49;</code>
       */
      Type_EndOfHandShowCardsMessage(49),
      /**
       * <code>Type_EndOfHandHideCardsMessage = 50;</code>
       */
      Type_EndOfHandHideCardsMessage(50),
      /**
       * <code>Type_ShowMyCardsRequestMessage = 51;</code>
       */
      Type_ShowMyCardsRequestMessage(51),
      /**
       * <code>Type_AfterHandShowCardsMessage = 52;</code>
       */
      Type_AfterHandShowCardsMessage(52),
      /**
       * <code>Type_EndOfGameMessage = 53;</code>
       */
      Type_EndOfGameMessage(53),
      /**
       * <code>Type_PlayerIdChangedMessage = 54;</code>
       */
      Type_PlayerIdChangedMessage(54),
      /**
       * <code>Type_AskKickPlayerMessage = 55;</code>
       */
      Type_AskKickPlayerMessage(55),
      /**
       * <code>Type_AskKickDeniedMessage = 56;</code>
       */
      Type_AskKickDeniedMessage(56),
      /**
       * <code>Type_StartKickPetitionMessage = 57;</code>
       */
      Type_StartKickPetitionMessage(57),
      /**
       * <code>Type_VoteKickRequestMessage = 58;</code>
       */
      Type_VoteKickRequestMessage(58),
      /**
       * <code>Type_VoteKickReplyMessage = 59;</code>
       */
      Type_VoteKickReplyMessage(59),
      /**
       * <code>Type_KickPetitionUpdateMessage = 60;</code>
       */
      Type_KickPetitionUpdateMessage(60),
      /**
       * <code>Type_EndKickPetitionMessage = 61;</code>
       */
      Type_EndKickPetitionMessage(61),
      /**
       * <code>Type_StatisticsMessage = 62;</code>
       */
      Type_StatisticsMessage(62),
      /**
       * <code>Type_ChatRequestMessage = 63;</code>
       */
      Type_ChatRequestMessage(63),
      /**
       * <code>Type_ChatMessage = 64;</code>
       */
      Type_ChatMessage(64),
      /**
       * <code>Type_ChatRejectMessage = 65;</code>
       */
      Type_ChatRejectMessage(65),
      /**
       * <code>Type_DialogMessage = 66;</code>
       */
      Type_DialogMessage(66),
      /**
       * <code>Type_TimeoutWarningMessage = 67;</code>
       */
      Type_TimeoutWarningMessage(67),
      /**
       * <code>Type_ResetTimeoutMessage = 68;</code>
       */
      Type_ResetTimeoutMessage(68),
      /**
       * <code>Type_ReportAvatarMessage = 69;</code>
       */
      Type_ReportAvatarMessage(69),
      /**
       * <code>Type_ReportAvatarAckMessage = 70;</code>
       */
      Type_ReportAvatarAckMessage(70),
      /**
       * <code>Type_ReportGameMessage = 71;</code>
       */
      Type_ReportGameMessage(71),
      /**
       * <code>Type_ReportGameAckMessage = 72;</code>
       */
      Type_ReportGameAckMessage(72),
      /**
       * <code>Type_ErrorMessage = 73;</code>
       */
      Type_ErrorMessage(73),
      /**
       * <code>Type_AdminRemoveGameMessage = 74;</code>
       */
      Type_AdminRemoveGameMessage(74),
      /**
       * <code>Type_AdminRemoveGameAckMessage = 75;</code>
       */
      Type_AdminRemoveGameAckMessage(75),
      /**
       * <code>Type_AdminBanPlayerMessage = 76;</code>
       */
      Type_AdminBanPlayerMessage(76),
      /**
       * <code>Type_AdminBanPlayerAckMessage = 77;</code>
       */
      Type_AdminBanPlayerAckMessage(77),
      /**
       * <code>Type_GameListSpectatorJoinedMessage = 78;</code>
       */
      Type_GameListSpectatorJoinedMessage(78),
      /**
       * <code>Type_GameListSpectatorLeftMessage = 79;</code>
       */
      Type_GameListSpectatorLeftMessage(79),
      /**
       * <code>Type_GameSpectatorJoinedMessage = 80;</code>
       */
      Type_GameSpectatorJoinedMessage(80),
      /**
       * <code>Type_GameSpectatorLeftMessage = 81;</code>
       */
      Type_GameSpectatorLeftMessage(81),
      ;

      /**
       * <code>Type_AnnounceMessage = 1;</code>
       */
      public static final int Type_AnnounceMessage_VALUE = 1;
      /**
       * <code>Type_InitMessage = 2;</code>
       */
      public static final int Type_InitMessage_VALUE = 2;
      /**
       * <code>Type_AuthServerChallengeMessage = 3;</code>
       */
      public static final int Type_AuthServerChallengeMessage_VALUE = 3;
      /**
       * <code>Type_AuthClientResponseMessage = 4;</code>
       */
      public static final int Type_AuthClientResponseMessage_VALUE = 4;
      /**
       * <code>Type_AuthServerVerificationMessage = 5;</code>
       */
      public static final int Type_AuthServerVerificationMessage_VALUE = 5;
      /**
       * <code>Type_InitAckMessage = 6;</code>
       */
      public static final int Type_InitAckMessage_VALUE = 6;
      /**
       * <code>Type_AvatarRequestMessage = 7;</code>
       */
      public static final int Type_AvatarRequestMessage_VALUE = 7;
      /**
       * <code>Type_AvatarHeaderMessage = 8;</code>
       */
      public static final int Type_AvatarHeaderMessage_VALUE = 8;
      /**
       * <code>Type_AvatarDataMessage = 9;</code>
       */
      public static final int Type_AvatarDataMessage_VALUE = 9;
      /**
       * <code>Type_AvatarEndMessage = 10;</code>
       */
      public static final int Type_AvatarEndMessage_VALUE = 10;
      /**
       * <code>Type_UnknownAvatarMessage = 11;</code>
       */
      public static final int Type_UnknownAvatarMessage_VALUE = 11;
      /**
       * <code>Type_PlayerListMessage = 12;</code>
       */
      public static final int Type_PlayerListMessage_VALUE = 12;
      /**
       * <code>Type_GameListNewMessage = 13;</code>
       */
      public static final int Type_GameListNewMessage_VALUE = 13;
      /**
       * <code>Type_GameListUpdateMessage = 14;</code>
       */
      public static final int Type_GameListUpdateMessage_VALUE = 14;
      /**
       * <code>Type_GameListPlayerJoinedMessage = 15;</code>
       */
      public static final int Type_GameListPlayerJoinedMessage_VALUE = 15;
      /**
       * <code>Type_GameListPlayerLeftMessage = 16;</code>
       */
      public static final int Type_GameListPlayerLeftMessage_VALUE = 16;
      /**
       * <code>Type_GameListAdminChangedMessage = 17;</code>
       */
      public static final int Type_GameListAdminChangedMessage_VALUE = 17;
      /**
       * <code>Type_PlayerInfoRequestMessage = 18;</code>
       */
      public static final int Type_PlayerInfoRequestMessage_VALUE = 18;
      /**
       * <code>Type_PlayerInfoReplyMessage = 19;</code>
       */
      public static final int Type_PlayerInfoReplyMessage_VALUE = 19;
      /**
       * <code>Type_SubscriptionRequestMessage = 20;</code>
       */
      public static final int Type_SubscriptionRequestMessage_VALUE = 20;
      /**
       * <code>Type_JoinExistingGameMessage = 21;</code>
       */
      public static final int Type_JoinExistingGameMessage_VALUE = 21;
      /**
       * <code>Type_JoinNewGameMessage = 22;</code>
       */
      public static final int Type_JoinNewGameMessage_VALUE = 22;
      /**
       * <code>Type_RejoinExistingGameMessage = 23;</code>
       */
      public static final int Type_RejoinExistingGameMessage_VALUE = 23;
      /**
       * <code>Type_JoinGameAckMessage = 24;</code>
       */
      public static final int Type_JoinGameAckMessage_VALUE = 24;
      /**
       * <code>Type_JoinGameFailedMessage = 25;</code>
       */
      public static final int Type_JoinGameFailedMessage_VALUE = 25;
      /**
       * <code>Type_GamePlayerJoinedMessage = 26;</code>
       */
      public static final int Type_GamePlayerJoinedMessage_VALUE = 26;
      /**
       * <code>Type_GamePlayerLeftMessage = 27;</code>
       */
      public static final int Type_GamePlayerLeftMessage_VALUE = 27;
      /**
       * <code>Type_GameAdminChangedMessage = 28;</code>
       */
      public static final int Type_GameAdminChangedMessage_VALUE = 28;
      /**
       * <code>Type_RemovedFromGameMessage = 29;</code>
       */
      public static final int Type_RemovedFromGameMessage_VALUE = 29;
      /**
       * <code>Type_KickPlayerRequestMessage = 30;</code>
       */
      public static final int Type_KickPlayerRequestMessage_VALUE = 30;
      /**
       * <code>Type_LeaveGameRequestMessage = 31;</code>
       */
      public static final int Type_LeaveGameRequestMessage_VALUE = 31;
      /**
       * <code>Type_InvitePlayerToGameMessage = 32;</code>
       */
      public static final int Type_InvitePlayerToGameMessage_VALUE = 32;
      /**
       * <code>Type_InviteNotifyMessage = 33;</code>
       */
      public static final int Type_InviteNotifyMessage_VALUE = 33;
      /**
       * <code>Type_RejectGameInvitationMessage = 34;</code>
       */
      public static final int Type_RejectGameInvitationMessage_VALUE = 34;
      /**
       * <code>Type_RejectInvNotifyMessage = 35;</code>
       */
      public static final int Type_RejectInvNotifyMessage_VALUE = 35;
      /**
       * <code>Type_StartEventMessage = 36;</code>
       */
      public static final int Type_StartEventMessage_VALUE = 36;
      /**
       * <code>Type_StartEventAckMessage = 37;</code>
       */
      public static final int Type_StartEventAckMessage_VALUE = 37;
      /**
       * <code>Type_GameStartInitialMessage = 38;</code>
       */
      public static final int Type_GameStartInitialMessage_VALUE = 38;
      /**
       * <code>Type_GameStartRejoinMessage = 39;</code>
       */
      public static final int Type_GameStartRejoinMessage_VALUE = 39;
      /**
       * <code>Type_HandStartMessage = 40;</code>
       */
      public static final int Type_HandStartMessage_VALUE = 40;
      /**
       * <code>Type_PlayersTurnMessage = 41;</code>
       */
      public static final int Type_PlayersTurnMessage_VALUE = 41;
      /**
       * <code>Type_MyActionRequestMessage = 42;</code>
       */
      public static final int Type_MyActionRequestMessage_VALUE = 42;
      /**
       * <code>Type_YourActionRejectedMessage = 43;</code>
       */
      public static final int Type_YourActionRejectedMessage_VALUE = 43;
      /**
       * <code>Type_PlayersActionDoneMessage = 44;</code>
       */
      public static final int Type_PlayersActionDoneMessage_VALUE = 44;
      /**
       * <code>Type_DealFlopCardsMessage = 45;</code>
       */
      public static final int Type_DealFlopCardsMessage_VALUE = 45;
      /**
       * <code>Type_DealTurnCardMessage = 46;</code>
       */
      public static final int Type_DealTurnCardMessage_VALUE = 46;
      /**
       * <code>Type_DealRiverCardMessage = 47;</code>
       */
      public static final int Type_DealRiverCardMessage_VALUE = 47;
      /**
       * <code>Type_AllInShowCardsMessage = 48;</code>
       */
      public static final int Type_AllInShowCardsMessage_VALUE = 48;
      /**
       * <code>Type_EndOfHandShowCardsMessage = 49;</code>
       */
      public static final int Type_EndOfHandShowCardsMessage_VALUE = 49;
      /**
       * <code>Type_EndOfHandHideCardsMessage = 50;</code>
       */
      public static final int Type_EndOfHandHideCardsMessage_VALUE = 50;
      /**
       * <code>Type_ShowMyCardsRequestMessage = 51;</code>
       */
      public static final int Type_ShowMyCardsRequestMessage_VALUE = 51;
      /**
       * <code>Type_AfterHandShowCardsMessage = 52;</code>
       */
      public static final int Type_AfterHandShowCardsMessage_VALUE = 52;
      /**
       * <code>Type_EndOfGameMessage = 53;</code>
       */
      public static final int Type_EndOfGameMessage_VALUE = 53;
      /**
       * <code>Type_PlayerIdChangedMessage = 54;</code>
       */
      public static final int Type_PlayerIdChangedMessage_VALUE = 54;
      /**
       * <code>Type_AskKickPlayerMessage = 55;</code>
       */
      public static final int Type_AskKickPlayerMessage_VALUE = 55;
      /**
       * <code>Type_AskKickDeniedMessage = 56;</code>
       */
      public static final int Type_AskKickDeniedMessage_VALUE = 56;
      /**
       * <code>Type_StartKickPetitionMessage = 57;</code>
       */
      public static final int Type_StartKickPetitionMessage_VALUE = 57;
      /**
       * <code>Type_VoteKickRequestMessage = 58;</code>
       */
      public static final int Type_VoteKickRequestMessage_VALUE = 58;
      /**
       * <code>Type_VoteKickReplyMessage = 59;</code>
       */
      public static final int Type_VoteKickReplyMessage_VALUE = 59;
      /**
       * <code>Type_KickPetitionUpdateMessage = 60;</code>
       */
      public static final int Type_KickPetitionUpdateMessage_VALUE = 60;
      /**
       * <code>Type_EndKickPetitionMessage = 61;</code>
       */
      public static final int Type_EndKickPetitionMessage_VALUE = 61;
      /**
       * <code>Type_StatisticsMessage = 62;</code>
       */
      public static final int Type_StatisticsMessage_VALUE = 62;
      /**
       * <code>Type_ChatRequestMessage = 63;</code>
       */
      public static final int Type_ChatRequestMessage_VALUE = 63;
      /**
       * <code>Type_ChatMessage = 64;</code>
       */
      public static final int Type_ChatMessage_VALUE = 64;
      /**
       * <code>Type_ChatRejectMessage = 65;</code>
       */
      public static final int Type_ChatRejectMessage_VALUE = 65;
      /**
       * <code>Type_DialogMessage = 66;</code>
       */
      public static final int Type_DialogMessage_VALUE = 66;
      /**
       * <code>Type_TimeoutWarningMessage = 67;</code>
       */
      public static final int Type_TimeoutWarningMessage_VALUE = 67;
      /**
       * <code>Type_ResetTimeoutMessage = 68;</code>
       */
      public static final int Type_ResetTimeoutMessage_VALUE = 68;
      /**
       * <code>Type_ReportAvatarMessage = 69;</code>
       */
      public static final int Type_ReportAvatarMessage_VALUE = 69;
      /**
       * <code>Type_ReportAvatarAckMessage = 70;</code>
       */
      public static final int Type_ReportAvatarAckMessage_VALUE = 70;
      /**
       * <code>Type_ReportGameMessage = 71;</code>
       */
      public static final int Type_ReportGameMessage_VALUE = 71;
      /**
       * <code>Type_ReportGameAckMessage = 72;</code>
       */
      public static final int Type_ReportGameAckMessage_VALUE = 72;
      /**
       * <code>Type_ErrorMessage = 73;</code>
       */
      public static final int Type_ErrorMessage_VALUE = 73;
      /**
       * <code>Type_AdminRemoveGameMessage = 74;</code>
       */
      public static final int Type_AdminRemoveGameMessage_VALUE = 74;
      /**
       * <code>Type_AdminRemoveGameAckMessage = 75;</code>
       */
      public static final int Type_AdminRemoveGameAckMessage_VALUE = 75;
      /**
       * <code>Type_AdminBanPlayerMessage = 76;</code>
       */
      public static final int Type_AdminBanPlayerMessage_VALUE = 76;
      /**
       * <code>Type_AdminBanPlayerAckMessage = 77;</code>
       */
      public static final int Type_AdminBanPlayerAckMessage_VALUE = 77;
      /**
       * <code>Type_GameListSpectatorJoinedMessage = 78;</code>
       */
      public static final int Type_GameListSpectatorJoinedMessage_VALUE = 78;
      /**
       * <code>Type_GameListSpectatorLeftMessage = 79;</code>
       */
      public static final int Type_GameListSpectatorLeftMessage_VALUE = 79;
      /**
       * <code>Type_GameSpectatorJoinedMessage = 80;</code>
       */
      public static final int Type_GameSpectatorJoinedMessage_VALUE = 80;
      /**
       * <code>Type_GameSpectatorLeftMessage = 81;</code>
       */
      public static final int Type_GameSpectatorLeftMessage_VALUE = 81;


      public final int getNumber() {
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static PokerTHMessageType valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static PokerTHMessageType forNumber(int value) {
        switch (value) {
          case 1: return Type_AnnounceMessage;
          case 2: return Type_InitMessage;
          case 3: return Type_AuthServerChallengeMessage;
          case 4: return Type_AuthClientResponseMessage;
          case 5: return Type_AuthServerVerificationMessage;
          case 6: return Type_InitAckMessage;
          case 7: return Type_AvatarRequestMessage;
          case 8: return Type_AvatarHeaderMessage;
          case 9: return Type_AvatarDataMessage;
          case 10: return Type_AvatarEndMessage;
          case 11: return Type_UnknownAvatarMessage;
          case 12: return Type_PlayerListMessage;
          case 13: return Type_GameListNewMessage;
          case 14: return Type_GameListUpdateMessage;
          case 15: return Type_GameListPlayerJoinedMessage;
          case 16: return Type_GameListPlayerLeftMessage;
          case 17: return Type_GameListAdminChangedMessage;
          case 18: return Type_PlayerInfoRequestMessage;
          case 19: return Type_PlayerInfoReplyMessage;
          case 20: return Type_SubscriptionRequestMessage;
          case 21: return Type_JoinExistingGameMessage;
          case 22: return Type_JoinNewGameMessage;
          case 23: return Type_RejoinExistingGameMessage;
          case 24: return Type_JoinGameAckMessage;
          case 25: return Type_JoinGameFailedMessage;
          case 26: return Type_GamePlayerJoinedMessage;
          case 27: return Type_GamePlayerLeftMessage;
          case 28: return Type_GameAdminChangedMessage;
          case 29: return Type_RemovedFromGameMessage;
          case 30: return Type_KickPlayerRequestMessage;
          case 31: return Type_LeaveGameRequestMessage;
          case 32: return Type_InvitePlayerToGameMessage;
          case 33: return Type_InviteNotifyMessage;
          case 34: return Type_RejectGameInvitationMessage;
          case 35: return Type_RejectInvNotifyMessage;
          case 36: return Type_StartEventMessage;
          case 37: return Type_StartEventAckMessage;
          case 38: return Type_GameStartInitialMessage;
          case 39: return Type_GameStartRejoinMessage;
          case 40: return Type_HandStartMessage;
          case 41: return Type_PlayersTurnMessage;
          case 42: return Type_MyActionRequestMessage;
          case 43: return Type_YourActionRejectedMessage;
          case 44: return Type_PlayersActionDoneMessage;
          case 45: return Type_DealFlopCardsMessage;
          case 46: return Type_DealTurnCardMessage;
          case 47: return Type_DealRiverCardMessage;
          case 48: return Type_AllInShowCardsMessage;
          case 49: return Type_EndOfHandShowCardsMessage;
          case 50: return Type_EndOfHandHideCardsMessage;
          case 51: return Type_ShowMyCardsRequestMessage;
          case 52: return Type_AfterHandShowCardsMessage;
          case 53: return Type_EndOfGameMessage;
          case 54: return Type_PlayerIdChangedMessage;
          case 55: return Type_AskKickPlayerMessage;
          case 56: return Type_AskKickDeniedMessage;
          case 57: return Type_StartKickPetitionMessage;
          case 58: return Type_VoteKickRequestMessage;
          case 59: return Type_VoteKickReplyMessage;
          case 60: return Type_KickPetitionUpdateMessage;
          case 61: return Type_EndKickPetitionMessage;
          case 62: return Type_StatisticsMessage;
          case 63: return Type_ChatRequestMessage;
          case 64: return Type_ChatMessage;
          case 65: return Type_ChatRejectMessage;
          case 66: return Type_DialogMessage;
          case 67: return Type_TimeoutWarningMessage;
          case 68: return Type_ResetTimeoutMessage;
          case 69: return Type_ReportAvatarMessage;
          case 70: return Type_ReportAvatarAckMessage;
          case 71: return Type_ReportGameMessage;
          case 72: return Type_ReportGameAckMessage;
          case 73: return Type_ErrorMessage;
          case 74: return Type_AdminRemoveGameMessage;
          case 75: return Type_AdminRemoveGameAckMessage;
          case 76: return Type_AdminBanPlayerMessage;
          case 77: return Type_AdminBanPlayerAckMessage;
          case 78: return Type_GameListSpectatorJoinedMessage;
          case 79: return Type_GameListSpectatorLeftMessage;
          case 80: return Type_GameSpectatorJoinedMessage;
          case 81: return Type_GameSpectatorLeftMessage;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<PokerTHMessageType>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          PokerTHMessageType> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<PokerTHMessageType>() {
              public PokerTHMessageType findValueByNumber(int number) {
                return PokerTHMessageType.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.PokerTHMessage.getDescriptor().getEnumTypes().get(0);
      }

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

      public static PokerTHMessageType 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 value;

      private PokerTHMessageType(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:PokerTHMessage.PokerTHMessageType)
    }

    private int bitField0_;
    private int bitField1_;
    private int bitField2_;
    public static final int MESSAGETYPE_FIELD_NUMBER = 1;
    private int messageType_ = 1;
    /**
     * <code>required .PokerTHMessage.PokerTHMessageType messageType = 1;</code>
     * @return Whether the messageType field is set.
     */
    @java.lang.Override public boolean hasMessageType() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required .PokerTHMessage.PokerTHMessageType messageType = 1;</code>
     * @return The messageType.
     */
    @java.lang.Override public de.pokerth.protocol.ProtoBuf.PokerTHMessage.PokerTHMessageType getMessageType() {
      de.pokerth.protocol.ProtoBuf.PokerTHMessage.PokerTHMessageType result = de.pokerth.protocol.ProtoBuf.PokerTHMessage.PokerTHMessageType.forNumber(messageType_);
      return result == null ? de.pokerth.protocol.ProtoBuf.PokerTHMessage.PokerTHMessageType.Type_AnnounceMessage : result;
    }

    public static final int ANNOUNCEMESSAGE_FIELD_NUMBER = 2;
    private de.pokerth.protocol.ProtoBuf.AnnounceMessage announceMessage_;
    /**
     * <code>optional .AnnounceMessage announceMessage = 2;</code>
     * @return Whether the announceMessage field is set.
     */
    @java.lang.Override
    public boolean hasAnnounceMessage() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional .AnnounceMessage announceMessage = 2;</code>
     * @return The announceMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.AnnounceMessage getAnnounceMessage() {
      return announceMessage_ == null ? de.pokerth.protocol.ProtoBuf.AnnounceMessage.getDefaultInstance() : announceMessage_;
    }
    /**
     * <code>optional .AnnounceMessage announceMessage = 2;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.AnnounceMessageOrBuilder getAnnounceMessageOrBuilder() {
      return announceMessage_ == null ? de.pokerth.protocol.ProtoBuf.AnnounceMessage.getDefaultInstance() : announceMessage_;
    }

    public static final int INITMESSAGE_FIELD_NUMBER = 3;
    private de.pokerth.protocol.ProtoBuf.InitMessage initMessage_;
    /**
     * <code>optional .InitMessage initMessage = 3;</code>
     * @return Whether the initMessage field is set.
     */
    @java.lang.Override
    public boolean hasInitMessage() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional .InitMessage initMessage = 3;</code>
     * @return The initMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.InitMessage getInitMessage() {
      return initMessage_ == null ? de.pokerth.protocol.ProtoBuf.InitMessage.getDefaultInstance() : initMessage_;
    }
    /**
     * <code>optional .InitMessage initMessage = 3;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.InitMessageOrBuilder getInitMessageOrBuilder() {
      return initMessage_ == null ? de.pokerth.protocol.ProtoBuf.InitMessage.getDefaultInstance() : initMessage_;
    }

    public static final int AUTHSERVERCHALLENGEMESSAGE_FIELD_NUMBER = 4;
    private de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage authServerChallengeMessage_;
    /**
     * <code>optional .AuthServerChallengeMessage authServerChallengeMessage = 4;</code>
     * @return Whether the authServerChallengeMessage field is set.
     */
    @java.lang.Override
    public boolean hasAuthServerChallengeMessage() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>optional .AuthServerChallengeMessage authServerChallengeMessage = 4;</code>
     * @return The authServerChallengeMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage getAuthServerChallengeMessage() {
      return authServerChallengeMessage_ == null ? de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage.getDefaultInstance() : authServerChallengeMessage_;
    }
    /**
     * <code>optional .AuthServerChallengeMessage authServerChallengeMessage = 4;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessageOrBuilder getAuthServerChallengeMessageOrBuilder() {
      return authServerChallengeMessage_ == null ? de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage.getDefaultInstance() : authServerChallengeMessage_;
    }

    public static final int AUTHCLIENTRESPONSEMESSAGE_FIELD_NUMBER = 5;
    private de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage authClientResponseMessage_;
    /**
     * <code>optional .AuthClientResponseMessage authClientResponseMessage = 5;</code>
     * @return Whether the authClientResponseMessage field is set.
     */
    @java.lang.Override
    public boolean hasAuthClientResponseMessage() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <code>optional .AuthClientResponseMessage authClientResponseMessage = 5;</code>
     * @return The authClientResponseMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage getAuthClientResponseMessage() {
      return authClientResponseMessage_ == null ? de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage.getDefaultInstance() : authClientResponseMessage_;
    }
    /**
     * <code>optional .AuthClientResponseMessage authClientResponseMessage = 5;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.AuthClientResponseMessageOrBuilder getAuthClientResponseMessageOrBuilder() {
      return authClientResponseMessage_ == null ? de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage.getDefaultInstance() : authClientResponseMessage_;
    }

    public static final int AUTHSERVERVERIFICATIONMESSAGE_FIELD_NUMBER = 6;
    private de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage authServerVerificationMessage_;
    /**
     * <code>optional .AuthServerVerificationMessage authServerVerificationMessage = 6;</code>
     * @return Whether the authServerVerificationMessage field is set.
     */
    @java.lang.Override
    public boolean hasAuthServerVerificationMessage() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <code>optional .AuthServerVerificationMessage authServerVerificationMessage = 6;</code>
     * @return The authServerVerificationMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage getAuthServerVerificationMessage() {
      return authServerVerificationMessage_ == null ? de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage.getDefaultInstance() : authServerVerificationMessage_;
    }
    /**
     * <code>optional .AuthServerVerificationMessage authServerVerificationMessage = 6;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessageOrBuilder getAuthServerVerificationMessageOrBuilder() {
      return authServerVerificationMessage_ == null ? de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage.getDefaultInstance() : authServerVerificationMessage_;
    }

    public static final int INITACKMESSAGE_FIELD_NUMBER = 7;
    private de.pokerth.protocol.ProtoBuf.InitAckMessage initAckMessage_;
    /**
     * <code>optional .InitAckMessage initAckMessage = 7;</code>
     * @return Whether the initAckMessage field is set.
     */
    @java.lang.Override
    public boolean hasInitAckMessage() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <code>optional .InitAckMessage initAckMessage = 7;</code>
     * @return The initAckMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.InitAckMessage getInitAckMessage() {
      return initAckMessage_ == null ? de.pokerth.protocol.ProtoBuf.InitAckMessage.getDefaultInstance() : initAckMessage_;
    }
    /**
     * <code>optional .InitAckMessage initAckMessage = 7;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.InitAckMessageOrBuilder getInitAckMessageOrBuilder() {
      return initAckMessage_ == null ? de.pokerth.protocol.ProtoBuf.InitAckMessage.getDefaultInstance() : initAckMessage_;
    }

    public static final int AVATARREQUESTMESSAGE_FIELD_NUMBER = 8;
    private de.pokerth.protocol.ProtoBuf.AvatarRequestMessage avatarRequestMessage_;
    /**
     * <code>optional .AvatarRequestMessage avatarRequestMessage = 8;</code>
     * @return Whether the avatarRequestMessage field is set.
     */
    @java.lang.Override
    public boolean hasAvatarRequestMessage() {
      return ((bitField0_ & 0x00000080) != 0);
    }
    /**
     * <code>optional .AvatarRequestMessage avatarRequestMessage = 8;</code>
     * @return The avatarRequestMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.AvatarRequestMessage getAvatarRequestMessage() {
      return avatarRequestMessage_ == null ? de.pokerth.protocol.ProtoBuf.AvatarRequestMessage.getDefaultInstance() : avatarRequestMessage_;
    }
    /**
     * <code>optional .AvatarRequestMessage avatarRequestMessage = 8;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.AvatarRequestMessageOrBuilder getAvatarRequestMessageOrBuilder() {
      return avatarRequestMessage_ == null ? de.pokerth.protocol.ProtoBuf.AvatarRequestMessage.getDefaultInstance() : avatarRequestMessage_;
    }

    public static final int AVATARHEADERMESSAGE_FIELD_NUMBER = 9;
    private de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage avatarHeaderMessage_;
    /**
     * <code>optional .AvatarHeaderMessage avatarHeaderMessage = 9;</code>
     * @return Whether the avatarHeaderMessage field is set.
     */
    @java.lang.Override
    public boolean hasAvatarHeaderMessage() {
      return ((bitField0_ & 0x00000100) != 0);
    }
    /**
     * <code>optional .AvatarHeaderMessage avatarHeaderMessage = 9;</code>
     * @return The avatarHeaderMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage getAvatarHeaderMessage() {
      return avatarHeaderMessage_ == null ? de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage.getDefaultInstance() : avatarHeaderMessage_;
    }
    /**
     * <code>optional .AvatarHeaderMessage avatarHeaderMessage = 9;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.AvatarHeaderMessageOrBuilder getAvatarHeaderMessageOrBuilder() {
      return avatarHeaderMessage_ == null ? de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage.getDefaultInstance() : avatarHeaderMessage_;
    }

    public static final int AVATARDATAMESSAGE_FIELD_NUMBER = 10;
    private de.pokerth.protocol.ProtoBuf.AvatarDataMessage avatarDataMessage_;
    /**
     * <code>optional .AvatarDataMessage avatarDataMessage = 10;</code>
     * @return Whether the avatarDataMessage field is set.
     */
    @java.lang.Override
    public boolean hasAvatarDataMessage() {
      return ((bitField0_ & 0x00000200) != 0);
    }
    /**
     * <code>optional .AvatarDataMessage avatarDataMessage = 10;</code>
     * @return The avatarDataMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.AvatarDataMessage getAvatarDataMessage() {
      return avatarDataMessage_ == null ? de.pokerth.protocol.ProtoBuf.AvatarDataMessage.getDefaultInstance() : avatarDataMessage_;
    }
    /**
     * <code>optional .AvatarDataMessage avatarDataMessage = 10;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.AvatarDataMessageOrBuilder getAvatarDataMessageOrBuilder() {
      return avatarDataMessage_ == null ? de.pokerth.protocol.ProtoBuf.AvatarDataMessage.getDefaultInstance() : avatarDataMessage_;
    }

    public static final int AVATARENDMESSAGE_FIELD_NUMBER = 11;
    private de.pokerth.protocol.ProtoBuf.AvatarEndMessage avatarEndMessage_;
    /**
     * <code>optional .AvatarEndMessage avatarEndMessage = 11;</code>
     * @return Whether the avatarEndMessage field is set.
     */
    @java.lang.Override
    public boolean hasAvatarEndMessage() {
      return ((bitField0_ & 0x00000400) != 0);
    }
    /**
     * <code>optional .AvatarEndMessage avatarEndMessage = 11;</code>
     * @return The avatarEndMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.AvatarEndMessage getAvatarEndMessage() {
      return avatarEndMessage_ == null ? de.pokerth.protocol.ProtoBuf.AvatarEndMessage.getDefaultInstance() : avatarEndMessage_;
    }
    /**
     * <code>optional .AvatarEndMessage avatarEndMessage = 11;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.AvatarEndMessageOrBuilder getAvatarEndMessageOrBuilder() {
      return avatarEndMessage_ == null ? de.pokerth.protocol.ProtoBuf.AvatarEndMessage.getDefaultInstance() : avatarEndMessage_;
    }

    public static final int UNKNOWNAVATARMESSAGE_FIELD_NUMBER = 12;
    private de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage unknownAvatarMessage_;
    /**
     * <code>optional .UnknownAvatarMessage unknownAvatarMessage = 12;</code>
     * @return Whether the unknownAvatarMessage field is set.
     */
    @java.lang.Override
    public boolean hasUnknownAvatarMessage() {
      return ((bitField0_ & 0x00000800) != 0);
    }
    /**
     * <code>optional .UnknownAvatarMessage unknownAvatarMessage = 12;</code>
     * @return The unknownAvatarMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage getUnknownAvatarMessage() {
      return unknownAvatarMessage_ == null ? de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage.getDefaultInstance() : unknownAvatarMessage_;
    }
    /**
     * <code>optional .UnknownAvatarMessage unknownAvatarMessage = 12;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.UnknownAvatarMessageOrBuilder getUnknownAvatarMessageOrBuilder() {
      return unknownAvatarMessage_ == null ? de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage.getDefaultInstance() : unknownAvatarMessage_;
    }

    public static final int PLAYERLISTMESSAGE_FIELD_NUMBER = 13;
    private de.pokerth.protocol.ProtoBuf.PlayerListMessage playerListMessage_;
    /**
     * <code>optional .PlayerListMessage playerListMessage = 13;</code>
     * @return Whether the playerListMessage field is set.
     */
    @java.lang.Override
    public boolean hasPlayerListMessage() {
      return ((bitField0_ & 0x00001000) != 0);
    }
    /**
     * <code>optional .PlayerListMessage playerListMessage = 13;</code>
     * @return The playerListMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.PlayerListMessage getPlayerListMessage() {
      return playerListMessage_ == null ? de.pokerth.protocol.ProtoBuf.PlayerListMessage.getDefaultInstance() : playerListMessage_;
    }
    /**
     * <code>optional .PlayerListMessage playerListMessage = 13;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.PlayerListMessageOrBuilder getPlayerListMessageOrBuilder() {
      return playerListMessage_ == null ? de.pokerth.protocol.ProtoBuf.PlayerListMessage.getDefaultInstance() : playerListMessage_;
    }

    public static final int GAMELISTNEWMESSAGE_FIELD_NUMBER = 14;
    private de.pokerth.protocol.ProtoBuf.GameListNewMessage gameListNewMessage_;
    /**
     * <code>optional .GameListNewMessage gameListNewMessage = 14;</code>
     * @return Whether the gameListNewMessage field is set.
     */
    @java.lang.Override
    public boolean hasGameListNewMessage() {
      return ((bitField0_ & 0x00002000) != 0);
    }
    /**
     * <code>optional .GameListNewMessage gameListNewMessage = 14;</code>
     * @return The gameListNewMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.GameListNewMessage getGameListNewMessage() {
      return gameListNewMessage_ == null ? de.pokerth.protocol.ProtoBuf.GameListNewMessage.getDefaultInstance() : gameListNewMessage_;
    }
    /**
     * <code>optional .GameListNewMessage gameListNewMessage = 14;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.GameListNewMessageOrBuilder getGameListNewMessageOrBuilder() {
      return gameListNewMessage_ == null ? de.pokerth.protocol.ProtoBuf.GameListNewMessage.getDefaultInstance() : gameListNewMessage_;
    }

    public static final int GAMELISTUPDATEMESSAGE_FIELD_NUMBER = 15;
    private de.pokerth.protocol.ProtoBuf.GameListUpdateMessage gameListUpdateMessage_;
    /**
     * <code>optional .GameListUpdateMessage gameListUpdateMessage = 15;</code>
     * @return Whether the gameListUpdateMessage field is set.
     */
    @java.lang.Override
    public boolean hasGameListUpdateMessage() {
      return ((bitField0_ & 0x00004000) != 0);
    }
    /**
     * <code>optional .GameListUpdateMessage gameListUpdateMessage = 15;</code>
     * @return The gameListUpdateMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.GameListUpdateMessage getGameListUpdateMessage() {
      return gameListUpdateMessage_ == null ? de.pokerth.protocol.ProtoBuf.GameListUpdateMessage.getDefaultInstance() : gameListUpdateMessage_;
    }
    /**
     * <code>optional .GameListUpdateMessage gameListUpdateMessage = 15;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.GameListUpdateMessageOrBuilder getGameListUpdateMessageOrBuilder() {
      return gameListUpdateMessage_ == null ? de.pokerth.protocol.ProtoBuf.GameListUpdateMessage.getDefaultInstance() : gameListUpdateMessage_;
    }

    public static final int GAMELISTPLAYERJOINEDMESSAGE_FIELD_NUMBER = 16;
    private de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage gameListPlayerJoinedMessage_;
    /**
     * <code>optional .GameListPlayerJoinedMessage gameListPlayerJoinedMessage = 16;</code>
     * @return Whether the gameListPlayerJoinedMessage field is set.
     */
    @java.lang.Override
    public boolean hasGameListPlayerJoinedMessage() {
      return ((bitField0_ & 0x00008000) != 0);
    }
    /**
     * <code>optional .GameListPlayerJoinedMessage gameListPlayerJoinedMessage = 16;</code>
     * @return The gameListPlayerJoinedMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage getGameListPlayerJoinedMessage() {
      return gameListPlayerJoinedMessage_ == null ? de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage.getDefaultInstance() : gameListPlayerJoinedMessage_;
    }
    /**
     * <code>optional .GameListPlayerJoinedMessage gameListPlayerJoinedMessage = 16;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessageOrBuilder getGameListPlayerJoinedMessageOrBuilder() {
      return gameListPlayerJoinedMessage_ == null ? de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage.getDefaultInstance() : gameListPlayerJoinedMessage_;
    }

    public static final int GAMELISTPLAYERLEFTMESSAGE_FIELD_NUMBER = 17;
    private de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage gameListPlayerLeftMessage_;
    /**
     * <code>optional .GameListPlayerLeftMessage gameListPlayerLeftMessage = 17;</code>
     * @return Whether the gameListPlayerLeftMessage field is set.
     */
    @java.lang.Override
    public boolean hasGameListPlayerLeftMessage() {
      return ((bitField0_ & 0x00010000) != 0);
    }
    /**
     * <code>optional .GameListPlayerLeftMessage gameListPlayerLeftMessage = 17;</code>
     * @return The gameListPlayerLeftMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage getGameListPlayerLeftMessage() {
      return gameListPlayerLeftMessage_ == null ? de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage.getDefaultInstance() : gameListPlayerLeftMessage_;
    }
    /**
     * <code>optional .GameListPlayerLeftMessage gameListPlayerLeftMessage = 17;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessageOrBuilder getGameListPlayerLeftMessageOrBuilder() {
      return gameListPlayerLeftMessage_ == null ? de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage.getDefaultInstance() : gameListPlayerLeftMessage_;
    }

    public static final int GAMELISTADMINCHANGEDMESSAGE_FIELD_NUMBER = 18;
    private de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage gameListAdminChangedMessage_;
    /**
     * <code>optional .GameListAdminChangedMessage gameListAdminChangedMessage = 18;</code>
     * @return Whether the gameListAdminChangedMessage field is set.
     */
    @java.lang.Override
    public boolean hasGameListAdminChangedMessage() {
      return ((bitField0_ & 0x00020000) != 0);
    }
    /**
     * <code>optional .GameListAdminChangedMessage gameListAdminChangedMessage = 18;</code>
     * @return The gameListAdminChangedMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage getGameListAdminChangedMessage() {
      return gameListAdminChangedMessage_ == null ? de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage.getDefaultInstance() : gameListAdminChangedMessage_;
    }
    /**
     * <code>optional .GameListAdminChangedMessage gameListAdminChangedMessage = 18;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessageOrBuilder getGameListAdminChangedMessageOrBuilder() {
      return gameListAdminChangedMessage_ == null ? de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage.getDefaultInstance() : gameListAdminChangedMessage_;
    }

    public static final int PLAYERINFOREQUESTMESSAGE_FIELD_NUMBER = 19;
    private de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage playerInfoRequestMessage_;
    /**
     * <code>optional .PlayerInfoRequestMessage playerInfoRequestMessage = 19;</code>
     * @return Whether the playerInfoRequestMessage field is set.
     */
    @java.lang.Override
    public boolean hasPlayerInfoRequestMessage() {
      return ((bitField0_ & 0x00040000) != 0);
    }
    /**
     * <code>optional .PlayerInfoRequestMessage playerInfoRequestMessage = 19;</code>
     * @return The playerInfoRequestMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage getPlayerInfoRequestMessage() {
      return playerInfoRequestMessage_ == null ? de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage.getDefaultInstance() : playerInfoRequestMessage_;
    }
    /**
     * <code>optional .PlayerInfoRequestMessage playerInfoRequestMessage = 19;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessageOrBuilder getPlayerInfoRequestMessageOrBuilder() {
      return playerInfoRequestMessage_ == null ? de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage.getDefaultInstance() : playerInfoRequestMessage_;
    }

    public static final int PLAYERINFOREPLYMESSAGE_FIELD_NUMBER = 20;
    private de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage playerInfoReplyMessage_;
    /**
     * <code>optional .PlayerInfoReplyMessage playerInfoReplyMessage = 20;</code>
     * @return Whether the playerInfoReplyMessage field is set.
     */
    @java.lang.Override
    public boolean hasPlayerInfoReplyMessage() {
      return ((bitField0_ & 0x00080000) != 0);
    }
    /**
     * <code>optional .PlayerInfoReplyMessage playerInfoReplyMessage = 20;</code>
     * @return The playerInfoReplyMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage getPlayerInfoReplyMessage() {
      return playerInfoReplyMessage_ == null ? de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.getDefaultInstance() : playerInfoReplyMessage_;
    }
    /**
     * <code>optional .PlayerInfoReplyMessage playerInfoReplyMessage = 20;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessageOrBuilder getPlayerInfoReplyMessageOrBuilder() {
      return playerInfoReplyMessage_ == null ? de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.getDefaultInstance() : playerInfoReplyMessage_;
    }

    public static final int SUBSCRIPTIONREQUESTMESSAGE_FIELD_NUMBER = 21;
    private de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage subscriptionRequestMessage_;
    /**
     * <code>optional .SubscriptionRequestMessage subscriptionRequestMessage = 21;</code>
     * @return Whether the subscriptionRequestMessage field is set.
     */
    @java.lang.Override
    public boolean hasSubscriptionRequestMessage() {
      return ((bitField0_ & 0x00100000) != 0);
    }
    /**
     * <code>optional .SubscriptionRequestMessage subscriptionRequestMessage = 21;</code>
     * @return The subscriptionRequestMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage getSubscriptionRequestMessage() {
      return subscriptionRequestMessage_ == null ? de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.getDefaultInstance() : subscriptionRequestMessage_;
    }
    /**
     * <code>optional .SubscriptionRequestMessage subscriptionRequestMessage = 21;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessageOrBuilder getSubscriptionRequestMessageOrBuilder() {
      return subscriptionRequestMessage_ == null ? de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.getDefaultInstance() : subscriptionRequestMessage_;
    }

    public static final int JOINEXISTINGGAMEMESSAGE_FIELD_NUMBER = 22;
    private de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage joinExistingGameMessage_;
    /**
     * <code>optional .JoinExistingGameMessage joinExistingGameMessage = 22;</code>
     * @return Whether the joinExistingGameMessage field is set.
     */
    @java.lang.Override
    public boolean hasJoinExistingGameMessage() {
      return ((bitField0_ & 0x00200000) != 0);
    }
    /**
     * <code>optional .JoinExistingGameMessage joinExistingGameMessage = 22;</code>
     * @return The joinExistingGameMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage getJoinExistingGameMessage() {
      return joinExistingGameMessage_ == null ? de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage.getDefaultInstance() : joinExistingGameMessage_;
    }
    /**
     * <code>optional .JoinExistingGameMessage joinExistingGameMessage = 22;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.JoinExistingGameMessageOrBuilder getJoinExistingGameMessageOrBuilder() {
      return joinExistingGameMessage_ == null ? de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage.getDefaultInstance() : joinExistingGameMessage_;
    }

    public static final int JOINNEWGAMEMESSAGE_FIELD_NUMBER = 23;
    private de.pokerth.protocol.ProtoBuf.JoinNewGameMessage joinNewGameMessage_;
    /**
     * <code>optional .JoinNewGameMessage joinNewGameMessage = 23;</code>
     * @return Whether the joinNewGameMessage field is set.
     */
    @java.lang.Override
    public boolean hasJoinNewGameMessage() {
      return ((bitField0_ & 0x00400000) != 0);
    }
    /**
     * <code>optional .JoinNewGameMessage joinNewGameMessage = 23;</code>
     * @return The joinNewGameMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.JoinNewGameMessage getJoinNewGameMessage() {
      return joinNewGameMessage_ == null ? de.pokerth.protocol.ProtoBuf.JoinNewGameMessage.getDefaultInstance() : joinNewGameMessage_;
    }
    /**
     * <code>optional .JoinNewGameMessage joinNewGameMessage = 23;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.JoinNewGameMessageOrBuilder getJoinNewGameMessageOrBuilder() {
      return joinNewGameMessage_ == null ? de.pokerth.protocol.ProtoBuf.JoinNewGameMessage.getDefaultInstance() : joinNewGameMessage_;
    }

    public static final int REJOINEXISTINGGAMEMESSAGE_FIELD_NUMBER = 24;
    private de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage rejoinExistingGameMessage_;
    /**
     * <code>optional .RejoinExistingGameMessage rejoinExistingGameMessage = 24;</code>
     * @return Whether the rejoinExistingGameMessage field is set.
     */
    @java.lang.Override
    public boolean hasRejoinExistingGameMessage() {
      return ((bitField0_ & 0x00800000) != 0);
    }
    /**
     * <code>optional .RejoinExistingGameMessage rejoinExistingGameMessage = 24;</code>
     * @return The rejoinExistingGameMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage getRejoinExistingGameMessage() {
      return rejoinExistingGameMessage_ == null ? de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage.getDefaultInstance() : rejoinExistingGameMessage_;
    }
    /**
     * <code>optional .RejoinExistingGameMessage rejoinExistingGameMessage = 24;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessageOrBuilder getRejoinExistingGameMessageOrBuilder() {
      return rejoinExistingGameMessage_ == null ? de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage.getDefaultInstance() : rejoinExistingGameMessage_;
    }

    public static final int JOINGAMEACKMESSAGE_FIELD_NUMBER = 25;
    private de.pokerth.protocol.ProtoBuf.JoinGameAckMessage joinGameAckMessage_;
    /**
     * <code>optional .JoinGameAckMessage joinGameAckMessage = 25;</code>
     * @return Whether the joinGameAckMessage field is set.
     */
    @java.lang.Override
    public boolean hasJoinGameAckMessage() {
      return ((bitField0_ & 0x01000000) != 0);
    }
    /**
     * <code>optional .JoinGameAckMessage joinGameAckMessage = 25;</code>
     * @return The joinGameAckMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.JoinGameAckMessage getJoinGameAckMessage() {
      return joinGameAckMessage_ == null ? de.pokerth.protocol.ProtoBuf.JoinGameAckMessage.getDefaultInstance() : joinGameAckMessage_;
    }
    /**
     * <code>optional .JoinGameAckMessage joinGameAckMessage = 25;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.JoinGameAckMessageOrBuilder getJoinGameAckMessageOrBuilder() {
      return joinGameAckMessage_ == null ? de.pokerth.protocol.ProtoBuf.JoinGameAckMessage.getDefaultInstance() : joinGameAckMessage_;
    }

    public static final int JOINGAMEFAILEDMESSAGE_FIELD_NUMBER = 26;
    private de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage joinGameFailedMessage_;
    /**
     * <code>optional .JoinGameFailedMessage joinGameFailedMessage = 26;</code>
     * @return Whether the joinGameFailedMessage field is set.
     */
    @java.lang.Override
    public boolean hasJoinGameFailedMessage() {
      return ((bitField0_ & 0x02000000) != 0);
    }
    /**
     * <code>optional .JoinGameFailedMessage joinGameFailedMessage = 26;</code>
     * @return The joinGameFailedMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage getJoinGameFailedMessage() {
      return joinGameFailedMessage_ == null ? de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.getDefaultInstance() : joinGameFailedMessage_;
    }
    /**
     * <code>optional .JoinGameFailedMessage joinGameFailedMessage = 26;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.JoinGameFailedMessageOrBuilder getJoinGameFailedMessageOrBuilder() {
      return joinGameFailedMessage_ == null ? de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.getDefaultInstance() : joinGameFailedMessage_;
    }

    public static final int GAMEPLAYERJOINEDMESSAGE_FIELD_NUMBER = 27;
    private de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage gamePlayerJoinedMessage_;
    /**
     * <code>optional .GamePlayerJoinedMessage gamePlayerJoinedMessage = 27;</code>
     * @return Whether the gamePlayerJoinedMessage field is set.
     */
    @java.lang.Override
    public boolean hasGamePlayerJoinedMessage() {
      return ((bitField0_ & 0x04000000) != 0);
    }
    /**
     * <code>optional .GamePlayerJoinedMessage gamePlayerJoinedMessage = 27;</code>
     * @return The gamePlayerJoinedMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage getGamePlayerJoinedMessage() {
      return gamePlayerJoinedMessage_ == null ? de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage.getDefaultInstance() : gamePlayerJoinedMessage_;
    }
    /**
     * <code>optional .GamePlayerJoinedMessage gamePlayerJoinedMessage = 27;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessageOrBuilder getGamePlayerJoinedMessageOrBuilder() {
      return gamePlayerJoinedMessage_ == null ? de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage.getDefaultInstance() : gamePlayerJoinedMessage_;
    }

    public static final int GAMEPLAYERLEFTMESSAGE_FIELD_NUMBER = 28;
    private de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage gamePlayerLeftMessage_;
    /**
     * <code>optional .GamePlayerLeftMessage gamePlayerLeftMessage = 28;</code>
     * @return Whether the gamePlayerLeftMessage field is set.
     */
    @java.lang.Override
    public boolean hasGamePlayerLeftMessage() {
      return ((bitField0_ & 0x08000000) != 0);
    }
    /**
     * <code>optional .GamePlayerLeftMessage gamePlayerLeftMessage = 28;</code>
     * @return The gamePlayerLeftMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage getGamePlayerLeftMessage() {
      return gamePlayerLeftMessage_ == null ? de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.getDefaultInstance() : gamePlayerLeftMessage_;
    }
    /**
     * <code>optional .GamePlayerLeftMessage gamePlayerLeftMessage = 28;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessageOrBuilder getGamePlayerLeftMessageOrBuilder() {
      return gamePlayerLeftMessage_ == null ? de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.getDefaultInstance() : gamePlayerLeftMessage_;
    }

    public static final int GAMEADMINCHANGEDMESSAGE_FIELD_NUMBER = 29;
    private de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage gameAdminChangedMessage_;
    /**
     * <code>optional .GameAdminChangedMessage gameAdminChangedMessage = 29;</code>
     * @return Whether the gameAdminChangedMessage field is set.
     */
    @java.lang.Override
    public boolean hasGameAdminChangedMessage() {
      return ((bitField0_ & 0x10000000) != 0);
    }
    /**
     * <code>optional .GameAdminChangedMessage gameAdminChangedMessage = 29;</code>
     * @return The gameAdminChangedMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage getGameAdminChangedMessage() {
      return gameAdminChangedMessage_ == null ? de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage.getDefaultInstance() : gameAdminChangedMessage_;
    }
    /**
     * <code>optional .GameAdminChangedMessage gameAdminChangedMessage = 29;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.GameAdminChangedMessageOrBuilder getGameAdminChangedMessageOrBuilder() {
      return gameAdminChangedMessage_ == null ? de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage.getDefaultInstance() : gameAdminChangedMessage_;
    }

    public static final int REMOVEDFROMGAMEMESSAGE_FIELD_NUMBER = 30;
    private de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage removedFromGameMessage_;
    /**
     * <code>optional .RemovedFromGameMessage removedFromGameMessage = 30;</code>
     * @return Whether the removedFromGameMessage field is set.
     */
    @java.lang.Override
    public boolean hasRemovedFromGameMessage() {
      return ((bitField0_ & 0x20000000) != 0);
    }
    /**
     * <code>optional .RemovedFromGameMessage removedFromGameMessage = 30;</code>
     * @return The removedFromGameMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage getRemovedFromGameMessage() {
      return removedFromGameMessage_ == null ? de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.getDefaultInstance() : removedFromGameMessage_;
    }
    /**
     * <code>optional .RemovedFromGameMessage removedFromGameMessage = 30;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.RemovedFromGameMessageOrBuilder getRemovedFromGameMessageOrBuilder() {
      return removedFromGameMessage_ == null ? de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.getDefaultInstance() : removedFromGameMessage_;
    }

    public static final int KICKPLAYERREQUESTMESSAGE_FIELD_NUMBER = 31;
    private de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage kickPlayerRequestMessage_;
    /**
     * <code>optional .KickPlayerRequestMessage kickPlayerRequestMessage = 31;</code>
     * @return Whether the kickPlayerRequestMessage field is set.
     */
    @java.lang.Override
    public boolean hasKickPlayerRequestMessage() {
      return ((bitField0_ & 0x40000000) != 0);
    }
    /**
     * <code>optional .KickPlayerRequestMessage kickPlayerRequestMessage = 31;</code>
     * @return The kickPlayerRequestMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage getKickPlayerRequestMessage() {
      return kickPlayerRequestMessage_ == null ? de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage.getDefaultInstance() : kickPlayerRequestMessage_;
    }
    /**
     * <code>optional .KickPlayerRequestMessage kickPlayerRequestMessage = 31;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessageOrBuilder getKickPlayerRequestMessageOrBuilder() {
      return kickPlayerRequestMessage_ == null ? de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage.getDefaultInstance() : kickPlayerRequestMessage_;
    }

    public static final int LEAVEGAMEREQUESTMESSAGE_FIELD_NUMBER = 32;
    private de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage leaveGameRequestMessage_;
    /**
     * <code>optional .LeaveGameRequestMessage leaveGameRequestMessage = 32;</code>
     * @return Whether the leaveGameRequestMessage field is set.
     */
    @java.lang.Override
    public boolean hasLeaveGameRequestMessage() {
      return ((bitField0_ & 0x80000000) != 0);
    }
    /**
     * <code>optional .LeaveGameRequestMessage leaveGameRequestMessage = 32;</code>
     * @return The leaveGameRequestMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage getLeaveGameRequestMessage() {
      return leaveGameRequestMessage_ == null ? de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage.getDefaultInstance() : leaveGameRequestMessage_;
    }
    /**
     * <code>optional .LeaveGameRequestMessage leaveGameRequestMessage = 32;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessageOrBuilder getLeaveGameRequestMessageOrBuilder() {
      return leaveGameRequestMessage_ == null ? de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage.getDefaultInstance() : leaveGameRequestMessage_;
    }

    public static final int INVITEPLAYERTOGAMEMESSAGE_FIELD_NUMBER = 33;
    private de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage invitePlayerToGameMessage_;
    /**
     * <code>optional .InvitePlayerToGameMessage invitePlayerToGameMessage = 33;</code>
     * @return Whether the invitePlayerToGameMessage field is set.
     */
    @java.lang.Override
    public boolean hasInvitePlayerToGameMessage() {
      return ((bitField1_ & 0x00000001) != 0);
    }
    /**
     * <code>optional .InvitePlayerToGameMessage invitePlayerToGameMessage = 33;</code>
     * @return The invitePlayerToGameMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage getInvitePlayerToGameMessage() {
      return invitePlayerToGameMessage_ == null ? de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage.getDefaultInstance() : invitePlayerToGameMessage_;
    }
    /**
     * <code>optional .InvitePlayerToGameMessage invitePlayerToGameMessage = 33;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessageOrBuilder getInvitePlayerToGameMessageOrBuilder() {
      return invitePlayerToGameMessage_ == null ? de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage.getDefaultInstance() : invitePlayerToGameMessage_;
    }

    public static final int INVITENOTIFYMESSAGE_FIELD_NUMBER = 34;
    private de.pokerth.protocol.ProtoBuf.InviteNotifyMessage inviteNotifyMessage_;
    /**
     * <code>optional .InviteNotifyMessage inviteNotifyMessage = 34;</code>
     * @return Whether the inviteNotifyMessage field is set.
     */
    @java.lang.Override
    public boolean hasInviteNotifyMessage() {
      return ((bitField1_ & 0x00000002) != 0);
    }
    /**
     * <code>optional .InviteNotifyMessage inviteNotifyMessage = 34;</code>
     * @return The inviteNotifyMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.InviteNotifyMessage getInviteNotifyMessage() {
      return inviteNotifyMessage_ == null ? de.pokerth.protocol.ProtoBuf.InviteNotifyMessage.getDefaultInstance() : inviteNotifyMessage_;
    }
    /**
     * <code>optional .InviteNotifyMessage inviteNotifyMessage = 34;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.InviteNotifyMessageOrBuilder getInviteNotifyMessageOrBuilder() {
      return inviteNotifyMessage_ == null ? de.pokerth.protocol.ProtoBuf.InviteNotifyMessage.getDefaultInstance() : inviteNotifyMessage_;
    }

    public static final int REJECTGAMEINVITATIONMESSAGE_FIELD_NUMBER = 35;
    private de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage rejectGameInvitationMessage_;
    /**
     * <code>optional .RejectGameInvitationMessage rejectGameInvitationMessage = 35;</code>
     * @return Whether the rejectGameInvitationMessage field is set.
     */
    @java.lang.Override
    public boolean hasRejectGameInvitationMessage() {
      return ((bitField1_ & 0x00000004) != 0);
    }
    /**
     * <code>optional .RejectGameInvitationMessage rejectGameInvitationMessage = 35;</code>
     * @return The rejectGameInvitationMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage getRejectGameInvitationMessage() {
      return rejectGameInvitationMessage_ == null ? de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.getDefaultInstance() : rejectGameInvitationMessage_;
    }
    /**
     * <code>optional .RejectGameInvitationMessage rejectGameInvitationMessage = 35;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessageOrBuilder getRejectGameInvitationMessageOrBuilder() {
      return rejectGameInvitationMessage_ == null ? de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.getDefaultInstance() : rejectGameInvitationMessage_;
    }

    public static final int REJECTINVNOTIFYMESSAGE_FIELD_NUMBER = 36;
    private de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage rejectInvNotifyMessage_;
    /**
     * <code>optional .RejectInvNotifyMessage rejectInvNotifyMessage = 36;</code>
     * @return Whether the rejectInvNotifyMessage field is set.
     */
    @java.lang.Override
    public boolean hasRejectInvNotifyMessage() {
      return ((bitField1_ & 0x00000008) != 0);
    }
    /**
     * <code>optional .RejectInvNotifyMessage rejectInvNotifyMessage = 36;</code>
     * @return The rejectInvNotifyMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage getRejectInvNotifyMessage() {
      return rejectInvNotifyMessage_ == null ? de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage.getDefaultInstance() : rejectInvNotifyMessage_;
    }
    /**
     * <code>optional .RejectInvNotifyMessage rejectInvNotifyMessage = 36;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessageOrBuilder getRejectInvNotifyMessageOrBuilder() {
      return rejectInvNotifyMessage_ == null ? de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage.getDefaultInstance() : rejectInvNotifyMessage_;
    }

    public static final int STARTEVENTMESSAGE_FIELD_NUMBER = 37;
    private de.pokerth.protocol.ProtoBuf.StartEventMessage startEventMessage_;
    /**
     * <code>optional .StartEventMessage startEventMessage = 37;</code>
     * @return Whether the startEventMessage field is set.
     */
    @java.lang.Override
    public boolean hasStartEventMessage() {
      return ((bitField1_ & 0x00000010) != 0);
    }
    /**
     * <code>optional .StartEventMessage startEventMessage = 37;</code>
     * @return The startEventMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.StartEventMessage getStartEventMessage() {
      return startEventMessage_ == null ? de.pokerth.protocol.ProtoBuf.StartEventMessage.getDefaultInstance() : startEventMessage_;
    }
    /**
     * <code>optional .StartEventMessage startEventMessage = 37;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.StartEventMessageOrBuilder getStartEventMessageOrBuilder() {
      return startEventMessage_ == null ? de.pokerth.protocol.ProtoBuf.StartEventMessage.getDefaultInstance() : startEventMessage_;
    }

    public static final int STARTEVENTACKMESSAGE_FIELD_NUMBER = 38;
    private de.pokerth.protocol.ProtoBuf.StartEventAckMessage startEventAckMessage_;
    /**
     * <code>optional .StartEventAckMessage startEventAckMessage = 38;</code>
     * @return Whether the startEventAckMessage field is set.
     */
    @java.lang.Override
    public boolean hasStartEventAckMessage() {
      return ((bitField1_ & 0x00000020) != 0);
    }
    /**
     * <code>optional .StartEventAckMessage startEventAckMessage = 38;</code>
     * @return The startEventAckMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.StartEventAckMessage getStartEventAckMessage() {
      return startEventAckMessage_ == null ? de.pokerth.protocol.ProtoBuf.StartEventAckMessage.getDefaultInstance() : startEventAckMessage_;
    }
    /**
     * <code>optional .StartEventAckMessage startEventAckMessage = 38;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.StartEventAckMessageOrBuilder getStartEventAckMessageOrBuilder() {
      return startEventAckMessage_ == null ? de.pokerth.protocol.ProtoBuf.StartEventAckMessage.getDefaultInstance() : startEventAckMessage_;
    }

    public static final int GAMESTARTINITIALMESSAGE_FIELD_NUMBER = 39;
    private de.pokerth.protocol.ProtoBuf.GameStartInitialMessage gameStartInitialMessage_;
    /**
     * <code>optional .GameStartInitialMessage gameStartInitialMessage = 39;</code>
     * @return Whether the gameStartInitialMessage field is set.
     */
    @java.lang.Override
    public boolean hasGameStartInitialMessage() {
      return ((bitField1_ & 0x00000040) != 0);
    }
    /**
     * <code>optional .GameStartInitialMessage gameStartInitialMessage = 39;</code>
     * @return The gameStartInitialMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.GameStartInitialMessage getGameStartInitialMessage() {
      return gameStartInitialMessage_ == null ? de.pokerth.protocol.ProtoBuf.GameStartInitialMessage.getDefaultInstance() : gameStartInitialMessage_;
    }
    /**
     * <code>optional .GameStartInitialMessage gameStartInitialMessage = 39;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.GameStartInitialMessageOrBuilder getGameStartInitialMessageOrBuilder() {
      return gameStartInitialMessage_ == null ? de.pokerth.protocol.ProtoBuf.GameStartInitialMessage.getDefaultInstance() : gameStartInitialMessage_;
    }

    public static final int GAMESTARTREJOINMESSAGE_FIELD_NUMBER = 40;
    private de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage gameStartRejoinMessage_;
    /**
     * <code>optional .GameStartRejoinMessage gameStartRejoinMessage = 40;</code>
     * @return Whether the gameStartRejoinMessage field is set.
     */
    @java.lang.Override
    public boolean hasGameStartRejoinMessage() {
      return ((bitField1_ & 0x00000080) != 0);
    }
    /**
     * <code>optional .GameStartRejoinMessage gameStartRejoinMessage = 40;</code>
     * @return The gameStartRejoinMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage getGameStartRejoinMessage() {
      return gameStartRejoinMessage_ == null ? de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.getDefaultInstance() : gameStartRejoinMessage_;
    }
    /**
     * <code>optional .GameStartRejoinMessage gameStartRejoinMessage = 40;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.GameStartRejoinMessageOrBuilder getGameStartRejoinMessageOrBuilder() {
      return gameStartRejoinMessage_ == null ? de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.getDefaultInstance() : gameStartRejoinMessage_;
    }

    public static final int HANDSTARTMESSAGE_FIELD_NUMBER = 41;
    private de.pokerth.protocol.ProtoBuf.HandStartMessage handStartMessage_;
    /**
     * <code>optional .HandStartMessage handStartMessage = 41;</code>
     * @return Whether the handStartMessage field is set.
     */
    @java.lang.Override
    public boolean hasHandStartMessage() {
      return ((bitField1_ & 0x00000100) != 0);
    }
    /**
     * <code>optional .HandStartMessage handStartMessage = 41;</code>
     * @return The handStartMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.HandStartMessage getHandStartMessage() {
      return handStartMessage_ == null ? de.pokerth.protocol.ProtoBuf.HandStartMessage.getDefaultInstance() : handStartMessage_;
    }
    /**
     * <code>optional .HandStartMessage handStartMessage = 41;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.HandStartMessageOrBuilder getHandStartMessageOrBuilder() {
      return handStartMessage_ == null ? de.pokerth.protocol.ProtoBuf.HandStartMessage.getDefaultInstance() : handStartMessage_;
    }

    public static final int PLAYERSTURNMESSAGE_FIELD_NUMBER = 42;
    private de.pokerth.protocol.ProtoBuf.PlayersTurnMessage playersTurnMessage_;
    /**
     * <code>optional .PlayersTurnMessage playersTurnMessage = 42;</code>
     * @return Whether the playersTurnMessage field is set.
     */
    @java.lang.Override
    public boolean hasPlayersTurnMessage() {
      return ((bitField1_ & 0x00000200) != 0);
    }
    /**
     * <code>optional .PlayersTurnMessage playersTurnMessage = 42;</code>
     * @return The playersTurnMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.PlayersTurnMessage getPlayersTurnMessage() {
      return playersTurnMessage_ == null ? de.pokerth.protocol.ProtoBuf.PlayersTurnMessage.getDefaultInstance() : playersTurnMessage_;
    }
    /**
     * <code>optional .PlayersTurnMessage playersTurnMessage = 42;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.PlayersTurnMessageOrBuilder getPlayersTurnMessageOrBuilder() {
      return playersTurnMessage_ == null ? de.pokerth.protocol.ProtoBuf.PlayersTurnMessage.getDefaultInstance() : playersTurnMessage_;
    }

    public static final int MYACTIONREQUESTMESSAGE_FIELD_NUMBER = 43;
    private de.pokerth.protocol.ProtoBuf.MyActionRequestMessage myActionRequestMessage_;
    /**
     * <code>optional .MyActionRequestMessage myActionRequestMessage = 43;</code>
     * @return Whether the myActionRequestMessage field is set.
     */
    @java.lang.Override
    public boolean hasMyActionRequestMessage() {
      return ((bitField1_ & 0x00000400) != 0);
    }
    /**
     * <code>optional .MyActionRequestMessage myActionRequestMessage = 43;</code>
     * @return The myActionRequestMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.MyActionRequestMessage getMyActionRequestMessage() {
      return myActionRequestMessage_ == null ? de.pokerth.protocol.ProtoBuf.MyActionRequestMessage.getDefaultInstance() : myActionRequestMessage_;
    }
    /**
     * <code>optional .MyActionRequestMessage myActionRequestMessage = 43;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.MyActionRequestMessageOrBuilder getMyActionRequestMessageOrBuilder() {
      return myActionRequestMessage_ == null ? de.pokerth.protocol.ProtoBuf.MyActionRequestMessage.getDefaultInstance() : myActionRequestMessage_;
    }

    public static final int YOURACTIONREJECTEDMESSAGE_FIELD_NUMBER = 44;
    private de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage yourActionRejectedMessage_;
    /**
     * <code>optional .YourActionRejectedMessage yourActionRejectedMessage = 44;</code>
     * @return Whether the yourActionRejectedMessage field is set.
     */
    @java.lang.Override
    public boolean hasYourActionRejectedMessage() {
      return ((bitField1_ & 0x00000800) != 0);
    }
    /**
     * <code>optional .YourActionRejectedMessage yourActionRejectedMessage = 44;</code>
     * @return The yourActionRejectedMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage getYourActionRejectedMessage() {
      return yourActionRejectedMessage_ == null ? de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.getDefaultInstance() : yourActionRejectedMessage_;
    }
    /**
     * <code>optional .YourActionRejectedMessage yourActionRejectedMessage = 44;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.YourActionRejectedMessageOrBuilder getYourActionRejectedMessageOrBuilder() {
      return yourActionRejectedMessage_ == null ? de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.getDefaultInstance() : yourActionRejectedMessage_;
    }

    public static final int PLAYERSACTIONDONEMESSAGE_FIELD_NUMBER = 45;
    private de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage playersActionDoneMessage_;
    /**
     * <code>optional .PlayersActionDoneMessage playersActionDoneMessage = 45;</code>
     * @return Whether the playersActionDoneMessage field is set.
     */
    @java.lang.Override
    public boolean hasPlayersActionDoneMessage() {
      return ((bitField1_ & 0x00001000) != 0);
    }
    /**
     * <code>optional .PlayersActionDoneMessage playersActionDoneMessage = 45;</code>
     * @return The playersActionDoneMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage getPlayersActionDoneMessage() {
      return playersActionDoneMessage_ == null ? de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage.getDefaultInstance() : playersActionDoneMessage_;
    }
    /**
     * <code>optional .PlayersActionDoneMessage playersActionDoneMessage = 45;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessageOrBuilder getPlayersActionDoneMessageOrBuilder() {
      return playersActionDoneMessage_ == null ? de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage.getDefaultInstance() : playersActionDoneMessage_;
    }

    public static final int DEALFLOPCARDSMESSAGE_FIELD_NUMBER = 46;
    private de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage dealFlopCardsMessage_;
    /**
     * <code>optional .DealFlopCardsMessage dealFlopCardsMessage = 46;</code>
     * @return Whether the dealFlopCardsMessage field is set.
     */
    @java.lang.Override
    public boolean hasDealFlopCardsMessage() {
      return ((bitField1_ & 0x00002000) != 0);
    }
    /**
     * <code>optional .DealFlopCardsMessage dealFlopCardsMessage = 46;</code>
     * @return The dealFlopCardsMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage getDealFlopCardsMessage() {
      return dealFlopCardsMessage_ == null ? de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage.getDefaultInstance() : dealFlopCardsMessage_;
    }
    /**
     * <code>optional .DealFlopCardsMessage dealFlopCardsMessage = 46;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.DealFlopCardsMessageOrBuilder getDealFlopCardsMessageOrBuilder() {
      return dealFlopCardsMessage_ == null ? de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage.getDefaultInstance() : dealFlopCardsMessage_;
    }

    public static final int DEALTURNCARDMESSAGE_FIELD_NUMBER = 47;
    private de.pokerth.protocol.ProtoBuf.DealTurnCardMessage dealTurnCardMessage_;
    /**
     * <code>optional .DealTurnCardMessage dealTurnCardMessage = 47;</code>
     * @return Whether the dealTurnCardMessage field is set.
     */
    @java.lang.Override
    public boolean hasDealTurnCardMessage() {
      return ((bitField1_ & 0x00004000) != 0);
    }
    /**
     * <code>optional .DealTurnCardMessage dealTurnCardMessage = 47;</code>
     * @return The dealTurnCardMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.DealTurnCardMessage getDealTurnCardMessage() {
      return dealTurnCardMessage_ == null ? de.pokerth.protocol.ProtoBuf.DealTurnCardMessage.getDefaultInstance() : dealTurnCardMessage_;
    }
    /**
     * <code>optional .DealTurnCardMessage dealTurnCardMessage = 47;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.DealTurnCardMessageOrBuilder getDealTurnCardMessageOrBuilder() {
      return dealTurnCardMessage_ == null ? de.pokerth.protocol.ProtoBuf.DealTurnCardMessage.getDefaultInstance() : dealTurnCardMessage_;
    }

    public static final int DEALRIVERCARDMESSAGE_FIELD_NUMBER = 48;
    private de.pokerth.protocol.ProtoBuf.DealRiverCardMessage dealRiverCardMessage_;
    /**
     * <code>optional .DealRiverCardMessage dealRiverCardMessage = 48;</code>
     * @return Whether the dealRiverCardMessage field is set.
     */
    @java.lang.Override
    public boolean hasDealRiverCardMessage() {
      return ((bitField1_ & 0x00008000) != 0);
    }
    /**
     * <code>optional .DealRiverCardMessage dealRiverCardMessage = 48;</code>
     * @return The dealRiverCardMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.DealRiverCardMessage getDealRiverCardMessage() {
      return dealRiverCardMessage_ == null ? de.pokerth.protocol.ProtoBuf.DealRiverCardMessage.getDefaultInstance() : dealRiverCardMessage_;
    }
    /**
     * <code>optional .DealRiverCardMessage dealRiverCardMessage = 48;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.DealRiverCardMessageOrBuilder getDealRiverCardMessageOrBuilder() {
      return dealRiverCardMessage_ == null ? de.pokerth.protocol.ProtoBuf.DealRiverCardMessage.getDefaultInstance() : dealRiverCardMessage_;
    }

    public static final int ALLINSHOWCARDSMESSAGE_FIELD_NUMBER = 49;
    private de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage allInShowCardsMessage_;
    /**
     * <code>optional .AllInShowCardsMessage allInShowCardsMessage = 49;</code>
     * @return Whether the allInShowCardsMessage field is set.
     */
    @java.lang.Override
    public boolean hasAllInShowCardsMessage() {
      return ((bitField1_ & 0x00010000) != 0);
    }
    /**
     * <code>optional .AllInShowCardsMessage allInShowCardsMessage = 49;</code>
     * @return The allInShowCardsMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage getAllInShowCardsMessage() {
      return allInShowCardsMessage_ == null ? de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.getDefaultInstance() : allInShowCardsMessage_;
    }
    /**
     * <code>optional .AllInShowCardsMessage allInShowCardsMessage = 49;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.AllInShowCardsMessageOrBuilder getAllInShowCardsMessageOrBuilder() {
      return allInShowCardsMessage_ == null ? de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.getDefaultInstance() : allInShowCardsMessage_;
    }

    public static final int ENDOFHANDSHOWCARDSMESSAGE_FIELD_NUMBER = 50;
    private de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage endOfHandShowCardsMessage_;
    /**
     * <code>optional .EndOfHandShowCardsMessage endOfHandShowCardsMessage = 50;</code>
     * @return Whether the endOfHandShowCardsMessage field is set.
     */
    @java.lang.Override
    public boolean hasEndOfHandShowCardsMessage() {
      return ((bitField1_ & 0x00020000) != 0);
    }
    /**
     * <code>optional .EndOfHandShowCardsMessage endOfHandShowCardsMessage = 50;</code>
     * @return The endOfHandShowCardsMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage getEndOfHandShowCardsMessage() {
      return endOfHandShowCardsMessage_ == null ? de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage.getDefaultInstance() : endOfHandShowCardsMessage_;
    }
    /**
     * <code>optional .EndOfHandShowCardsMessage endOfHandShowCardsMessage = 50;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessageOrBuilder getEndOfHandShowCardsMessageOrBuilder() {
      return endOfHandShowCardsMessage_ == null ? de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage.getDefaultInstance() : endOfHandShowCardsMessage_;
    }

    public static final int ENDOFHANDHIDECARDSMESSAGE_FIELD_NUMBER = 51;
    private de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage endOfHandHideCardsMessage_;
    /**
     * <code>optional .EndOfHandHideCardsMessage endOfHandHideCardsMessage = 51;</code>
     * @return Whether the endOfHandHideCardsMessage field is set.
     */
    @java.lang.Override
    public boolean hasEndOfHandHideCardsMessage() {
      return ((bitField1_ & 0x00040000) != 0);
    }
    /**
     * <code>optional .EndOfHandHideCardsMessage endOfHandHideCardsMessage = 51;</code>
     * @return The endOfHandHideCardsMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage getEndOfHandHideCardsMessage() {
      return endOfHandHideCardsMessage_ == null ? de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage.getDefaultInstance() : endOfHandHideCardsMessage_;
    }
    /**
     * <code>optional .EndOfHandHideCardsMessage endOfHandHideCardsMessage = 51;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessageOrBuilder getEndOfHandHideCardsMessageOrBuilder() {
      return endOfHandHideCardsMessage_ == null ? de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage.getDefaultInstance() : endOfHandHideCardsMessage_;
    }

    public static final int SHOWMYCARDSREQUESTMESSAGE_FIELD_NUMBER = 52;
    private de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage showMyCardsRequestMessage_;
    /**
     * <code>optional .ShowMyCardsRequestMessage showMyCardsRequestMessage = 52;</code>
     * @return Whether the showMyCardsRequestMessage field is set.
     */
    @java.lang.Override
    public boolean hasShowMyCardsRequestMessage() {
      return ((bitField1_ & 0x00080000) != 0);
    }
    /**
     * <code>optional .ShowMyCardsRequestMessage showMyCardsRequestMessage = 52;</code>
     * @return The showMyCardsRequestMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage getShowMyCardsRequestMessage() {
      return showMyCardsRequestMessage_ == null ? de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage.getDefaultInstance() : showMyCardsRequestMessage_;
    }
    /**
     * <code>optional .ShowMyCardsRequestMessage showMyCardsRequestMessage = 52;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessageOrBuilder getShowMyCardsRequestMessageOrBuilder() {
      return showMyCardsRequestMessage_ == null ? de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage.getDefaultInstance() : showMyCardsRequestMessage_;
    }

    public static final int AFTERHANDSHOWCARDSMESSAGE_FIELD_NUMBER = 53;
    private de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage afterHandShowCardsMessage_;
    /**
     * <code>optional .AfterHandShowCardsMessage afterHandShowCardsMessage = 53;</code>
     * @return Whether the afterHandShowCardsMessage field is set.
     */
    @java.lang.Override
    public boolean hasAfterHandShowCardsMessage() {
      return ((bitField1_ & 0x00100000) != 0);
    }
    /**
     * <code>optional .AfterHandShowCardsMessage afterHandShowCardsMessage = 53;</code>
     * @return The afterHandShowCardsMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage getAfterHandShowCardsMessage() {
      return afterHandShowCardsMessage_ == null ? de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage.getDefaultInstance() : afterHandShowCardsMessage_;
    }
    /**
     * <code>optional .AfterHandShowCardsMessage afterHandShowCardsMessage = 53;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessageOrBuilder getAfterHandShowCardsMessageOrBuilder() {
      return afterHandShowCardsMessage_ == null ? de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage.getDefaultInstance() : afterHandShowCardsMessage_;
    }

    public static final int ENDOFGAMEMESSAGE_FIELD_NUMBER = 54;
    private de.pokerth.protocol.ProtoBuf.EndOfGameMessage endOfGameMessage_;
    /**
     * <code>optional .EndOfGameMessage endOfGameMessage = 54;</code>
     * @return Whether the endOfGameMessage field is set.
     */
    @java.lang.Override
    public boolean hasEndOfGameMessage() {
      return ((bitField1_ & 0x00200000) != 0);
    }
    /**
     * <code>optional .EndOfGameMessage endOfGameMessage = 54;</code>
     * @return The endOfGameMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.EndOfGameMessage getEndOfGameMessage() {
      return endOfGameMessage_ == null ? de.pokerth.protocol.ProtoBuf.EndOfGameMessage.getDefaultInstance() : endOfGameMessage_;
    }
    /**
     * <code>optional .EndOfGameMessage endOfGameMessage = 54;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.EndOfGameMessageOrBuilder getEndOfGameMessageOrBuilder() {
      return endOfGameMessage_ == null ? de.pokerth.protocol.ProtoBuf.EndOfGameMessage.getDefaultInstance() : endOfGameMessage_;
    }

    public static final int PLAYERIDCHANGEDMESSAGE_FIELD_NUMBER = 55;
    private de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage playerIdChangedMessage_;
    /**
     * <code>optional .PlayerIdChangedMessage playerIdChangedMessage = 55;</code>
     * @return Whether the playerIdChangedMessage field is set.
     */
    @java.lang.Override
    public boolean hasPlayerIdChangedMessage() {
      return ((bitField1_ & 0x00400000) != 0);
    }
    /**
     * <code>optional .PlayerIdChangedMessage playerIdChangedMessage = 55;</code>
     * @return The playerIdChangedMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage getPlayerIdChangedMessage() {
      return playerIdChangedMessage_ == null ? de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage.getDefaultInstance() : playerIdChangedMessage_;
    }
    /**
     * <code>optional .PlayerIdChangedMessage playerIdChangedMessage = 55;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessageOrBuilder getPlayerIdChangedMessageOrBuilder() {
      return playerIdChangedMessage_ == null ? de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage.getDefaultInstance() : playerIdChangedMessage_;
    }

    public static final int ASKKICKPLAYERMESSAGE_FIELD_NUMBER = 56;
    private de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage askKickPlayerMessage_;
    /**
     * <code>optional .AskKickPlayerMessage askKickPlayerMessage = 56;</code>
     * @return Whether the askKickPlayerMessage field is set.
     */
    @java.lang.Override
    public boolean hasAskKickPlayerMessage() {
      return ((bitField1_ & 0x00800000) != 0);
    }
    /**
     * <code>optional .AskKickPlayerMessage askKickPlayerMessage = 56;</code>
     * @return The askKickPlayerMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage getAskKickPlayerMessage() {
      return askKickPlayerMessage_ == null ? de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage.getDefaultInstance() : askKickPlayerMessage_;
    }
    /**
     * <code>optional .AskKickPlayerMessage askKickPlayerMessage = 56;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.AskKickPlayerMessageOrBuilder getAskKickPlayerMessageOrBuilder() {
      return askKickPlayerMessage_ == null ? de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage.getDefaultInstance() : askKickPlayerMessage_;
    }

    public static final int ASKKICKDENIEDMESSAGE_FIELD_NUMBER = 57;
    private de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage askKickDeniedMessage_;
    /**
     * <code>optional .AskKickDeniedMessage askKickDeniedMessage = 57;</code>
     * @return Whether the askKickDeniedMessage field is set.
     */
    @java.lang.Override
    public boolean hasAskKickDeniedMessage() {
      return ((bitField1_ & 0x01000000) != 0);
    }
    /**
     * <code>optional .AskKickDeniedMessage askKickDeniedMessage = 57;</code>
     * @return The askKickDeniedMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage getAskKickDeniedMessage() {
      return askKickDeniedMessage_ == null ? de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.getDefaultInstance() : askKickDeniedMessage_;
    }
    /**
     * <code>optional .AskKickDeniedMessage askKickDeniedMessage = 57;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.AskKickDeniedMessageOrBuilder getAskKickDeniedMessageOrBuilder() {
      return askKickDeniedMessage_ == null ? de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.getDefaultInstance() : askKickDeniedMessage_;
    }

    public static final int STARTKICKPETITIONMESSAGE_FIELD_NUMBER = 58;
    private de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage startKickPetitionMessage_;
    /**
     * <code>optional .StartKickPetitionMessage startKickPetitionMessage = 58;</code>
     * @return Whether the startKickPetitionMessage field is set.
     */
    @java.lang.Override
    public boolean hasStartKickPetitionMessage() {
      return ((bitField1_ & 0x02000000) != 0);
    }
    /**
     * <code>optional .StartKickPetitionMessage startKickPetitionMessage = 58;</code>
     * @return The startKickPetitionMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage getStartKickPetitionMessage() {
      return startKickPetitionMessage_ == null ? de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage.getDefaultInstance() : startKickPetitionMessage_;
    }
    /**
     * <code>optional .StartKickPetitionMessage startKickPetitionMessage = 58;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.StartKickPetitionMessageOrBuilder getStartKickPetitionMessageOrBuilder() {
      return startKickPetitionMessage_ == null ? de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage.getDefaultInstance() : startKickPetitionMessage_;
    }

    public static final int VOTEKICKREQUESTMESSAGE_FIELD_NUMBER = 59;
    private de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage voteKickRequestMessage_;
    /**
     * <code>optional .VoteKickRequestMessage voteKickRequestMessage = 59;</code>
     * @return Whether the voteKickRequestMessage field is set.
     */
    @java.lang.Override
    public boolean hasVoteKickRequestMessage() {
      return ((bitField1_ & 0x04000000) != 0);
    }
    /**
     * <code>optional .VoteKickRequestMessage voteKickRequestMessage = 59;</code>
     * @return The voteKickRequestMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage getVoteKickRequestMessage() {
      return voteKickRequestMessage_ == null ? de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage.getDefaultInstance() : voteKickRequestMessage_;
    }
    /**
     * <code>optional .VoteKickRequestMessage voteKickRequestMessage = 59;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.VoteKickRequestMessageOrBuilder getVoteKickRequestMessageOrBuilder() {
      return voteKickRequestMessage_ == null ? de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage.getDefaultInstance() : voteKickRequestMessage_;
    }

    public static final int VOTEKICKREPLYMESSAGE_FIELD_NUMBER = 60;
    private de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage voteKickReplyMessage_;
    /**
     * <code>optional .VoteKickReplyMessage voteKickReplyMessage = 60;</code>
     * @return Whether the voteKickReplyMessage field is set.
     */
    @java.lang.Override
    public boolean hasVoteKickReplyMessage() {
      return ((bitField1_ & 0x08000000) != 0);
    }
    /**
     * <code>optional .VoteKickReplyMessage voteKickReplyMessage = 60;</code>
     * @return The voteKickReplyMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage getVoteKickReplyMessage() {
      return voteKickReplyMessage_ == null ? de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.getDefaultInstance() : voteKickReplyMessage_;
    }
    /**
     * <code>optional .VoteKickReplyMessage voteKickReplyMessage = 60;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.VoteKickReplyMessageOrBuilder getVoteKickReplyMessageOrBuilder() {
      return voteKickReplyMessage_ == null ? de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.getDefaultInstance() : voteKickReplyMessage_;
    }

    public static final int KICKPETITIONUPDATEMESSAGE_FIELD_NUMBER = 61;
    private de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage kickPetitionUpdateMessage_;
    /**
     * <code>optional .KickPetitionUpdateMessage kickPetitionUpdateMessage = 61;</code>
     * @return Whether the kickPetitionUpdateMessage field is set.
     */
    @java.lang.Override
    public boolean hasKickPetitionUpdateMessage() {
      return ((bitField1_ & 0x10000000) != 0);
    }
    /**
     * <code>optional .KickPetitionUpdateMessage kickPetitionUpdateMessage = 61;</code>
     * @return The kickPetitionUpdateMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage getKickPetitionUpdateMessage() {
      return kickPetitionUpdateMessage_ == null ? de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage.getDefaultInstance() : kickPetitionUpdateMessage_;
    }
    /**
     * <code>optional .KickPetitionUpdateMessage kickPetitionUpdateMessage = 61;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessageOrBuilder getKickPetitionUpdateMessageOrBuilder() {
      return kickPetitionUpdateMessage_ == null ? de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage.getDefaultInstance() : kickPetitionUpdateMessage_;
    }

    public static final int ENDKICKPETITIONMESSAGE_FIELD_NUMBER = 62;
    private de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage endKickPetitionMessage_;
    /**
     * <code>optional .EndKickPetitionMessage endKickPetitionMessage = 62;</code>
     * @return Whether the endKickPetitionMessage field is set.
     */
    @java.lang.Override
    public boolean hasEndKickPetitionMessage() {
      return ((bitField1_ & 0x20000000) != 0);
    }
    /**
     * <code>optional .EndKickPetitionMessage endKickPetitionMessage = 62;</code>
     * @return The endKickPetitionMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage getEndKickPetitionMessage() {
      return endKickPetitionMessage_ == null ? de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.getDefaultInstance() : endKickPetitionMessage_;
    }
    /**
     * <code>optional .EndKickPetitionMessage endKickPetitionMessage = 62;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.EndKickPetitionMessageOrBuilder getEndKickPetitionMessageOrBuilder() {
      return endKickPetitionMessage_ == null ? de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.getDefaultInstance() : endKickPetitionMessage_;
    }

    public static final int STATISTICSMESSAGE_FIELD_NUMBER = 63;
    private de.pokerth.protocol.ProtoBuf.StatisticsMessage statisticsMessage_;
    /**
     * <code>optional .StatisticsMessage statisticsMessage = 63;</code>
     * @return Whether the statisticsMessage field is set.
     */
    @java.lang.Override
    public boolean hasStatisticsMessage() {
      return ((bitField1_ & 0x40000000) != 0);
    }
    /**
     * <code>optional .StatisticsMessage statisticsMessage = 63;</code>
     * @return The statisticsMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.StatisticsMessage getStatisticsMessage() {
      return statisticsMessage_ == null ? de.pokerth.protocol.ProtoBuf.StatisticsMessage.getDefaultInstance() : statisticsMessage_;
    }
    /**
     * <code>optional .StatisticsMessage statisticsMessage = 63;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.StatisticsMessageOrBuilder getStatisticsMessageOrBuilder() {
      return statisticsMessage_ == null ? de.pokerth.protocol.ProtoBuf.StatisticsMessage.getDefaultInstance() : statisticsMessage_;
    }

    public static final int CHATREQUESTMESSAGE_FIELD_NUMBER = 64;
    private de.pokerth.protocol.ProtoBuf.ChatRequestMessage chatRequestMessage_;
    /**
     * <code>optional .ChatRequestMessage chatRequestMessage = 64;</code>
     * @return Whether the chatRequestMessage field is set.
     */
    @java.lang.Override
    public boolean hasChatRequestMessage() {
      return ((bitField1_ & 0x80000000) != 0);
    }
    /**
     * <code>optional .ChatRequestMessage chatRequestMessage = 64;</code>
     * @return The chatRequestMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.ChatRequestMessage getChatRequestMessage() {
      return chatRequestMessage_ == null ? de.pokerth.protocol.ProtoBuf.ChatRequestMessage.getDefaultInstance() : chatRequestMessage_;
    }
    /**
     * <code>optional .ChatRequestMessage chatRequestMessage = 64;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.ChatRequestMessageOrBuilder getChatRequestMessageOrBuilder() {
      return chatRequestMessage_ == null ? de.pokerth.protocol.ProtoBuf.ChatRequestMessage.getDefaultInstance() : chatRequestMessage_;
    }

    public static final int CHATMESSAGE_FIELD_NUMBER = 65;
    private de.pokerth.protocol.ProtoBuf.ChatMessage chatMessage_;
    /**
     * <code>optional .ChatMessage chatMessage = 65;</code>
     * @return Whether the chatMessage field is set.
     */
    @java.lang.Override
    public boolean hasChatMessage() {
      return ((bitField2_ & 0x00000001) != 0);
    }
    /**
     * <code>optional .ChatMessage chatMessage = 65;</code>
     * @return The chatMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.ChatMessage getChatMessage() {
      return chatMessage_ == null ? de.pokerth.protocol.ProtoBuf.ChatMessage.getDefaultInstance() : chatMessage_;
    }
    /**
     * <code>optional .ChatMessage chatMessage = 65;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.ChatMessageOrBuilder getChatMessageOrBuilder() {
      return chatMessage_ == null ? de.pokerth.protocol.ProtoBuf.ChatMessage.getDefaultInstance() : chatMessage_;
    }

    public static final int CHATREJECTMESSAGE_FIELD_NUMBER = 66;
    private de.pokerth.protocol.ProtoBuf.ChatRejectMessage chatRejectMessage_;
    /**
     * <code>optional .ChatRejectMessage chatRejectMessage = 66;</code>
     * @return Whether the chatRejectMessage field is set.
     */
    @java.lang.Override
    public boolean hasChatRejectMessage() {
      return ((bitField2_ & 0x00000002) != 0);
    }
    /**
     * <code>optional .ChatRejectMessage chatRejectMessage = 66;</code>
     * @return The chatRejectMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.ChatRejectMessage getChatRejectMessage() {
      return chatRejectMessage_ == null ? de.pokerth.protocol.ProtoBuf.ChatRejectMessage.getDefaultInstance() : chatRejectMessage_;
    }
    /**
     * <code>optional .ChatRejectMessage chatRejectMessage = 66;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.ChatRejectMessageOrBuilder getChatRejectMessageOrBuilder() {
      return chatRejectMessage_ == null ? de.pokerth.protocol.ProtoBuf.ChatRejectMessage.getDefaultInstance() : chatRejectMessage_;
    }

    public static final int DIALOGMESSAGE_FIELD_NUMBER = 67;
    private de.pokerth.protocol.ProtoBuf.DialogMessage dialogMessage_;
    /**
     * <code>optional .DialogMessage dialogMessage = 67;</code>
     * @return Whether the dialogMessage field is set.
     */
    @java.lang.Override
    public boolean hasDialogMessage() {
      return ((bitField2_ & 0x00000004) != 0);
    }
    /**
     * <code>optional .DialogMessage dialogMessage = 67;</code>
     * @return The dialogMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.DialogMessage getDialogMessage() {
      return dialogMessage_ == null ? de.pokerth.protocol.ProtoBuf.DialogMessage.getDefaultInstance() : dialogMessage_;
    }
    /**
     * <code>optional .DialogMessage dialogMessage = 67;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.DialogMessageOrBuilder getDialogMessageOrBuilder() {
      return dialogMessage_ == null ? de.pokerth.protocol.ProtoBuf.DialogMessage.getDefaultInstance() : dialogMessage_;
    }

    public static final int TIMEOUTWARNINGMESSAGE_FIELD_NUMBER = 68;
    private de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage timeoutWarningMessage_;
    /**
     * <code>optional .TimeoutWarningMessage timeoutWarningMessage = 68;</code>
     * @return Whether the timeoutWarningMessage field is set.
     */
    @java.lang.Override
    public boolean hasTimeoutWarningMessage() {
      return ((bitField2_ & 0x00000008) != 0);
    }
    /**
     * <code>optional .TimeoutWarningMessage timeoutWarningMessage = 68;</code>
     * @return The timeoutWarningMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage getTimeoutWarningMessage() {
      return timeoutWarningMessage_ == null ? de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.getDefaultInstance() : timeoutWarningMessage_;
    }
    /**
     * <code>optional .TimeoutWarningMessage timeoutWarningMessage = 68;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.TimeoutWarningMessageOrBuilder getTimeoutWarningMessageOrBuilder() {
      return timeoutWarningMessage_ == null ? de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.getDefaultInstance() : timeoutWarningMessage_;
    }

    public static final int RESETTIMEOUTMESSAGE_FIELD_NUMBER = 69;
    private de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage resetTimeoutMessage_;
    /**
     * <code>optional .ResetTimeoutMessage resetTimeoutMessage = 69;</code>
     * @return Whether the resetTimeoutMessage field is set.
     */
    @java.lang.Override
    public boolean hasResetTimeoutMessage() {
      return ((bitField2_ & 0x00000010) != 0);
    }
    /**
     * <code>optional .ResetTimeoutMessage resetTimeoutMessage = 69;</code>
     * @return The resetTimeoutMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage getResetTimeoutMessage() {
      return resetTimeoutMessage_ == null ? de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage.getDefaultInstance() : resetTimeoutMessage_;
    }
    /**
     * <code>optional .ResetTimeoutMessage resetTimeoutMessage = 69;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.ResetTimeoutMessageOrBuilder getResetTimeoutMessageOrBuilder() {
      return resetTimeoutMessage_ == null ? de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage.getDefaultInstance() : resetTimeoutMessage_;
    }

    public static final int REPORTAVATARMESSAGE_FIELD_NUMBER = 70;
    private de.pokerth.protocol.ProtoBuf.ReportAvatarMessage reportAvatarMessage_;
    /**
     * <code>optional .ReportAvatarMessage reportAvatarMessage = 70;</code>
     * @return Whether the reportAvatarMessage field is set.
     */
    @java.lang.Override
    public boolean hasReportAvatarMessage() {
      return ((bitField2_ & 0x00000020) != 0);
    }
    /**
     * <code>optional .ReportAvatarMessage reportAvatarMessage = 70;</code>
     * @return The reportAvatarMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.ReportAvatarMessage getReportAvatarMessage() {
      return reportAvatarMessage_ == null ? de.pokerth.protocol.ProtoBuf.ReportAvatarMessage.getDefaultInstance() : reportAvatarMessage_;
    }
    /**
     * <code>optional .ReportAvatarMessage reportAvatarMessage = 70;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.ReportAvatarMessageOrBuilder getReportAvatarMessageOrBuilder() {
      return reportAvatarMessage_ == null ? de.pokerth.protocol.ProtoBuf.ReportAvatarMessage.getDefaultInstance() : reportAvatarMessage_;
    }

    public static final int REPORTAVATARACKMESSAGE_FIELD_NUMBER = 71;
    private de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage reportAvatarAckMessage_;
    /**
     * <code>optional .ReportAvatarAckMessage reportAvatarAckMessage = 71;</code>
     * @return Whether the reportAvatarAckMessage field is set.
     */
    @java.lang.Override
    public boolean hasReportAvatarAckMessage() {
      return ((bitField2_ & 0x00000040) != 0);
    }
    /**
     * <code>optional .ReportAvatarAckMessage reportAvatarAckMessage = 71;</code>
     * @return The reportAvatarAckMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage getReportAvatarAckMessage() {
      return reportAvatarAckMessage_ == null ? de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.getDefaultInstance() : reportAvatarAckMessage_;
    }
    /**
     * <code>optional .ReportAvatarAckMessage reportAvatarAckMessage = 71;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessageOrBuilder getReportAvatarAckMessageOrBuilder() {
      return reportAvatarAckMessage_ == null ? de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.getDefaultInstance() : reportAvatarAckMessage_;
    }

    public static final int REPORTGAMEMESSAGE_FIELD_NUMBER = 72;
    private de.pokerth.protocol.ProtoBuf.ReportGameMessage reportGameMessage_;
    /**
     * <code>optional .ReportGameMessage reportGameMessage = 72;</code>
     * @return Whether the reportGameMessage field is set.
     */
    @java.lang.Override
    public boolean hasReportGameMessage() {
      return ((bitField2_ & 0x00000080) != 0);
    }
    /**
     * <code>optional .ReportGameMessage reportGameMessage = 72;</code>
     * @return The reportGameMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.ReportGameMessage getReportGameMessage() {
      return reportGameMessage_ == null ? de.pokerth.protocol.ProtoBuf.ReportGameMessage.getDefaultInstance() : reportGameMessage_;
    }
    /**
     * <code>optional .ReportGameMessage reportGameMessage = 72;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.ReportGameMessageOrBuilder getReportGameMessageOrBuilder() {
      return reportGameMessage_ == null ? de.pokerth.protocol.ProtoBuf.ReportGameMessage.getDefaultInstance() : reportGameMessage_;
    }

    public static final int REPORTGAMEACKMESSAGE_FIELD_NUMBER = 73;
    private de.pokerth.protocol.ProtoBuf.ReportGameAckMessage reportGameAckMessage_;
    /**
     * <code>optional .ReportGameAckMessage reportGameAckMessage = 73;</code>
     * @return Whether the reportGameAckMessage field is set.
     */
    @java.lang.Override
    public boolean hasReportGameAckMessage() {
      return ((bitField2_ & 0x00000100) != 0);
    }
    /**
     * <code>optional .ReportGameAckMessage reportGameAckMessage = 73;</code>
     * @return The reportGameAckMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.ReportGameAckMessage getReportGameAckMessage() {
      return reportGameAckMessage_ == null ? de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.getDefaultInstance() : reportGameAckMessage_;
    }
    /**
     * <code>optional .ReportGameAckMessage reportGameAckMessage = 73;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.ReportGameAckMessageOrBuilder getReportGameAckMessageOrBuilder() {
      return reportGameAckMessage_ == null ? de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.getDefaultInstance() : reportGameAckMessage_;
    }

    public static final int ERRORMESSAGE_FIELD_NUMBER = 74;
    private de.pokerth.protocol.ProtoBuf.ErrorMessage errorMessage_;
    /**
     * <code>optional .ErrorMessage errorMessage = 74;</code>
     * @return Whether the errorMessage field is set.
     */
    @java.lang.Override
    public boolean hasErrorMessage() {
      return ((bitField2_ & 0x00000200) != 0);
    }
    /**
     * <code>optional .ErrorMessage errorMessage = 74;</code>
     * @return The errorMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.ErrorMessage getErrorMessage() {
      return errorMessage_ == null ? de.pokerth.protocol.ProtoBuf.ErrorMessage.getDefaultInstance() : errorMessage_;
    }
    /**
     * <code>optional .ErrorMessage errorMessage = 74;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.ErrorMessageOrBuilder getErrorMessageOrBuilder() {
      return errorMessage_ == null ? de.pokerth.protocol.ProtoBuf.ErrorMessage.getDefaultInstance() : errorMessage_;
    }

    public static final int ADMINREMOVEGAMEMESSAGE_FIELD_NUMBER = 75;
    private de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage adminRemoveGameMessage_;
    /**
     * <code>optional .AdminRemoveGameMessage adminRemoveGameMessage = 75;</code>
     * @return Whether the adminRemoveGameMessage field is set.
     */
    @java.lang.Override
    public boolean hasAdminRemoveGameMessage() {
      return ((bitField2_ & 0x00000400) != 0);
    }
    /**
     * <code>optional .AdminRemoveGameMessage adminRemoveGameMessage = 75;</code>
     * @return The adminRemoveGameMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage getAdminRemoveGameMessage() {
      return adminRemoveGameMessage_ == null ? de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage.getDefaultInstance() : adminRemoveGameMessage_;
    }
    /**
     * <code>optional .AdminRemoveGameMessage adminRemoveGameMessage = 75;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessageOrBuilder getAdminRemoveGameMessageOrBuilder() {
      return adminRemoveGameMessage_ == null ? de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage.getDefaultInstance() : adminRemoveGameMessage_;
    }

    public static final int ADMINREMOVEGAMEACKMESSAGE_FIELD_NUMBER = 76;
    private de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage adminRemoveGameAckMessage_;
    /**
     * <code>optional .AdminRemoveGameAckMessage adminRemoveGameAckMessage = 76;</code>
     * @return Whether the adminRemoveGameAckMessage field is set.
     */
    @java.lang.Override
    public boolean hasAdminRemoveGameAckMessage() {
      return ((bitField2_ & 0x00000800) != 0);
    }
    /**
     * <code>optional .AdminRemoveGameAckMessage adminRemoveGameAckMessage = 76;</code>
     * @return The adminRemoveGameAckMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage getAdminRemoveGameAckMessage() {
      return adminRemoveGameAckMessage_ == null ? de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.getDefaultInstance() : adminRemoveGameAckMessage_;
    }
    /**
     * <code>optional .AdminRemoveGameAckMessage adminRemoveGameAckMessage = 76;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessageOrBuilder getAdminRemoveGameAckMessageOrBuilder() {
      return adminRemoveGameAckMessage_ == null ? de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.getDefaultInstance() : adminRemoveGameAckMessage_;
    }

    public static final int ADMINBANPLAYERMESSAGE_FIELD_NUMBER = 77;
    private de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage adminBanPlayerMessage_;
    /**
     * <code>optional .AdminBanPlayerMessage adminBanPlayerMessage = 77;</code>
     * @return Whether the adminBanPlayerMessage field is set.
     */
    @java.lang.Override
    public boolean hasAdminBanPlayerMessage() {
      return ((bitField2_ & 0x00001000) != 0);
    }
    /**
     * <code>optional .AdminBanPlayerMessage adminBanPlayerMessage = 77;</code>
     * @return The adminBanPlayerMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage getAdminBanPlayerMessage() {
      return adminBanPlayerMessage_ == null ? de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage.getDefaultInstance() : adminBanPlayerMessage_;
    }
    /**
     * <code>optional .AdminBanPlayerMessage adminBanPlayerMessage = 77;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessageOrBuilder getAdminBanPlayerMessageOrBuilder() {
      return adminBanPlayerMessage_ == null ? de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage.getDefaultInstance() : adminBanPlayerMessage_;
    }

    public static final int ADMINBANPLAYERACKMESSAGE_FIELD_NUMBER = 78;
    private de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage adminBanPlayerAckMessage_;
    /**
     * <code>optional .AdminBanPlayerAckMessage adminBanPlayerAckMessage = 78;</code>
     * @return Whether the adminBanPlayerAckMessage field is set.
     */
    @java.lang.Override
    public boolean hasAdminBanPlayerAckMessage() {
      return ((bitField2_ & 0x00002000) != 0);
    }
    /**
     * <code>optional .AdminBanPlayerAckMessage adminBanPlayerAckMessage = 78;</code>
     * @return The adminBanPlayerAckMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage getAdminBanPlayerAckMessage() {
      return adminBanPlayerAckMessage_ == null ? de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.getDefaultInstance() : adminBanPlayerAckMessage_;
    }
    /**
     * <code>optional .AdminBanPlayerAckMessage adminBanPlayerAckMessage = 78;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessageOrBuilder getAdminBanPlayerAckMessageOrBuilder() {
      return adminBanPlayerAckMessage_ == null ? de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.getDefaultInstance() : adminBanPlayerAckMessage_;
    }

    public static final int GAMELISTSPECTATORJOINEDMESSAGE_FIELD_NUMBER = 79;
    private de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage gameListSpectatorJoinedMessage_;
    /**
     * <code>optional .GameListSpectatorJoinedMessage gameListSpectatorJoinedMessage = 79;</code>
     * @return Whether the gameListSpectatorJoinedMessage field is set.
     */
    @java.lang.Override
    public boolean hasGameListSpectatorJoinedMessage() {
      return ((bitField2_ & 0x00004000) != 0);
    }
    /**
     * <code>optional .GameListSpectatorJoinedMessage gameListSpectatorJoinedMessage = 79;</code>
     * @return The gameListSpectatorJoinedMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage getGameListSpectatorJoinedMessage() {
      return gameListSpectatorJoinedMessage_ == null ? de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage.getDefaultInstance() : gameListSpectatorJoinedMessage_;
    }
    /**
     * <code>optional .GameListSpectatorJoinedMessage gameListSpectatorJoinedMessage = 79;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessageOrBuilder getGameListSpectatorJoinedMessageOrBuilder() {
      return gameListSpectatorJoinedMessage_ == null ? de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage.getDefaultInstance() : gameListSpectatorJoinedMessage_;
    }

    public static final int GAMELISTSPECTATORLEFTMESSAGE_FIELD_NUMBER = 80;
    private de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage gameListSpectatorLeftMessage_;
    /**
     * <code>optional .GameListSpectatorLeftMessage gameListSpectatorLeftMessage = 80;</code>
     * @return Whether the gameListSpectatorLeftMessage field is set.
     */
    @java.lang.Override
    public boolean hasGameListSpectatorLeftMessage() {
      return ((bitField2_ & 0x00008000) != 0);
    }
    /**
     * <code>optional .GameListSpectatorLeftMessage gameListSpectatorLeftMessage = 80;</code>
     * @return The gameListSpectatorLeftMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage getGameListSpectatorLeftMessage() {
      return gameListSpectatorLeftMessage_ == null ? de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage.getDefaultInstance() : gameListSpectatorLeftMessage_;
    }
    /**
     * <code>optional .GameListSpectatorLeftMessage gameListSpectatorLeftMessage = 80;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessageOrBuilder getGameListSpectatorLeftMessageOrBuilder() {
      return gameListSpectatorLeftMessage_ == null ? de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage.getDefaultInstance() : gameListSpectatorLeftMessage_;
    }

    public static final int GAMESPECTATORJOINEDMESSAGE_FIELD_NUMBER = 81;
    private de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage gameSpectatorJoinedMessage_;
    /**
     * <code>optional .GameSpectatorJoinedMessage gameSpectatorJoinedMessage = 81;</code>
     * @return Whether the gameSpectatorJoinedMessage field is set.
     */
    @java.lang.Override
    public boolean hasGameSpectatorJoinedMessage() {
      return ((bitField2_ & 0x00010000) != 0);
    }
    /**
     * <code>optional .GameSpectatorJoinedMessage gameSpectatorJoinedMessage = 81;</code>
     * @return The gameSpectatorJoinedMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage getGameSpectatorJoinedMessage() {
      return gameSpectatorJoinedMessage_ == null ? de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage.getDefaultInstance() : gameSpectatorJoinedMessage_;
    }
    /**
     * <code>optional .GameSpectatorJoinedMessage gameSpectatorJoinedMessage = 81;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessageOrBuilder getGameSpectatorJoinedMessageOrBuilder() {
      return gameSpectatorJoinedMessage_ == null ? de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage.getDefaultInstance() : gameSpectatorJoinedMessage_;
    }

    public static final int GAMESPECTATORLEFTMESSAGE_FIELD_NUMBER = 82;
    private de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage gameSpectatorLeftMessage_;
    /**
     * <code>optional .GameSpectatorLeftMessage gameSpectatorLeftMessage = 82;</code>
     * @return Whether the gameSpectatorLeftMessage field is set.
     */
    @java.lang.Override
    public boolean hasGameSpectatorLeftMessage() {
      return ((bitField2_ & 0x00020000) != 0);
    }
    /**
     * <code>optional .GameSpectatorLeftMessage gameSpectatorLeftMessage = 82;</code>
     * @return The gameSpectatorLeftMessage.
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage getGameSpectatorLeftMessage() {
      return gameSpectatorLeftMessage_ == null ? de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage.getDefaultInstance() : gameSpectatorLeftMessage_;
    }
    /**
     * <code>optional .GameSpectatorLeftMessage gameSpectatorLeftMessage = 82;</code>
     */
    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessageOrBuilder getGameSpectatorLeftMessageOrBuilder() {
      return gameSpectatorLeftMessage_ == null ? de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage.getDefaultInstance() : gameSpectatorLeftMessage_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasMessageType()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (hasAnnounceMessage()) {
        if (!getAnnounceMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasInitMessage()) {
        if (!getInitMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasAuthServerChallengeMessage()) {
        if (!getAuthServerChallengeMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasAuthClientResponseMessage()) {
        if (!getAuthClientResponseMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasAuthServerVerificationMessage()) {
        if (!getAuthServerVerificationMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasInitAckMessage()) {
        if (!getInitAckMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasAvatarRequestMessage()) {
        if (!getAvatarRequestMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasAvatarHeaderMessage()) {
        if (!getAvatarHeaderMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasAvatarDataMessage()) {
        if (!getAvatarDataMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasAvatarEndMessage()) {
        if (!getAvatarEndMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasUnknownAvatarMessage()) {
        if (!getUnknownAvatarMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasPlayerListMessage()) {
        if (!getPlayerListMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasGameListNewMessage()) {
        if (!getGameListNewMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasGameListUpdateMessage()) {
        if (!getGameListUpdateMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasGameListPlayerJoinedMessage()) {
        if (!getGameListPlayerJoinedMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasGameListPlayerLeftMessage()) {
        if (!getGameListPlayerLeftMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasGameListAdminChangedMessage()) {
        if (!getGameListAdminChangedMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasPlayerInfoReplyMessage()) {
        if (!getPlayerInfoReplyMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasSubscriptionRequestMessage()) {
        if (!getSubscriptionRequestMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasJoinExistingGameMessage()) {
        if (!getJoinExistingGameMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasJoinNewGameMessage()) {
        if (!getJoinNewGameMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasRejoinExistingGameMessage()) {
        if (!getRejoinExistingGameMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasJoinGameAckMessage()) {
        if (!getJoinGameAckMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasJoinGameFailedMessage()) {
        if (!getJoinGameFailedMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasGamePlayerJoinedMessage()) {
        if (!getGamePlayerJoinedMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasGamePlayerLeftMessage()) {
        if (!getGamePlayerLeftMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasGameAdminChangedMessage()) {
        if (!getGameAdminChangedMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasRemovedFromGameMessage()) {
        if (!getRemovedFromGameMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasKickPlayerRequestMessage()) {
        if (!getKickPlayerRequestMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasLeaveGameRequestMessage()) {
        if (!getLeaveGameRequestMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasInvitePlayerToGameMessage()) {
        if (!getInvitePlayerToGameMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasInviteNotifyMessage()) {
        if (!getInviteNotifyMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasRejectGameInvitationMessage()) {
        if (!getRejectGameInvitationMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasRejectInvNotifyMessage()) {
        if (!getRejectInvNotifyMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasStartEventMessage()) {
        if (!getStartEventMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasStartEventAckMessage()) {
        if (!getStartEventAckMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasGameStartInitialMessage()) {
        if (!getGameStartInitialMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasGameStartRejoinMessage()) {
        if (!getGameStartRejoinMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasHandStartMessage()) {
        if (!getHandStartMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasPlayersTurnMessage()) {
        if (!getPlayersTurnMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasMyActionRequestMessage()) {
        if (!getMyActionRequestMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasYourActionRejectedMessage()) {
        if (!getYourActionRejectedMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasPlayersActionDoneMessage()) {
        if (!getPlayersActionDoneMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasDealFlopCardsMessage()) {
        if (!getDealFlopCardsMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasDealTurnCardMessage()) {
        if (!getDealTurnCardMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasDealRiverCardMessage()) {
        if (!getDealRiverCardMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasAllInShowCardsMessage()) {
        if (!getAllInShowCardsMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasEndOfHandShowCardsMessage()) {
        if (!getEndOfHandShowCardsMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasEndOfHandHideCardsMessage()) {
        if (!getEndOfHandHideCardsMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasAfterHandShowCardsMessage()) {
        if (!getAfterHandShowCardsMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasEndOfGameMessage()) {
        if (!getEndOfGameMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasPlayerIdChangedMessage()) {
        if (!getPlayerIdChangedMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasAskKickPlayerMessage()) {
        if (!getAskKickPlayerMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasAskKickDeniedMessage()) {
        if (!getAskKickDeniedMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasStartKickPetitionMessage()) {
        if (!getStartKickPetitionMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasVoteKickRequestMessage()) {
        if (!getVoteKickRequestMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasVoteKickReplyMessage()) {
        if (!getVoteKickReplyMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasKickPetitionUpdateMessage()) {
        if (!getKickPetitionUpdateMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasEndKickPetitionMessage()) {
        if (!getEndKickPetitionMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasStatisticsMessage()) {
        if (!getStatisticsMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasChatRequestMessage()) {
        if (!getChatRequestMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasChatMessage()) {
        if (!getChatMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasChatRejectMessage()) {
        if (!getChatRejectMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasDialogMessage()) {
        if (!getDialogMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasTimeoutWarningMessage()) {
        if (!getTimeoutWarningMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasReportAvatarMessage()) {
        if (!getReportAvatarMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasReportAvatarAckMessage()) {
        if (!getReportAvatarAckMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasReportGameMessage()) {
        if (!getReportGameMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasReportGameAckMessage()) {
        if (!getReportGameAckMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasErrorMessage()) {
        if (!getErrorMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasAdminRemoveGameMessage()) {
        if (!getAdminRemoveGameMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasAdminRemoveGameAckMessage()) {
        if (!getAdminRemoveGameAckMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasAdminBanPlayerMessage()) {
        if (!getAdminBanPlayerMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasAdminBanPlayerAckMessage()) {
        if (!getAdminBanPlayerAckMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasGameListSpectatorJoinedMessage()) {
        if (!getGameListSpectatorJoinedMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasGameListSpectatorLeftMessage()) {
        if (!getGameListSpectatorLeftMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasGameSpectatorJoinedMessage()) {
        if (!getGameSpectatorJoinedMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasGameSpectatorLeftMessage()) {
        if (!getGameSpectatorLeftMessage().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeEnum(1, messageType_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeMessage(2, getAnnounceMessage());
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeMessage(3, getInitMessage());
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeMessage(4, getAuthServerChallengeMessage());
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeMessage(5, getAuthClientResponseMessage());
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        output.writeMessage(6, getAuthServerVerificationMessage());
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        output.writeMessage(7, getInitAckMessage());
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        output.writeMessage(8, getAvatarRequestMessage());
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        output.writeMessage(9, getAvatarHeaderMessage());
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        output.writeMessage(10, getAvatarDataMessage());
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        output.writeMessage(11, getAvatarEndMessage());
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        output.writeMessage(12, getUnknownAvatarMessage());
      }
      if (((bitField0_ & 0x00001000) != 0)) {
        output.writeMessage(13, getPlayerListMessage());
      }
      if (((bitField0_ & 0x00002000) != 0)) {
        output.writeMessage(14, getGameListNewMessage());
      }
      if (((bitField0_ & 0x00004000) != 0)) {
        output.writeMessage(15, getGameListUpdateMessage());
      }
      if (((bitField0_ & 0x00008000) != 0)) {
        output.writeMessage(16, getGameListPlayerJoinedMessage());
      }
      if (((bitField0_ & 0x00010000) != 0)) {
        output.writeMessage(17, getGameListPlayerLeftMessage());
      }
      if (((bitField0_ & 0x00020000) != 0)) {
        output.writeMessage(18, getGameListAdminChangedMessage());
      }
      if (((bitField0_ & 0x00040000) != 0)) {
        output.writeMessage(19, getPlayerInfoRequestMessage());
      }
      if (((bitField0_ & 0x00080000) != 0)) {
        output.writeMessage(20, getPlayerInfoReplyMessage());
      }
      if (((bitField0_ & 0x00100000) != 0)) {
        output.writeMessage(21, getSubscriptionRequestMessage());
      }
      if (((bitField0_ & 0x00200000) != 0)) {
        output.writeMessage(22, getJoinExistingGameMessage());
      }
      if (((bitField0_ & 0x00400000) != 0)) {
        output.writeMessage(23, getJoinNewGameMessage());
      }
      if (((bitField0_ & 0x00800000) != 0)) {
        output.writeMessage(24, getRejoinExistingGameMessage());
      }
      if (((bitField0_ & 0x01000000) != 0)) {
        output.writeMessage(25, getJoinGameAckMessage());
      }
      if (((bitField0_ & 0x02000000) != 0)) {
        output.writeMessage(26, getJoinGameFailedMessage());
      }
      if (((bitField0_ & 0x04000000) != 0)) {
        output.writeMessage(27, getGamePlayerJoinedMessage());
      }
      if (((bitField0_ & 0x08000000) != 0)) {
        output.writeMessage(28, getGamePlayerLeftMessage());
      }
      if (((bitField0_ & 0x10000000) != 0)) {
        output.writeMessage(29, getGameAdminChangedMessage());
      }
      if (((bitField0_ & 0x20000000) != 0)) {
        output.writeMessage(30, getRemovedFromGameMessage());
      }
      if (((bitField0_ & 0x40000000) != 0)) {
        output.writeMessage(31, getKickPlayerRequestMessage());
      }
      if (((bitField0_ & 0x80000000) != 0)) {
        output.writeMessage(32, getLeaveGameRequestMessage());
      }
      if (((bitField1_ & 0x00000001) != 0)) {
        output.writeMessage(33, getInvitePlayerToGameMessage());
      }
      if (((bitField1_ & 0x00000002) != 0)) {
        output.writeMessage(34, getInviteNotifyMessage());
      }
      if (((bitField1_ & 0x00000004) != 0)) {
        output.writeMessage(35, getRejectGameInvitationMessage());
      }
      if (((bitField1_ & 0x00000008) != 0)) {
        output.writeMessage(36, getRejectInvNotifyMessage());
      }
      if (((bitField1_ & 0x00000010) != 0)) {
        output.writeMessage(37, getStartEventMessage());
      }
      if (((bitField1_ & 0x00000020) != 0)) {
        output.writeMessage(38, getStartEventAckMessage());
      }
      if (((bitField1_ & 0x00000040) != 0)) {
        output.writeMessage(39, getGameStartInitialMessage());
      }
      if (((bitField1_ & 0x00000080) != 0)) {
        output.writeMessage(40, getGameStartRejoinMessage());
      }
      if (((bitField1_ & 0x00000100) != 0)) {
        output.writeMessage(41, getHandStartMessage());
      }
      if (((bitField1_ & 0x00000200) != 0)) {
        output.writeMessage(42, getPlayersTurnMessage());
      }
      if (((bitField1_ & 0x00000400) != 0)) {
        output.writeMessage(43, getMyActionRequestMessage());
      }
      if (((bitField1_ & 0x00000800) != 0)) {
        output.writeMessage(44, getYourActionRejectedMessage());
      }
      if (((bitField1_ & 0x00001000) != 0)) {
        output.writeMessage(45, getPlayersActionDoneMessage());
      }
      if (((bitField1_ & 0x00002000) != 0)) {
        output.writeMessage(46, getDealFlopCardsMessage());
      }
      if (((bitField1_ & 0x00004000) != 0)) {
        output.writeMessage(47, getDealTurnCardMessage());
      }
      if (((bitField1_ & 0x00008000) != 0)) {
        output.writeMessage(48, getDealRiverCardMessage());
      }
      if (((bitField1_ & 0x00010000) != 0)) {
        output.writeMessage(49, getAllInShowCardsMessage());
      }
      if (((bitField1_ & 0x00020000) != 0)) {
        output.writeMessage(50, getEndOfHandShowCardsMessage());
      }
      if (((bitField1_ & 0x00040000) != 0)) {
        output.writeMessage(51, getEndOfHandHideCardsMessage());
      }
      if (((bitField1_ & 0x00080000) != 0)) {
        output.writeMessage(52, getShowMyCardsRequestMessage());
      }
      if (((bitField1_ & 0x00100000) != 0)) {
        output.writeMessage(53, getAfterHandShowCardsMessage());
      }
      if (((bitField1_ & 0x00200000) != 0)) {
        output.writeMessage(54, getEndOfGameMessage());
      }
      if (((bitField1_ & 0x00400000) != 0)) {
        output.writeMessage(55, getPlayerIdChangedMessage());
      }
      if (((bitField1_ & 0x00800000) != 0)) {
        output.writeMessage(56, getAskKickPlayerMessage());
      }
      if (((bitField1_ & 0x01000000) != 0)) {
        output.writeMessage(57, getAskKickDeniedMessage());
      }
      if (((bitField1_ & 0x02000000) != 0)) {
        output.writeMessage(58, getStartKickPetitionMessage());
      }
      if (((bitField1_ & 0x04000000) != 0)) {
        output.writeMessage(59, getVoteKickRequestMessage());
      }
      if (((bitField1_ & 0x08000000) != 0)) {
        output.writeMessage(60, getVoteKickReplyMessage());
      }
      if (((bitField1_ & 0x10000000) != 0)) {
        output.writeMessage(61, getKickPetitionUpdateMessage());
      }
      if (((bitField1_ & 0x20000000) != 0)) {
        output.writeMessage(62, getEndKickPetitionMessage());
      }
      if (((bitField1_ & 0x40000000) != 0)) {
        output.writeMessage(63, getStatisticsMessage());
      }
      if (((bitField1_ & 0x80000000) != 0)) {
        output.writeMessage(64, getChatRequestMessage());
      }
      if (((bitField2_ & 0x00000001) != 0)) {
        output.writeMessage(65, getChatMessage());
      }
      if (((bitField2_ & 0x00000002) != 0)) {
        output.writeMessage(66, getChatRejectMessage());
      }
      if (((bitField2_ & 0x00000004) != 0)) {
        output.writeMessage(67, getDialogMessage());
      }
      if (((bitField2_ & 0x00000008) != 0)) {
        output.writeMessage(68, getTimeoutWarningMessage());
      }
      if (((bitField2_ & 0x00000010) != 0)) {
        output.writeMessage(69, getResetTimeoutMessage());
      }
      if (((bitField2_ & 0x00000020) != 0)) {
        output.writeMessage(70, getReportAvatarMessage());
      }
      if (((bitField2_ & 0x00000040) != 0)) {
        output.writeMessage(71, getReportAvatarAckMessage());
      }
      if (((bitField2_ & 0x00000080) != 0)) {
        output.writeMessage(72, getReportGameMessage());
      }
      if (((bitField2_ & 0x00000100) != 0)) {
        output.writeMessage(73, getReportGameAckMessage());
      }
      if (((bitField2_ & 0x00000200) != 0)) {
        output.writeMessage(74, getErrorMessage());
      }
      if (((bitField2_ & 0x00000400) != 0)) {
        output.writeMessage(75, getAdminRemoveGameMessage());
      }
      if (((bitField2_ & 0x00000800) != 0)) {
        output.writeMessage(76, getAdminRemoveGameAckMessage());
      }
      if (((bitField2_ & 0x00001000) != 0)) {
        output.writeMessage(77, getAdminBanPlayerMessage());
      }
      if (((bitField2_ & 0x00002000) != 0)) {
        output.writeMessage(78, getAdminBanPlayerAckMessage());
      }
      if (((bitField2_ & 0x00004000) != 0)) {
        output.writeMessage(79, getGameListSpectatorJoinedMessage());
      }
      if (((bitField2_ & 0x00008000) != 0)) {
        output.writeMessage(80, getGameListSpectatorLeftMessage());
      }
      if (((bitField2_ & 0x00010000) != 0)) {
        output.writeMessage(81, getGameSpectatorJoinedMessage());
      }
      if (((bitField2_ & 0x00020000) != 0)) {
        output.writeMessage(82, getGameSpectatorLeftMessage());
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, messageType_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getAnnounceMessage());
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getInitMessage());
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, getAuthServerChallengeMessage());
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, getAuthClientResponseMessage());
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, getAuthServerVerificationMessage());
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, getInitAckMessage());
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(8, getAvatarRequestMessage());
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(9, getAvatarHeaderMessage());
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(10, getAvatarDataMessage());
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(11, getAvatarEndMessage());
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(12, getUnknownAvatarMessage());
      }
      if (((bitField0_ & 0x00001000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(13, getPlayerListMessage());
      }
      if (((bitField0_ & 0x00002000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(14, getGameListNewMessage());
      }
      if (((bitField0_ & 0x00004000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(15, getGameListUpdateMessage());
      }
      if (((bitField0_ & 0x00008000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(16, getGameListPlayerJoinedMessage());
      }
      if (((bitField0_ & 0x00010000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(17, getGameListPlayerLeftMessage());
      }
      if (((bitField0_ & 0x00020000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(18, getGameListAdminChangedMessage());
      }
      if (((bitField0_ & 0x00040000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(19, getPlayerInfoRequestMessage());
      }
      if (((bitField0_ & 0x00080000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(20, getPlayerInfoReplyMessage());
      }
      if (((bitField0_ & 0x00100000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(21, getSubscriptionRequestMessage());
      }
      if (((bitField0_ & 0x00200000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(22, getJoinExistingGameMessage());
      }
      if (((bitField0_ & 0x00400000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(23, getJoinNewGameMessage());
      }
      if (((bitField0_ & 0x00800000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(24, getRejoinExistingGameMessage());
      }
      if (((bitField0_ & 0x01000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(25, getJoinGameAckMessage());
      }
      if (((bitField0_ & 0x02000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(26, getJoinGameFailedMessage());
      }
      if (((bitField0_ & 0x04000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(27, getGamePlayerJoinedMessage());
      }
      if (((bitField0_ & 0x08000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(28, getGamePlayerLeftMessage());
      }
      if (((bitField0_ & 0x10000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(29, getGameAdminChangedMessage());
      }
      if (((bitField0_ & 0x20000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(30, getRemovedFromGameMessage());
      }
      if (((bitField0_ & 0x40000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(31, getKickPlayerRequestMessage());
      }
      if (((bitField0_ & 0x80000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(32, getLeaveGameRequestMessage());
      }
      if (((bitField1_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(33, getInvitePlayerToGameMessage());
      }
      if (((bitField1_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(34, getInviteNotifyMessage());
      }
      if (((bitField1_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(35, getRejectGameInvitationMessage());
      }
      if (((bitField1_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(36, getRejectInvNotifyMessage());
      }
      if (((bitField1_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(37, getStartEventMessage());
      }
      if (((bitField1_ & 0x00000020) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(38, getStartEventAckMessage());
      }
      if (((bitField1_ & 0x00000040) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(39, getGameStartInitialMessage());
      }
      if (((bitField1_ & 0x00000080) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(40, getGameStartRejoinMessage());
      }
      if (((bitField1_ & 0x00000100) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(41, getHandStartMessage());
      }
      if (((bitField1_ & 0x00000200) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(42, getPlayersTurnMessage());
      }
      if (((bitField1_ & 0x00000400) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(43, getMyActionRequestMessage());
      }
      if (((bitField1_ & 0x00000800) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(44, getYourActionRejectedMessage());
      }
      if (((bitField1_ & 0x00001000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(45, getPlayersActionDoneMessage());
      }
      if (((bitField1_ & 0x00002000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(46, getDealFlopCardsMessage());
      }
      if (((bitField1_ & 0x00004000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(47, getDealTurnCardMessage());
      }
      if (((bitField1_ & 0x00008000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(48, getDealRiverCardMessage());
      }
      if (((bitField1_ & 0x00010000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(49, getAllInShowCardsMessage());
      }
      if (((bitField1_ & 0x00020000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(50, getEndOfHandShowCardsMessage());
      }
      if (((bitField1_ & 0x00040000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(51, getEndOfHandHideCardsMessage());
      }
      if (((bitField1_ & 0x00080000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(52, getShowMyCardsRequestMessage());
      }
      if (((bitField1_ & 0x00100000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(53, getAfterHandShowCardsMessage());
      }
      if (((bitField1_ & 0x00200000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(54, getEndOfGameMessage());
      }
      if (((bitField1_ & 0x00400000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(55, getPlayerIdChangedMessage());
      }
      if (((bitField1_ & 0x00800000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(56, getAskKickPlayerMessage());
      }
      if (((bitField1_ & 0x01000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(57, getAskKickDeniedMessage());
      }
      if (((bitField1_ & 0x02000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(58, getStartKickPetitionMessage());
      }
      if (((bitField1_ & 0x04000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(59, getVoteKickRequestMessage());
      }
      if (((bitField1_ & 0x08000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(60, getVoteKickReplyMessage());
      }
      if (((bitField1_ & 0x10000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(61, getKickPetitionUpdateMessage());
      }
      if (((bitField1_ & 0x20000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(62, getEndKickPetitionMessage());
      }
      if (((bitField1_ & 0x40000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(63, getStatisticsMessage());
      }
      if (((bitField1_ & 0x80000000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(64, getChatRequestMessage());
      }
      if (((bitField2_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(65, getChatMessage());
      }
      if (((bitField2_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(66, getChatRejectMessage());
      }
      if (((bitField2_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(67, getDialogMessage());
      }
      if (((bitField2_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(68, getTimeoutWarningMessage());
      }
      if (((bitField2_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(69, getResetTimeoutMessage());
      }
      if (((bitField2_ & 0x00000020) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(70, getReportAvatarMessage());
      }
      if (((bitField2_ & 0x00000040) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(71, getReportAvatarAckMessage());
      }
      if (((bitField2_ & 0x00000080) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(72, getReportGameMessage());
      }
      if (((bitField2_ & 0x00000100) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(73, getReportGameAckMessage());
      }
      if (((bitField2_ & 0x00000200) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(74, getErrorMessage());
      }
      if (((bitField2_ & 0x00000400) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(75, getAdminRemoveGameMessage());
      }
      if (((bitField2_ & 0x00000800) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(76, getAdminRemoveGameAckMessage());
      }
      if (((bitField2_ & 0x00001000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(77, getAdminBanPlayerMessage());
      }
      if (((bitField2_ & 0x00002000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(78, getAdminBanPlayerAckMessage());
      }
      if (((bitField2_ & 0x00004000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(79, getGameListSpectatorJoinedMessage());
      }
      if (((bitField2_ & 0x00008000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(80, getGameListSpectatorLeftMessage());
      }
      if (((bitField2_ & 0x00010000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(81, getGameSpectatorJoinedMessage());
      }
      if (((bitField2_ & 0x00020000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(82, getGameSpectatorLeftMessage());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof de.pokerth.protocol.ProtoBuf.PokerTHMessage)) {
        return super.equals(obj);
      }
      de.pokerth.protocol.ProtoBuf.PokerTHMessage other = (de.pokerth.protocol.ProtoBuf.PokerTHMessage) obj;

      if (hasMessageType() != other.hasMessageType()) return false;
      if (hasMessageType()) {
        if (messageType_ != other.messageType_) return false;
      }
      if (hasAnnounceMessage() != other.hasAnnounceMessage()) return false;
      if (hasAnnounceMessage()) {
        if (!getAnnounceMessage()
            .equals(other.getAnnounceMessage())) return false;
      }
      if (hasInitMessage() != other.hasInitMessage()) return false;
      if (hasInitMessage()) {
        if (!getInitMessage()
            .equals(other.getInitMessage())) return false;
      }
      if (hasAuthServerChallengeMessage() != other.hasAuthServerChallengeMessage()) return false;
      if (hasAuthServerChallengeMessage()) {
        if (!getAuthServerChallengeMessage()
            .equals(other.getAuthServerChallengeMessage())) return false;
      }
      if (hasAuthClientResponseMessage() != other.hasAuthClientResponseMessage()) return false;
      if (hasAuthClientResponseMessage()) {
        if (!getAuthClientResponseMessage()
            .equals(other.getAuthClientResponseMessage())) return false;
      }
      if (hasAuthServerVerificationMessage() != other.hasAuthServerVerificationMessage()) return false;
      if (hasAuthServerVerificationMessage()) {
        if (!getAuthServerVerificationMessage()
            .equals(other.getAuthServerVerificationMessage())) return false;
      }
      if (hasInitAckMessage() != other.hasInitAckMessage()) return false;
      if (hasInitAckMessage()) {
        if (!getInitAckMessage()
            .equals(other.getInitAckMessage())) return false;
      }
      if (hasAvatarRequestMessage() != other.hasAvatarRequestMessage()) return false;
      if (hasAvatarRequestMessage()) {
        if (!getAvatarRequestMessage()
            .equals(other.getAvatarRequestMessage())) return false;
      }
      if (hasAvatarHeaderMessage() != other.hasAvatarHeaderMessage()) return false;
      if (hasAvatarHeaderMessage()) {
        if (!getAvatarHeaderMessage()
            .equals(other.getAvatarHeaderMessage())) return false;
      }
      if (hasAvatarDataMessage() != other.hasAvatarDataMessage()) return false;
      if (hasAvatarDataMessage()) {
        if (!getAvatarDataMessage()
            .equals(other.getAvatarDataMessage())) return false;
      }
      if (hasAvatarEndMessage() != other.hasAvatarEndMessage()) return false;
      if (hasAvatarEndMessage()) {
        if (!getAvatarEndMessage()
            .equals(other.getAvatarEndMessage())) return false;
      }
      if (hasUnknownAvatarMessage() != other.hasUnknownAvatarMessage()) return false;
      if (hasUnknownAvatarMessage()) {
        if (!getUnknownAvatarMessage()
            .equals(other.getUnknownAvatarMessage())) return false;
      }
      if (hasPlayerListMessage() != other.hasPlayerListMessage()) return false;
      if (hasPlayerListMessage()) {
        if (!getPlayerListMessage()
            .equals(other.getPlayerListMessage())) return false;
      }
      if (hasGameListNewMessage() != other.hasGameListNewMessage()) return false;
      if (hasGameListNewMessage()) {
        if (!getGameListNewMessage()
            .equals(other.getGameListNewMessage())) return false;
      }
      if (hasGameListUpdateMessage() != other.hasGameListUpdateMessage()) return false;
      if (hasGameListUpdateMessage()) {
        if (!getGameListUpdateMessage()
            .equals(other.getGameListUpdateMessage())) return false;
      }
      if (hasGameListPlayerJoinedMessage() != other.hasGameListPlayerJoinedMessage()) return false;
      if (hasGameListPlayerJoinedMessage()) {
        if (!getGameListPlayerJoinedMessage()
            .equals(other.getGameListPlayerJoinedMessage())) return false;
      }
      if (hasGameListPlayerLeftMessage() != other.hasGameListPlayerLeftMessage()) return false;
      if (hasGameListPlayerLeftMessage()) {
        if (!getGameListPlayerLeftMessage()
            .equals(other.getGameListPlayerLeftMessage())) return false;
      }
      if (hasGameListAdminChangedMessage() != other.hasGameListAdminChangedMessage()) return false;
      if (hasGameListAdminChangedMessage()) {
        if (!getGameListAdminChangedMessage()
            .equals(other.getGameListAdminChangedMessage())) return false;
      }
      if (hasPlayerInfoRequestMessage() != other.hasPlayerInfoRequestMessage()) return false;
      if (hasPlayerInfoRequestMessage()) {
        if (!getPlayerInfoRequestMessage()
            .equals(other.getPlayerInfoRequestMessage())) return false;
      }
      if (hasPlayerInfoReplyMessage() != other.hasPlayerInfoReplyMessage()) return false;
      if (hasPlayerInfoReplyMessage()) {
        if (!getPlayerInfoReplyMessage()
            .equals(other.getPlayerInfoReplyMessage())) return false;
      }
      if (hasSubscriptionRequestMessage() != other.hasSubscriptionRequestMessage()) return false;
      if (hasSubscriptionRequestMessage()) {
        if (!getSubscriptionRequestMessage()
            .equals(other.getSubscriptionRequestMessage())) return false;
      }
      if (hasJoinExistingGameMessage() != other.hasJoinExistingGameMessage()) return false;
      if (hasJoinExistingGameMessage()) {
        if (!getJoinExistingGameMessage()
            .equals(other.getJoinExistingGameMessage())) return false;
      }
      if (hasJoinNewGameMessage() != other.hasJoinNewGameMessage()) return false;
      if (hasJoinNewGameMessage()) {
        if (!getJoinNewGameMessage()
            .equals(other.getJoinNewGameMessage())) return false;
      }
      if (hasRejoinExistingGameMessage() != other.hasRejoinExistingGameMessage()) return false;
      if (hasRejoinExistingGameMessage()) {
        if (!getRejoinExistingGameMessage()
            .equals(other.getRejoinExistingGameMessage())) return false;
      }
      if (hasJoinGameAckMessage() != other.hasJoinGameAckMessage()) return false;
      if (hasJoinGameAckMessage()) {
        if (!getJoinGameAckMessage()
            .equals(other.getJoinGameAckMessage())) return false;
      }
      if (hasJoinGameFailedMessage() != other.hasJoinGameFailedMessage()) return false;
      if (hasJoinGameFailedMessage()) {
        if (!getJoinGameFailedMessage()
            .equals(other.getJoinGameFailedMessage())) return false;
      }
      if (hasGamePlayerJoinedMessage() != other.hasGamePlayerJoinedMessage()) return false;
      if (hasGamePlayerJoinedMessage()) {
        if (!getGamePlayerJoinedMessage()
            .equals(other.getGamePlayerJoinedMessage())) return false;
      }
      if (hasGamePlayerLeftMessage() != other.hasGamePlayerLeftMessage()) return false;
      if (hasGamePlayerLeftMessage()) {
        if (!getGamePlayerLeftMessage()
            .equals(other.getGamePlayerLeftMessage())) return false;
      }
      if (hasGameAdminChangedMessage() != other.hasGameAdminChangedMessage()) return false;
      if (hasGameAdminChangedMessage()) {
        if (!getGameAdminChangedMessage()
            .equals(other.getGameAdminChangedMessage())) return false;
      }
      if (hasRemovedFromGameMessage() != other.hasRemovedFromGameMessage()) return false;
      if (hasRemovedFromGameMessage()) {
        if (!getRemovedFromGameMessage()
            .equals(other.getRemovedFromGameMessage())) return false;
      }
      if (hasKickPlayerRequestMessage() != other.hasKickPlayerRequestMessage()) return false;
      if (hasKickPlayerRequestMessage()) {
        if (!getKickPlayerRequestMessage()
            .equals(other.getKickPlayerRequestMessage())) return false;
      }
      if (hasLeaveGameRequestMessage() != other.hasLeaveGameRequestMessage()) return false;
      if (hasLeaveGameRequestMessage()) {
        if (!getLeaveGameRequestMessage()
            .equals(other.getLeaveGameRequestMessage())) return false;
      }
      if (hasInvitePlayerToGameMessage() != other.hasInvitePlayerToGameMessage()) return false;
      if (hasInvitePlayerToGameMessage()) {
        if (!getInvitePlayerToGameMessage()
            .equals(other.getInvitePlayerToGameMessage())) return false;
      }
      if (hasInviteNotifyMessage() != other.hasInviteNotifyMessage()) return false;
      if (hasInviteNotifyMessage()) {
        if (!getInviteNotifyMessage()
            .equals(other.getInviteNotifyMessage())) return false;
      }
      if (hasRejectGameInvitationMessage() != other.hasRejectGameInvitationMessage()) return false;
      if (hasRejectGameInvitationMessage()) {
        if (!getRejectGameInvitationMessage()
            .equals(other.getRejectGameInvitationMessage())) return false;
      }
      if (hasRejectInvNotifyMessage() != other.hasRejectInvNotifyMessage()) return false;
      if (hasRejectInvNotifyMessage()) {
        if (!getRejectInvNotifyMessage()
            .equals(other.getRejectInvNotifyMessage())) return false;
      }
      if (hasStartEventMessage() != other.hasStartEventMessage()) return false;
      if (hasStartEventMessage()) {
        if (!getStartEventMessage()
            .equals(other.getStartEventMessage())) return false;
      }
      if (hasStartEventAckMessage() != other.hasStartEventAckMessage()) return false;
      if (hasStartEventAckMessage()) {
        if (!getStartEventAckMessage()
            .equals(other.getStartEventAckMessage())) return false;
      }
      if (hasGameStartInitialMessage() != other.hasGameStartInitialMessage()) return false;
      if (hasGameStartInitialMessage()) {
        if (!getGameStartInitialMessage()
            .equals(other.getGameStartInitialMessage())) return false;
      }
      if (hasGameStartRejoinMessage() != other.hasGameStartRejoinMessage()) return false;
      if (hasGameStartRejoinMessage()) {
        if (!getGameStartRejoinMessage()
            .equals(other.getGameStartRejoinMessage())) return false;
      }
      if (hasHandStartMessage() != other.hasHandStartMessage()) return false;
      if (hasHandStartMessage()) {
        if (!getHandStartMessage()
            .equals(other.getHandStartMessage())) return false;
      }
      if (hasPlayersTurnMessage() != other.hasPlayersTurnMessage()) return false;
      if (hasPlayersTurnMessage()) {
        if (!getPlayersTurnMessage()
            .equals(other.getPlayersTurnMessage())) return false;
      }
      if (hasMyActionRequestMessage() != other.hasMyActionRequestMessage()) return false;
      if (hasMyActionRequestMessage()) {
        if (!getMyActionRequestMessage()
            .equals(other.getMyActionRequestMessage())) return false;
      }
      if (hasYourActionRejectedMessage() != other.hasYourActionRejectedMessage()) return false;
      if (hasYourActionRejectedMessage()) {
        if (!getYourActionRejectedMessage()
            .equals(other.getYourActionRejectedMessage())) return false;
      }
      if (hasPlayersActionDoneMessage() != other.hasPlayersActionDoneMessage()) return false;
      if (hasPlayersActionDoneMessage()) {
        if (!getPlayersActionDoneMessage()
            .equals(other.getPlayersActionDoneMessage())) return false;
      }
      if (hasDealFlopCardsMessage() != other.hasDealFlopCardsMessage()) return false;
      if (hasDealFlopCardsMessage()) {
        if (!getDealFlopCardsMessage()
            .equals(other.getDealFlopCardsMessage())) return false;
      }
      if (hasDealTurnCardMessage() != other.hasDealTurnCardMessage()) return false;
      if (hasDealTurnCardMessage()) {
        if (!getDealTurnCardMessage()
            .equals(other.getDealTurnCardMessage())) return false;
      }
      if (hasDealRiverCardMessage() != other.hasDealRiverCardMessage()) return false;
      if (hasDealRiverCardMessage()) {
        if (!getDealRiverCardMessage()
            .equals(other.getDealRiverCardMessage())) return false;
      }
      if (hasAllInShowCardsMessage() != other.hasAllInShowCardsMessage()) return false;
      if (hasAllInShowCardsMessage()) {
        if (!getAllInShowCardsMessage()
            .equals(other.getAllInShowCardsMessage())) return false;
      }
      if (hasEndOfHandShowCardsMessage() != other.hasEndOfHandShowCardsMessage()) return false;
      if (hasEndOfHandShowCardsMessage()) {
        if (!getEndOfHandShowCardsMessage()
            .equals(other.getEndOfHandShowCardsMessage())) return false;
      }
      if (hasEndOfHandHideCardsMessage() != other.hasEndOfHandHideCardsMessage()) return false;
      if (hasEndOfHandHideCardsMessage()) {
        if (!getEndOfHandHideCardsMessage()
            .equals(other.getEndOfHandHideCardsMessage())) return false;
      }
      if (hasShowMyCardsRequestMessage() != other.hasShowMyCardsRequestMessage()) return false;
      if (hasShowMyCardsRequestMessage()) {
        if (!getShowMyCardsRequestMessage()
            .equals(other.getShowMyCardsRequestMessage())) return false;
      }
      if (hasAfterHandShowCardsMessage() != other.hasAfterHandShowCardsMessage()) return false;
      if (hasAfterHandShowCardsMessage()) {
        if (!getAfterHandShowCardsMessage()
            .equals(other.getAfterHandShowCardsMessage())) return false;
      }
      if (hasEndOfGameMessage() != other.hasEndOfGameMessage()) return false;
      if (hasEndOfGameMessage()) {
        if (!getEndOfGameMessage()
            .equals(other.getEndOfGameMessage())) return false;
      }
      if (hasPlayerIdChangedMessage() != other.hasPlayerIdChangedMessage()) return false;
      if (hasPlayerIdChangedMessage()) {
        if (!getPlayerIdChangedMessage()
            .equals(other.getPlayerIdChangedMessage())) return false;
      }
      if (hasAskKickPlayerMessage() != other.hasAskKickPlayerMessage()) return false;
      if (hasAskKickPlayerMessage()) {
        if (!getAskKickPlayerMessage()
            .equals(other.getAskKickPlayerMessage())) return false;
      }
      if (hasAskKickDeniedMessage() != other.hasAskKickDeniedMessage()) return false;
      if (hasAskKickDeniedMessage()) {
        if (!getAskKickDeniedMessage()
            .equals(other.getAskKickDeniedMessage())) return false;
      }
      if (hasStartKickPetitionMessage() != other.hasStartKickPetitionMessage()) return false;
      if (hasStartKickPetitionMessage()) {
        if (!getStartKickPetitionMessage()
            .equals(other.getStartKickPetitionMessage())) return false;
      }
      if (hasVoteKickRequestMessage() != other.hasVoteKickRequestMessage()) return false;
      if (hasVoteKickRequestMessage()) {
        if (!getVoteKickRequestMessage()
            .equals(other.getVoteKickRequestMessage())) return false;
      }
      if (hasVoteKickReplyMessage() != other.hasVoteKickReplyMessage()) return false;
      if (hasVoteKickReplyMessage()) {
        if (!getVoteKickReplyMessage()
            .equals(other.getVoteKickReplyMessage())) return false;
      }
      if (hasKickPetitionUpdateMessage() != other.hasKickPetitionUpdateMessage()) return false;
      if (hasKickPetitionUpdateMessage()) {
        if (!getKickPetitionUpdateMessage()
            .equals(other.getKickPetitionUpdateMessage())) return false;
      }
      if (hasEndKickPetitionMessage() != other.hasEndKickPetitionMessage()) return false;
      if (hasEndKickPetitionMessage()) {
        if (!getEndKickPetitionMessage()
            .equals(other.getEndKickPetitionMessage())) return false;
      }
      if (hasStatisticsMessage() != other.hasStatisticsMessage()) return false;
      if (hasStatisticsMessage()) {
        if (!getStatisticsMessage()
            .equals(other.getStatisticsMessage())) return false;
      }
      if (hasChatRequestMessage() != other.hasChatRequestMessage()) return false;
      if (hasChatRequestMessage()) {
        if (!getChatRequestMessage()
            .equals(other.getChatRequestMessage())) return false;
      }
      if (hasChatMessage() != other.hasChatMessage()) return false;
      if (hasChatMessage()) {
        if (!getChatMessage()
            .equals(other.getChatMessage())) return false;
      }
      if (hasChatRejectMessage() != other.hasChatRejectMessage()) return false;
      if (hasChatRejectMessage()) {
        if (!getChatRejectMessage()
            .equals(other.getChatRejectMessage())) return false;
      }
      if (hasDialogMessage() != other.hasDialogMessage()) return false;
      if (hasDialogMessage()) {
        if (!getDialogMessage()
            .equals(other.getDialogMessage())) return false;
      }
      if (hasTimeoutWarningMessage() != other.hasTimeoutWarningMessage()) return false;
      if (hasTimeoutWarningMessage()) {
        if (!getTimeoutWarningMessage()
            .equals(other.getTimeoutWarningMessage())) return false;
      }
      if (hasResetTimeoutMessage() != other.hasResetTimeoutMessage()) return false;
      if (hasResetTimeoutMessage()) {
        if (!getResetTimeoutMessage()
            .equals(other.getResetTimeoutMessage())) return false;
      }
      if (hasReportAvatarMessage() != other.hasReportAvatarMessage()) return false;
      if (hasReportAvatarMessage()) {
        if (!getReportAvatarMessage()
            .equals(other.getReportAvatarMessage())) return false;
      }
      if (hasReportAvatarAckMessage() != other.hasReportAvatarAckMessage()) return false;
      if (hasReportAvatarAckMessage()) {
        if (!getReportAvatarAckMessage()
            .equals(other.getReportAvatarAckMessage())) return false;
      }
      if (hasReportGameMessage() != other.hasReportGameMessage()) return false;
      if (hasReportGameMessage()) {
        if (!getReportGameMessage()
            .equals(other.getReportGameMessage())) return false;
      }
      if (hasReportGameAckMessage() != other.hasReportGameAckMessage()) return false;
      if (hasReportGameAckMessage()) {
        if (!getReportGameAckMessage()
            .equals(other.getReportGameAckMessage())) return false;
      }
      if (hasErrorMessage() != other.hasErrorMessage()) return false;
      if (hasErrorMessage()) {
        if (!getErrorMessage()
            .equals(other.getErrorMessage())) return false;
      }
      if (hasAdminRemoveGameMessage() != other.hasAdminRemoveGameMessage()) return false;
      if (hasAdminRemoveGameMessage()) {
        if (!getAdminRemoveGameMessage()
            .equals(other.getAdminRemoveGameMessage())) return false;
      }
      if (hasAdminRemoveGameAckMessage() != other.hasAdminRemoveGameAckMessage()) return false;
      if (hasAdminRemoveGameAckMessage()) {
        if (!getAdminRemoveGameAckMessage()
            .equals(other.getAdminRemoveGameAckMessage())) return false;
      }
      if (hasAdminBanPlayerMessage() != other.hasAdminBanPlayerMessage()) return false;
      if (hasAdminBanPlayerMessage()) {
        if (!getAdminBanPlayerMessage()
            .equals(other.getAdminBanPlayerMessage())) return false;
      }
      if (hasAdminBanPlayerAckMessage() != other.hasAdminBanPlayerAckMessage()) return false;
      if (hasAdminBanPlayerAckMessage()) {
        if (!getAdminBanPlayerAckMessage()
            .equals(other.getAdminBanPlayerAckMessage())) return false;
      }
      if (hasGameListSpectatorJoinedMessage() != other.hasGameListSpectatorJoinedMessage()) return false;
      if (hasGameListSpectatorJoinedMessage()) {
        if (!getGameListSpectatorJoinedMessage()
            .equals(other.getGameListSpectatorJoinedMessage())) return false;
      }
      if (hasGameListSpectatorLeftMessage() != other.hasGameListSpectatorLeftMessage()) return false;
      if (hasGameListSpectatorLeftMessage()) {
        if (!getGameListSpectatorLeftMessage()
            .equals(other.getGameListSpectatorLeftMessage())) return false;
      }
      if (hasGameSpectatorJoinedMessage() != other.hasGameSpectatorJoinedMessage()) return false;
      if (hasGameSpectatorJoinedMessage()) {
        if (!getGameSpectatorJoinedMessage()
            .equals(other.getGameSpectatorJoinedMessage())) return false;
      }
      if (hasGameSpectatorLeftMessage() != other.hasGameSpectatorLeftMessage()) return false;
      if (hasGameSpectatorLeftMessage()) {
        if (!getGameSpectatorLeftMessage()
            .equals(other.getGameSpectatorLeftMessage())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasMessageType()) {
        hash = (37 * hash) + MESSAGETYPE_FIELD_NUMBER;
        hash = (53 * hash) + messageType_;
      }
      if (hasAnnounceMessage()) {
        hash = (37 * hash) + ANNOUNCEMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getAnnounceMessage().hashCode();
      }
      if (hasInitMessage()) {
        hash = (37 * hash) + INITMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getInitMessage().hashCode();
      }
      if (hasAuthServerChallengeMessage()) {
        hash = (37 * hash) + AUTHSERVERCHALLENGEMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getAuthServerChallengeMessage().hashCode();
      }
      if (hasAuthClientResponseMessage()) {
        hash = (37 * hash) + AUTHCLIENTRESPONSEMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getAuthClientResponseMessage().hashCode();
      }
      if (hasAuthServerVerificationMessage()) {
        hash = (37 * hash) + AUTHSERVERVERIFICATIONMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getAuthServerVerificationMessage().hashCode();
      }
      if (hasInitAckMessage()) {
        hash = (37 * hash) + INITACKMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getInitAckMessage().hashCode();
      }
      if (hasAvatarRequestMessage()) {
        hash = (37 * hash) + AVATARREQUESTMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getAvatarRequestMessage().hashCode();
      }
      if (hasAvatarHeaderMessage()) {
        hash = (37 * hash) + AVATARHEADERMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getAvatarHeaderMessage().hashCode();
      }
      if (hasAvatarDataMessage()) {
        hash = (37 * hash) + AVATARDATAMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getAvatarDataMessage().hashCode();
      }
      if (hasAvatarEndMessage()) {
        hash = (37 * hash) + AVATARENDMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getAvatarEndMessage().hashCode();
      }
      if (hasUnknownAvatarMessage()) {
        hash = (37 * hash) + UNKNOWNAVATARMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getUnknownAvatarMessage().hashCode();
      }
      if (hasPlayerListMessage()) {
        hash = (37 * hash) + PLAYERLISTMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getPlayerListMessage().hashCode();
      }
      if (hasGameListNewMessage()) {
        hash = (37 * hash) + GAMELISTNEWMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getGameListNewMessage().hashCode();
      }
      if (hasGameListUpdateMessage()) {
        hash = (37 * hash) + GAMELISTUPDATEMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getGameListUpdateMessage().hashCode();
      }
      if (hasGameListPlayerJoinedMessage()) {
        hash = (37 * hash) + GAMELISTPLAYERJOINEDMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getGameListPlayerJoinedMessage().hashCode();
      }
      if (hasGameListPlayerLeftMessage()) {
        hash = (37 * hash) + GAMELISTPLAYERLEFTMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getGameListPlayerLeftMessage().hashCode();
      }
      if (hasGameListAdminChangedMessage()) {
        hash = (37 * hash) + GAMELISTADMINCHANGEDMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getGameListAdminChangedMessage().hashCode();
      }
      if (hasPlayerInfoRequestMessage()) {
        hash = (37 * hash) + PLAYERINFOREQUESTMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getPlayerInfoRequestMessage().hashCode();
      }
      if (hasPlayerInfoReplyMessage()) {
        hash = (37 * hash) + PLAYERINFOREPLYMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getPlayerInfoReplyMessage().hashCode();
      }
      if (hasSubscriptionRequestMessage()) {
        hash = (37 * hash) + SUBSCRIPTIONREQUESTMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getSubscriptionRequestMessage().hashCode();
      }
      if (hasJoinExistingGameMessage()) {
        hash = (37 * hash) + JOINEXISTINGGAMEMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getJoinExistingGameMessage().hashCode();
      }
      if (hasJoinNewGameMessage()) {
        hash = (37 * hash) + JOINNEWGAMEMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getJoinNewGameMessage().hashCode();
      }
      if (hasRejoinExistingGameMessage()) {
        hash = (37 * hash) + REJOINEXISTINGGAMEMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getRejoinExistingGameMessage().hashCode();
      }
      if (hasJoinGameAckMessage()) {
        hash = (37 * hash) + JOINGAMEACKMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getJoinGameAckMessage().hashCode();
      }
      if (hasJoinGameFailedMessage()) {
        hash = (37 * hash) + JOINGAMEFAILEDMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getJoinGameFailedMessage().hashCode();
      }
      if (hasGamePlayerJoinedMessage()) {
        hash = (37 * hash) + GAMEPLAYERJOINEDMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getGamePlayerJoinedMessage().hashCode();
      }
      if (hasGamePlayerLeftMessage()) {
        hash = (37 * hash) + GAMEPLAYERLEFTMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getGamePlayerLeftMessage().hashCode();
      }
      if (hasGameAdminChangedMessage()) {
        hash = (37 * hash) + GAMEADMINCHANGEDMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getGameAdminChangedMessage().hashCode();
      }
      if (hasRemovedFromGameMessage()) {
        hash = (37 * hash) + REMOVEDFROMGAMEMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getRemovedFromGameMessage().hashCode();
      }
      if (hasKickPlayerRequestMessage()) {
        hash = (37 * hash) + KICKPLAYERREQUESTMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getKickPlayerRequestMessage().hashCode();
      }
      if (hasLeaveGameRequestMessage()) {
        hash = (37 * hash) + LEAVEGAMEREQUESTMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getLeaveGameRequestMessage().hashCode();
      }
      if (hasInvitePlayerToGameMessage()) {
        hash = (37 * hash) + INVITEPLAYERTOGAMEMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getInvitePlayerToGameMessage().hashCode();
      }
      if (hasInviteNotifyMessage()) {
        hash = (37 * hash) + INVITENOTIFYMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getInviteNotifyMessage().hashCode();
      }
      if (hasRejectGameInvitationMessage()) {
        hash = (37 * hash) + REJECTGAMEINVITATIONMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getRejectGameInvitationMessage().hashCode();
      }
      if (hasRejectInvNotifyMessage()) {
        hash = (37 * hash) + REJECTINVNOTIFYMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getRejectInvNotifyMessage().hashCode();
      }
      if (hasStartEventMessage()) {
        hash = (37 * hash) + STARTEVENTMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getStartEventMessage().hashCode();
      }
      if (hasStartEventAckMessage()) {
        hash = (37 * hash) + STARTEVENTACKMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getStartEventAckMessage().hashCode();
      }
      if (hasGameStartInitialMessage()) {
        hash = (37 * hash) + GAMESTARTINITIALMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getGameStartInitialMessage().hashCode();
      }
      if (hasGameStartRejoinMessage()) {
        hash = (37 * hash) + GAMESTARTREJOINMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getGameStartRejoinMessage().hashCode();
      }
      if (hasHandStartMessage()) {
        hash = (37 * hash) + HANDSTARTMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getHandStartMessage().hashCode();
      }
      if (hasPlayersTurnMessage()) {
        hash = (37 * hash) + PLAYERSTURNMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getPlayersTurnMessage().hashCode();
      }
      if (hasMyActionRequestMessage()) {
        hash = (37 * hash) + MYACTIONREQUESTMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getMyActionRequestMessage().hashCode();
      }
      if (hasYourActionRejectedMessage()) {
        hash = (37 * hash) + YOURACTIONREJECTEDMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getYourActionRejectedMessage().hashCode();
      }
      if (hasPlayersActionDoneMessage()) {
        hash = (37 * hash) + PLAYERSACTIONDONEMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getPlayersActionDoneMessage().hashCode();
      }
      if (hasDealFlopCardsMessage()) {
        hash = (37 * hash) + DEALFLOPCARDSMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getDealFlopCardsMessage().hashCode();
      }
      if (hasDealTurnCardMessage()) {
        hash = (37 * hash) + DEALTURNCARDMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getDealTurnCardMessage().hashCode();
      }
      if (hasDealRiverCardMessage()) {
        hash = (37 * hash) + DEALRIVERCARDMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getDealRiverCardMessage().hashCode();
      }
      if (hasAllInShowCardsMessage()) {
        hash = (37 * hash) + ALLINSHOWCARDSMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getAllInShowCardsMessage().hashCode();
      }
      if (hasEndOfHandShowCardsMessage()) {
        hash = (37 * hash) + ENDOFHANDSHOWCARDSMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getEndOfHandShowCardsMessage().hashCode();
      }
      if (hasEndOfHandHideCardsMessage()) {
        hash = (37 * hash) + ENDOFHANDHIDECARDSMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getEndOfHandHideCardsMessage().hashCode();
      }
      if (hasShowMyCardsRequestMessage()) {
        hash = (37 * hash) + SHOWMYCARDSREQUESTMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getShowMyCardsRequestMessage().hashCode();
      }
      if (hasAfterHandShowCardsMessage()) {
        hash = (37 * hash) + AFTERHANDSHOWCARDSMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getAfterHandShowCardsMessage().hashCode();
      }
      if (hasEndOfGameMessage()) {
        hash = (37 * hash) + ENDOFGAMEMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getEndOfGameMessage().hashCode();
      }
      if (hasPlayerIdChangedMessage()) {
        hash = (37 * hash) + PLAYERIDCHANGEDMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getPlayerIdChangedMessage().hashCode();
      }
      if (hasAskKickPlayerMessage()) {
        hash = (37 * hash) + ASKKICKPLAYERMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getAskKickPlayerMessage().hashCode();
      }
      if (hasAskKickDeniedMessage()) {
        hash = (37 * hash) + ASKKICKDENIEDMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getAskKickDeniedMessage().hashCode();
      }
      if (hasStartKickPetitionMessage()) {
        hash = (37 * hash) + STARTKICKPETITIONMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getStartKickPetitionMessage().hashCode();
      }
      if (hasVoteKickRequestMessage()) {
        hash = (37 * hash) + VOTEKICKREQUESTMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getVoteKickRequestMessage().hashCode();
      }
      if (hasVoteKickReplyMessage()) {
        hash = (37 * hash) + VOTEKICKREPLYMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getVoteKickReplyMessage().hashCode();
      }
      if (hasKickPetitionUpdateMessage()) {
        hash = (37 * hash) + KICKPETITIONUPDATEMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getKickPetitionUpdateMessage().hashCode();
      }
      if (hasEndKickPetitionMessage()) {
        hash = (37 * hash) + ENDKICKPETITIONMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getEndKickPetitionMessage().hashCode();
      }
      if (hasStatisticsMessage()) {
        hash = (37 * hash) + STATISTICSMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getStatisticsMessage().hashCode();
      }
      if (hasChatRequestMessage()) {
        hash = (37 * hash) + CHATREQUESTMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getChatRequestMessage().hashCode();
      }
      if (hasChatMessage()) {
        hash = (37 * hash) + CHATMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getChatMessage().hashCode();
      }
      if (hasChatRejectMessage()) {
        hash = (37 * hash) + CHATREJECTMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getChatRejectMessage().hashCode();
      }
      if (hasDialogMessage()) {
        hash = (37 * hash) + DIALOGMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getDialogMessage().hashCode();
      }
      if (hasTimeoutWarningMessage()) {
        hash = (37 * hash) + TIMEOUTWARNINGMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getTimeoutWarningMessage().hashCode();
      }
      if (hasResetTimeoutMessage()) {
        hash = (37 * hash) + RESETTIMEOUTMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getResetTimeoutMessage().hashCode();
      }
      if (hasReportAvatarMessage()) {
        hash = (37 * hash) + REPORTAVATARMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getReportAvatarMessage().hashCode();
      }
      if (hasReportAvatarAckMessage()) {
        hash = (37 * hash) + REPORTAVATARACKMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getReportAvatarAckMessage().hashCode();
      }
      if (hasReportGameMessage()) {
        hash = (37 * hash) + REPORTGAMEMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getReportGameMessage().hashCode();
      }
      if (hasReportGameAckMessage()) {
        hash = (37 * hash) + REPORTGAMEACKMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getReportGameAckMessage().hashCode();
      }
      if (hasErrorMessage()) {
        hash = (37 * hash) + ERRORMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getErrorMessage().hashCode();
      }
      if (hasAdminRemoveGameMessage()) {
        hash = (37 * hash) + ADMINREMOVEGAMEMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getAdminRemoveGameMessage().hashCode();
      }
      if (hasAdminRemoveGameAckMessage()) {
        hash = (37 * hash) + ADMINREMOVEGAMEACKMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getAdminRemoveGameAckMessage().hashCode();
      }
      if (hasAdminBanPlayerMessage()) {
        hash = (37 * hash) + ADMINBANPLAYERMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getAdminBanPlayerMessage().hashCode();
      }
      if (hasAdminBanPlayerAckMessage()) {
        hash = (37 * hash) + ADMINBANPLAYERACKMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getAdminBanPlayerAckMessage().hashCode();
      }
      if (hasGameListSpectatorJoinedMessage()) {
        hash = (37 * hash) + GAMELISTSPECTATORJOINEDMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getGameListSpectatorJoinedMessage().hashCode();
      }
      if (hasGameListSpectatorLeftMessage()) {
        hash = (37 * hash) + GAMELISTSPECTATORLEFTMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getGameListSpectatorLeftMessage().hashCode();
      }
      if (hasGameSpectatorJoinedMessage()) {
        hash = (37 * hash) + GAMESPECTATORJOINEDMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getGameSpectatorJoinedMessage().hashCode();
      }
      if (hasGameSpectatorLeftMessage()) {
        hash = (37 * hash) + GAMESPECTATORLEFTMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getGameSpectatorLeftMessage().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static de.pokerth.protocol.ProtoBuf.PokerTHMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.PokerTHMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PokerTHMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.PokerTHMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PokerTHMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static de.pokerth.protocol.ProtoBuf.PokerTHMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PokerTHMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.PokerTHMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PokerTHMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.PokerTHMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static de.pokerth.protocol.ProtoBuf.PokerTHMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static de.pokerth.protocol.ProtoBuf.PokerTHMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.PokerTHMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code PokerTHMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:PokerTHMessage)
        de.pokerth.protocol.ProtoBuf.PokerTHMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return de.pokerth.protocol.ProtoBuf.internal_static_PokerTHMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return de.pokerth.protocol.ProtoBuf.internal_static_PokerTHMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                de.pokerth.protocol.ProtoBuf.PokerTHMessage.class, de.pokerth.protocol.ProtoBuf.PokerTHMessage.Builder.class);
      }

      // Construct using de.pokerth.protocol.ProtoBuf.PokerTHMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getAnnounceMessageFieldBuilder();
          getInitMessageFieldBuilder();
          getAuthServerChallengeMessageFieldBuilder();
          getAuthClientResponseMessageFieldBuilder();
          getAuthServerVerificationMessageFieldBuilder();
          getInitAckMessageFieldBuilder();
          getAvatarRequestMessageFieldBuilder();
          getAvatarHeaderMessageFieldBuilder();
          getAvatarDataMessageFieldBuilder();
          getAvatarEndMessageFieldBuilder();
          getUnknownAvatarMessageFieldBuilder();
          getPlayerListMessageFieldBuilder();
          getGameListNewMessageFieldBuilder();
          getGameListUpdateMessageFieldBuilder();
          getGameListPlayerJoinedMessageFieldBuilder();
          getGameListPlayerLeftMessageFieldBuilder();
          getGameListAdminChangedMessageFieldBuilder();
          getPlayerInfoRequestMessageFieldBuilder();
          getPlayerInfoReplyMessageFieldBuilder();
          getSubscriptionRequestMessageFieldBuilder();
          getJoinExistingGameMessageFieldBuilder();
          getJoinNewGameMessageFieldBuilder();
          getRejoinExistingGameMessageFieldBuilder();
          getJoinGameAckMessageFieldBuilder();
          getJoinGameFailedMessageFieldBuilder();
          getGamePlayerJoinedMessageFieldBuilder();
          getGamePlayerLeftMessageFieldBuilder();
          getGameAdminChangedMessageFieldBuilder();
          getRemovedFromGameMessageFieldBuilder();
          getKickPlayerRequestMessageFieldBuilder();
          getLeaveGameRequestMessageFieldBuilder();
          getInvitePlayerToGameMessageFieldBuilder();
          getInviteNotifyMessageFieldBuilder();
          getRejectGameInvitationMessageFieldBuilder();
          getRejectInvNotifyMessageFieldBuilder();
          getStartEventMessageFieldBuilder();
          getStartEventAckMessageFieldBuilder();
          getGameStartInitialMessageFieldBuilder();
          getGameStartRejoinMessageFieldBuilder();
          getHandStartMessageFieldBuilder();
          getPlayersTurnMessageFieldBuilder();
          getMyActionRequestMessageFieldBuilder();
          getYourActionRejectedMessageFieldBuilder();
          getPlayersActionDoneMessageFieldBuilder();
          getDealFlopCardsMessageFieldBuilder();
          getDealTurnCardMessageFieldBuilder();
          getDealRiverCardMessageFieldBuilder();
          getAllInShowCardsMessageFieldBuilder();
          getEndOfHandShowCardsMessageFieldBuilder();
          getEndOfHandHideCardsMessageFieldBuilder();
          getShowMyCardsRequestMessageFieldBuilder();
          getAfterHandShowCardsMessageFieldBuilder();
          getEndOfGameMessageFieldBuilder();
          getPlayerIdChangedMessageFieldBuilder();
          getAskKickPlayerMessageFieldBuilder();
          getAskKickDeniedMessageFieldBuilder();
          getStartKickPetitionMessageFieldBuilder();
          getVoteKickRequestMessageFieldBuilder();
          getVoteKickReplyMessageFieldBuilder();
          getKickPetitionUpdateMessageFieldBuilder();
          getEndKickPetitionMessageFieldBuilder();
          getStatisticsMessageFieldBuilder();
          getChatRequestMessageFieldBuilder();
          getChatMessageFieldBuilder();
          getChatRejectMessageFieldBuilder();
          getDialogMessageFieldBuilder();
          getTimeoutWarningMessageFieldBuilder();
          getResetTimeoutMessageFieldBuilder();
          getReportAvatarMessageFieldBuilder();
          getReportAvatarAckMessageFieldBuilder();
          getReportGameMessageFieldBuilder();
          getReportGameAckMessageFieldBuilder();
          getErrorMessageFieldBuilder();
          getAdminRemoveGameMessageFieldBuilder();
          getAdminRemoveGameAckMessageFieldBuilder();
          getAdminBanPlayerMessageFieldBuilder();
          getAdminBanPlayerAckMessageFieldBuilder();
          getGameListSpectatorJoinedMessageFieldBuilder();
          getGameListSpectatorLeftMessageFieldBuilder();
          getGameSpectatorJoinedMessageFieldBuilder();
          getGameSpectatorLeftMessageFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        bitField1_ = 0;
        bitField2_ = 0;
        messageType_ = 1;
        announceMessage_ = null;
        if (announceMessageBuilder_ != null) {
          announceMessageBuilder_.dispose();
          announceMessageBuilder_ = null;
        }
        initMessage_ = null;
        if (initMessageBuilder_ != null) {
          initMessageBuilder_.dispose();
          initMessageBuilder_ = null;
        }
        authServerChallengeMessage_ = null;
        if (authServerChallengeMessageBuilder_ != null) {
          authServerChallengeMessageBuilder_.dispose();
          authServerChallengeMessageBuilder_ = null;
        }
        authClientResponseMessage_ = null;
        if (authClientResponseMessageBuilder_ != null) {
          authClientResponseMessageBuilder_.dispose();
          authClientResponseMessageBuilder_ = null;
        }
        authServerVerificationMessage_ = null;
        if (authServerVerificationMessageBuilder_ != null) {
          authServerVerificationMessageBuilder_.dispose();
          authServerVerificationMessageBuilder_ = null;
        }
        initAckMessage_ = null;
        if (initAckMessageBuilder_ != null) {
          initAckMessageBuilder_.dispose();
          initAckMessageBuilder_ = null;
        }
        avatarRequestMessage_ = null;
        if (avatarRequestMessageBuilder_ != null) {
          avatarRequestMessageBuilder_.dispose();
          avatarRequestMessageBuilder_ = null;
        }
        avatarHeaderMessage_ = null;
        if (avatarHeaderMessageBuilder_ != null) {
          avatarHeaderMessageBuilder_.dispose();
          avatarHeaderMessageBuilder_ = null;
        }
        avatarDataMessage_ = null;
        if (avatarDataMessageBuilder_ != null) {
          avatarDataMessageBuilder_.dispose();
          avatarDataMessageBuilder_ = null;
        }
        avatarEndMessage_ = null;
        if (avatarEndMessageBuilder_ != null) {
          avatarEndMessageBuilder_.dispose();
          avatarEndMessageBuilder_ = null;
        }
        unknownAvatarMessage_ = null;
        if (unknownAvatarMessageBuilder_ != null) {
          unknownAvatarMessageBuilder_.dispose();
          unknownAvatarMessageBuilder_ = null;
        }
        playerListMessage_ = null;
        if (playerListMessageBuilder_ != null) {
          playerListMessageBuilder_.dispose();
          playerListMessageBuilder_ = null;
        }
        gameListNewMessage_ = null;
        if (gameListNewMessageBuilder_ != null) {
          gameListNewMessageBuilder_.dispose();
          gameListNewMessageBuilder_ = null;
        }
        gameListUpdateMessage_ = null;
        if (gameListUpdateMessageBuilder_ != null) {
          gameListUpdateMessageBuilder_.dispose();
          gameListUpdateMessageBuilder_ = null;
        }
        gameListPlayerJoinedMessage_ = null;
        if (gameListPlayerJoinedMessageBuilder_ != null) {
          gameListPlayerJoinedMessageBuilder_.dispose();
          gameListPlayerJoinedMessageBuilder_ = null;
        }
        gameListPlayerLeftMessage_ = null;
        if (gameListPlayerLeftMessageBuilder_ != null) {
          gameListPlayerLeftMessageBuilder_.dispose();
          gameListPlayerLeftMessageBuilder_ = null;
        }
        gameListAdminChangedMessage_ = null;
        if (gameListAdminChangedMessageBuilder_ != null) {
          gameListAdminChangedMessageBuilder_.dispose();
          gameListAdminChangedMessageBuilder_ = null;
        }
        playerInfoRequestMessage_ = null;
        if (playerInfoRequestMessageBuilder_ != null) {
          playerInfoRequestMessageBuilder_.dispose();
          playerInfoRequestMessageBuilder_ = null;
        }
        playerInfoReplyMessage_ = null;
        if (playerInfoReplyMessageBuilder_ != null) {
          playerInfoReplyMessageBuilder_.dispose();
          playerInfoReplyMessageBuilder_ = null;
        }
        subscriptionRequestMessage_ = null;
        if (subscriptionRequestMessageBuilder_ != null) {
          subscriptionRequestMessageBuilder_.dispose();
          subscriptionRequestMessageBuilder_ = null;
        }
        joinExistingGameMessage_ = null;
        if (joinExistingGameMessageBuilder_ != null) {
          joinExistingGameMessageBuilder_.dispose();
          joinExistingGameMessageBuilder_ = null;
        }
        joinNewGameMessage_ = null;
        if (joinNewGameMessageBuilder_ != null) {
          joinNewGameMessageBuilder_.dispose();
          joinNewGameMessageBuilder_ = null;
        }
        rejoinExistingGameMessage_ = null;
        if (rejoinExistingGameMessageBuilder_ != null) {
          rejoinExistingGameMessageBuilder_.dispose();
          rejoinExistingGameMessageBuilder_ = null;
        }
        joinGameAckMessage_ = null;
        if (joinGameAckMessageBuilder_ != null) {
          joinGameAckMessageBuilder_.dispose();
          joinGameAckMessageBuilder_ = null;
        }
        joinGameFailedMessage_ = null;
        if (joinGameFailedMessageBuilder_ != null) {
          joinGameFailedMessageBuilder_.dispose();
          joinGameFailedMessageBuilder_ = null;
        }
        gamePlayerJoinedMessage_ = null;
        if (gamePlayerJoinedMessageBuilder_ != null) {
          gamePlayerJoinedMessageBuilder_.dispose();
          gamePlayerJoinedMessageBuilder_ = null;
        }
        gamePlayerLeftMessage_ = null;
        if (gamePlayerLeftMessageBuilder_ != null) {
          gamePlayerLeftMessageBuilder_.dispose();
          gamePlayerLeftMessageBuilder_ = null;
        }
        gameAdminChangedMessage_ = null;
        if (gameAdminChangedMessageBuilder_ != null) {
          gameAdminChangedMessageBuilder_.dispose();
          gameAdminChangedMessageBuilder_ = null;
        }
        removedFromGameMessage_ = null;
        if (removedFromGameMessageBuilder_ != null) {
          removedFromGameMessageBuilder_.dispose();
          removedFromGameMessageBuilder_ = null;
        }
        kickPlayerRequestMessage_ = null;
        if (kickPlayerRequestMessageBuilder_ != null) {
          kickPlayerRequestMessageBuilder_.dispose();
          kickPlayerRequestMessageBuilder_ = null;
        }
        leaveGameRequestMessage_ = null;
        if (leaveGameRequestMessageBuilder_ != null) {
          leaveGameRequestMessageBuilder_.dispose();
          leaveGameRequestMessageBuilder_ = null;
        }
        invitePlayerToGameMessage_ = null;
        if (invitePlayerToGameMessageBuilder_ != null) {
          invitePlayerToGameMessageBuilder_.dispose();
          invitePlayerToGameMessageBuilder_ = null;
        }
        inviteNotifyMessage_ = null;
        if (inviteNotifyMessageBuilder_ != null) {
          inviteNotifyMessageBuilder_.dispose();
          inviteNotifyMessageBuilder_ = null;
        }
        rejectGameInvitationMessage_ = null;
        if (rejectGameInvitationMessageBuilder_ != null) {
          rejectGameInvitationMessageBuilder_.dispose();
          rejectGameInvitationMessageBuilder_ = null;
        }
        rejectInvNotifyMessage_ = null;
        if (rejectInvNotifyMessageBuilder_ != null) {
          rejectInvNotifyMessageBuilder_.dispose();
          rejectInvNotifyMessageBuilder_ = null;
        }
        startEventMessage_ = null;
        if (startEventMessageBuilder_ != null) {
          startEventMessageBuilder_.dispose();
          startEventMessageBuilder_ = null;
        }
        startEventAckMessage_ = null;
        if (startEventAckMessageBuilder_ != null) {
          startEventAckMessageBuilder_.dispose();
          startEventAckMessageBuilder_ = null;
        }
        gameStartInitialMessage_ = null;
        if (gameStartInitialMessageBuilder_ != null) {
          gameStartInitialMessageBuilder_.dispose();
          gameStartInitialMessageBuilder_ = null;
        }
        gameStartRejoinMessage_ = null;
        if (gameStartRejoinMessageBuilder_ != null) {
          gameStartRejoinMessageBuilder_.dispose();
          gameStartRejoinMessageBuilder_ = null;
        }
        handStartMessage_ = null;
        if (handStartMessageBuilder_ != null) {
          handStartMessageBuilder_.dispose();
          handStartMessageBuilder_ = null;
        }
        playersTurnMessage_ = null;
        if (playersTurnMessageBuilder_ != null) {
          playersTurnMessageBuilder_.dispose();
          playersTurnMessageBuilder_ = null;
        }
        myActionRequestMessage_ = null;
        if (myActionRequestMessageBuilder_ != null) {
          myActionRequestMessageBuilder_.dispose();
          myActionRequestMessageBuilder_ = null;
        }
        yourActionRejectedMessage_ = null;
        if (yourActionRejectedMessageBuilder_ != null) {
          yourActionRejectedMessageBuilder_.dispose();
          yourActionRejectedMessageBuilder_ = null;
        }
        playersActionDoneMessage_ = null;
        if (playersActionDoneMessageBuilder_ != null) {
          playersActionDoneMessageBuilder_.dispose();
          playersActionDoneMessageBuilder_ = null;
        }
        dealFlopCardsMessage_ = null;
        if (dealFlopCardsMessageBuilder_ != null) {
          dealFlopCardsMessageBuilder_.dispose();
          dealFlopCardsMessageBuilder_ = null;
        }
        dealTurnCardMessage_ = null;
        if (dealTurnCardMessageBuilder_ != null) {
          dealTurnCardMessageBuilder_.dispose();
          dealTurnCardMessageBuilder_ = null;
        }
        dealRiverCardMessage_ = null;
        if (dealRiverCardMessageBuilder_ != null) {
          dealRiverCardMessageBuilder_.dispose();
          dealRiverCardMessageBuilder_ = null;
        }
        allInShowCardsMessage_ = null;
        if (allInShowCardsMessageBuilder_ != null) {
          allInShowCardsMessageBuilder_.dispose();
          allInShowCardsMessageBuilder_ = null;
        }
        endOfHandShowCardsMessage_ = null;
        if (endOfHandShowCardsMessageBuilder_ != null) {
          endOfHandShowCardsMessageBuilder_.dispose();
          endOfHandShowCardsMessageBuilder_ = null;
        }
        endOfHandHideCardsMessage_ = null;
        if (endOfHandHideCardsMessageBuilder_ != null) {
          endOfHandHideCardsMessageBuilder_.dispose();
          endOfHandHideCardsMessageBuilder_ = null;
        }
        showMyCardsRequestMessage_ = null;
        if (showMyCardsRequestMessageBuilder_ != null) {
          showMyCardsRequestMessageBuilder_.dispose();
          showMyCardsRequestMessageBuilder_ = null;
        }
        afterHandShowCardsMessage_ = null;
        if (afterHandShowCardsMessageBuilder_ != null) {
          afterHandShowCardsMessageBuilder_.dispose();
          afterHandShowCardsMessageBuilder_ = null;
        }
        endOfGameMessage_ = null;
        if (endOfGameMessageBuilder_ != null) {
          endOfGameMessageBuilder_.dispose();
          endOfGameMessageBuilder_ = null;
        }
        playerIdChangedMessage_ = null;
        if (playerIdChangedMessageBuilder_ != null) {
          playerIdChangedMessageBuilder_.dispose();
          playerIdChangedMessageBuilder_ = null;
        }
        askKickPlayerMessage_ = null;
        if (askKickPlayerMessageBuilder_ != null) {
          askKickPlayerMessageBuilder_.dispose();
          askKickPlayerMessageBuilder_ = null;
        }
        askKickDeniedMessage_ = null;
        if (askKickDeniedMessageBuilder_ != null) {
          askKickDeniedMessageBuilder_.dispose();
          askKickDeniedMessageBuilder_ = null;
        }
        startKickPetitionMessage_ = null;
        if (startKickPetitionMessageBuilder_ != null) {
          startKickPetitionMessageBuilder_.dispose();
          startKickPetitionMessageBuilder_ = null;
        }
        voteKickRequestMessage_ = null;
        if (voteKickRequestMessageBuilder_ != null) {
          voteKickRequestMessageBuilder_.dispose();
          voteKickRequestMessageBuilder_ = null;
        }
        voteKickReplyMessage_ = null;
        if (voteKickReplyMessageBuilder_ != null) {
          voteKickReplyMessageBuilder_.dispose();
          voteKickReplyMessageBuilder_ = null;
        }
        kickPetitionUpdateMessage_ = null;
        if (kickPetitionUpdateMessageBuilder_ != null) {
          kickPetitionUpdateMessageBuilder_.dispose();
          kickPetitionUpdateMessageBuilder_ = null;
        }
        endKickPetitionMessage_ = null;
        if (endKickPetitionMessageBuilder_ != null) {
          endKickPetitionMessageBuilder_.dispose();
          endKickPetitionMessageBuilder_ = null;
        }
        statisticsMessage_ = null;
        if (statisticsMessageBuilder_ != null) {
          statisticsMessageBuilder_.dispose();
          statisticsMessageBuilder_ = null;
        }
        chatRequestMessage_ = null;
        if (chatRequestMessageBuilder_ != null) {
          chatRequestMessageBuilder_.dispose();
          chatRequestMessageBuilder_ = null;
        }
        chatMessage_ = null;
        if (chatMessageBuilder_ != null) {
          chatMessageBuilder_.dispose();
          chatMessageBuilder_ = null;
        }
        chatRejectMessage_ = null;
        if (chatRejectMessageBuilder_ != null) {
          chatRejectMessageBuilder_.dispose();
          chatRejectMessageBuilder_ = null;
        }
        dialogMessage_ = null;
        if (dialogMessageBuilder_ != null) {
          dialogMessageBuilder_.dispose();
          dialogMessageBuilder_ = null;
        }
        timeoutWarningMessage_ = null;
        if (timeoutWarningMessageBuilder_ != null) {
          timeoutWarningMessageBuilder_.dispose();
          timeoutWarningMessageBuilder_ = null;
        }
        resetTimeoutMessage_ = null;
        if (resetTimeoutMessageBuilder_ != null) {
          resetTimeoutMessageBuilder_.dispose();
          resetTimeoutMessageBuilder_ = null;
        }
        reportAvatarMessage_ = null;
        if (reportAvatarMessageBuilder_ != null) {
          reportAvatarMessageBuilder_.dispose();
          reportAvatarMessageBuilder_ = null;
        }
        reportAvatarAckMessage_ = null;
        if (reportAvatarAckMessageBuilder_ != null) {
          reportAvatarAckMessageBuilder_.dispose();
          reportAvatarAckMessageBuilder_ = null;
        }
        reportGameMessage_ = null;
        if (reportGameMessageBuilder_ != null) {
          reportGameMessageBuilder_.dispose();
          reportGameMessageBuilder_ = null;
        }
        reportGameAckMessage_ = null;
        if (reportGameAckMessageBuilder_ != null) {
          reportGameAckMessageBuilder_.dispose();
          reportGameAckMessageBuilder_ = null;
        }
        errorMessage_ = null;
        if (errorMessageBuilder_ != null) {
          errorMessageBuilder_.dispose();
          errorMessageBuilder_ = null;
        }
        adminRemoveGameMessage_ = null;
        if (adminRemoveGameMessageBuilder_ != null) {
          adminRemoveGameMessageBuilder_.dispose();
          adminRemoveGameMessageBuilder_ = null;
        }
        adminRemoveGameAckMessage_ = null;
        if (adminRemoveGameAckMessageBuilder_ != null) {
          adminRemoveGameAckMessageBuilder_.dispose();
          adminRemoveGameAckMessageBuilder_ = null;
        }
        adminBanPlayerMessage_ = null;
        if (adminBanPlayerMessageBuilder_ != null) {
          adminBanPlayerMessageBuilder_.dispose();
          adminBanPlayerMessageBuilder_ = null;
        }
        adminBanPlayerAckMessage_ = null;
        if (adminBanPlayerAckMessageBuilder_ != null) {
          adminBanPlayerAckMessageBuilder_.dispose();
          adminBanPlayerAckMessageBuilder_ = null;
        }
        gameListSpectatorJoinedMessage_ = null;
        if (gameListSpectatorJoinedMessageBuilder_ != null) {
          gameListSpectatorJoinedMessageBuilder_.dispose();
          gameListSpectatorJoinedMessageBuilder_ = null;
        }
        gameListSpectatorLeftMessage_ = null;
        if (gameListSpectatorLeftMessageBuilder_ != null) {
          gameListSpectatorLeftMessageBuilder_.dispose();
          gameListSpectatorLeftMessageBuilder_ = null;
        }
        gameSpectatorJoinedMessage_ = null;
        if (gameSpectatorJoinedMessageBuilder_ != null) {
          gameSpectatorJoinedMessageBuilder_.dispose();
          gameSpectatorJoinedMessageBuilder_ = null;
        }
        gameSpectatorLeftMessage_ = null;
        if (gameSpectatorLeftMessageBuilder_ != null) {
          gameSpectatorLeftMessageBuilder_.dispose();
          gameSpectatorLeftMessageBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return de.pokerth.protocol.ProtoBuf.internal_static_PokerTHMessage_descriptor;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.PokerTHMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.PokerTHMessage.getDefaultInstance();
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.PokerTHMessage build() {
        de.pokerth.protocol.ProtoBuf.PokerTHMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.PokerTHMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.PokerTHMessage result = new de.pokerth.protocol.ProtoBuf.PokerTHMessage(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        if (bitField1_ != 0) { buildPartial1(result); }
        if (bitField2_ != 0) { buildPartial2(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(de.pokerth.protocol.ProtoBuf.PokerTHMessage result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.messageType_ = messageType_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.announceMessage_ = announceMessageBuilder_ == null
              ? announceMessage_
              : announceMessageBuilder_.build();
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.initMessage_ = initMessageBuilder_ == null
              ? initMessage_
              : initMessageBuilder_.build();
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.authServerChallengeMessage_ = authServerChallengeMessageBuilder_ == null
              ? authServerChallengeMessage_
              : authServerChallengeMessageBuilder_.build();
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.authClientResponseMessage_ = authClientResponseMessageBuilder_ == null
              ? authClientResponseMessage_
              : authClientResponseMessageBuilder_.build();
          to_bitField0_ |= 0x00000010;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.authServerVerificationMessage_ = authServerVerificationMessageBuilder_ == null
              ? authServerVerificationMessage_
              : authServerVerificationMessageBuilder_.build();
          to_bitField0_ |= 0x00000020;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.initAckMessage_ = initAckMessageBuilder_ == null
              ? initAckMessage_
              : initAckMessageBuilder_.build();
          to_bitField0_ |= 0x00000040;
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.avatarRequestMessage_ = avatarRequestMessageBuilder_ == null
              ? avatarRequestMessage_
              : avatarRequestMessageBuilder_.build();
          to_bitField0_ |= 0x00000080;
        }
        if (((from_bitField0_ & 0x00000100) != 0)) {
          result.avatarHeaderMessage_ = avatarHeaderMessageBuilder_ == null
              ? avatarHeaderMessage_
              : avatarHeaderMessageBuilder_.build();
          to_bitField0_ |= 0x00000100;
        }
        if (((from_bitField0_ & 0x00000200) != 0)) {
          result.avatarDataMessage_ = avatarDataMessageBuilder_ == null
              ? avatarDataMessage_
              : avatarDataMessageBuilder_.build();
          to_bitField0_ |= 0x00000200;
        }
        if (((from_bitField0_ & 0x00000400) != 0)) {
          result.avatarEndMessage_ = avatarEndMessageBuilder_ == null
              ? avatarEndMessage_
              : avatarEndMessageBuilder_.build();
          to_bitField0_ |= 0x00000400;
        }
        if (((from_bitField0_ & 0x00000800) != 0)) {
          result.unknownAvatarMessage_ = unknownAvatarMessageBuilder_ == null
              ? unknownAvatarMessage_
              : unknownAvatarMessageBuilder_.build();
          to_bitField0_ |= 0x00000800;
        }
        if (((from_bitField0_ & 0x00001000) != 0)) {
          result.playerListMessage_ = playerListMessageBuilder_ == null
              ? playerListMessage_
              : playerListMessageBuilder_.build();
          to_bitField0_ |= 0x00001000;
        }
        if (((from_bitField0_ & 0x00002000) != 0)) {
          result.gameListNewMessage_ = gameListNewMessageBuilder_ == null
              ? gameListNewMessage_
              : gameListNewMessageBuilder_.build();
          to_bitField0_ |= 0x00002000;
        }
        if (((from_bitField0_ & 0x00004000) != 0)) {
          result.gameListUpdateMessage_ = gameListUpdateMessageBuilder_ == null
              ? gameListUpdateMessage_
              : gameListUpdateMessageBuilder_.build();
          to_bitField0_ |= 0x00004000;
        }
        if (((from_bitField0_ & 0x00008000) != 0)) {
          result.gameListPlayerJoinedMessage_ = gameListPlayerJoinedMessageBuilder_ == null
              ? gameListPlayerJoinedMessage_
              : gameListPlayerJoinedMessageBuilder_.build();
          to_bitField0_ |= 0x00008000;
        }
        if (((from_bitField0_ & 0x00010000) != 0)) {
          result.gameListPlayerLeftMessage_ = gameListPlayerLeftMessageBuilder_ == null
              ? gameListPlayerLeftMessage_
              : gameListPlayerLeftMessageBuilder_.build();
          to_bitField0_ |= 0x00010000;
        }
        if (((from_bitField0_ & 0x00020000) != 0)) {
          result.gameListAdminChangedMessage_ = gameListAdminChangedMessageBuilder_ == null
              ? gameListAdminChangedMessage_
              : gameListAdminChangedMessageBuilder_.build();
          to_bitField0_ |= 0x00020000;
        }
        if (((from_bitField0_ & 0x00040000) != 0)) {
          result.playerInfoRequestMessage_ = playerInfoRequestMessageBuilder_ == null
              ? playerInfoRequestMessage_
              : playerInfoRequestMessageBuilder_.build();
          to_bitField0_ |= 0x00040000;
        }
        if (((from_bitField0_ & 0x00080000) != 0)) {
          result.playerInfoReplyMessage_ = playerInfoReplyMessageBuilder_ == null
              ? playerInfoReplyMessage_
              : playerInfoReplyMessageBuilder_.build();
          to_bitField0_ |= 0x00080000;
        }
        if (((from_bitField0_ & 0x00100000) != 0)) {
          result.subscriptionRequestMessage_ = subscriptionRequestMessageBuilder_ == null
              ? subscriptionRequestMessage_
              : subscriptionRequestMessageBuilder_.build();
          to_bitField0_ |= 0x00100000;
        }
        if (((from_bitField0_ & 0x00200000) != 0)) {
          result.joinExistingGameMessage_ = joinExistingGameMessageBuilder_ == null
              ? joinExistingGameMessage_
              : joinExistingGameMessageBuilder_.build();
          to_bitField0_ |= 0x00200000;
        }
        if (((from_bitField0_ & 0x00400000) != 0)) {
          result.joinNewGameMessage_ = joinNewGameMessageBuilder_ == null
              ? joinNewGameMessage_
              : joinNewGameMessageBuilder_.build();
          to_bitField0_ |= 0x00400000;
        }
        if (((from_bitField0_ & 0x00800000) != 0)) {
          result.rejoinExistingGameMessage_ = rejoinExistingGameMessageBuilder_ == null
              ? rejoinExistingGameMessage_
              : rejoinExistingGameMessageBuilder_.build();
          to_bitField0_ |= 0x00800000;
        }
        if (((from_bitField0_ & 0x01000000) != 0)) {
          result.joinGameAckMessage_ = joinGameAckMessageBuilder_ == null
              ? joinGameAckMessage_
              : joinGameAckMessageBuilder_.build();
          to_bitField0_ |= 0x01000000;
        }
        if (((from_bitField0_ & 0x02000000) != 0)) {
          result.joinGameFailedMessage_ = joinGameFailedMessageBuilder_ == null
              ? joinGameFailedMessage_
              : joinGameFailedMessageBuilder_.build();
          to_bitField0_ |= 0x02000000;
        }
        if (((from_bitField0_ & 0x04000000) != 0)) {
          result.gamePlayerJoinedMessage_ = gamePlayerJoinedMessageBuilder_ == null
              ? gamePlayerJoinedMessage_
              : gamePlayerJoinedMessageBuilder_.build();
          to_bitField0_ |= 0x04000000;
        }
        if (((from_bitField0_ & 0x08000000) != 0)) {
          result.gamePlayerLeftMessage_ = gamePlayerLeftMessageBuilder_ == null
              ? gamePlayerLeftMessage_
              : gamePlayerLeftMessageBuilder_.build();
          to_bitField0_ |= 0x08000000;
        }
        if (((from_bitField0_ & 0x10000000) != 0)) {
          result.gameAdminChangedMessage_ = gameAdminChangedMessageBuilder_ == null
              ? gameAdminChangedMessage_
              : gameAdminChangedMessageBuilder_.build();
          to_bitField0_ |= 0x10000000;
        }
        if (((from_bitField0_ & 0x20000000) != 0)) {
          result.removedFromGameMessage_ = removedFromGameMessageBuilder_ == null
              ? removedFromGameMessage_
              : removedFromGameMessageBuilder_.build();
          to_bitField0_ |= 0x20000000;
        }
        if (((from_bitField0_ & 0x40000000) != 0)) {
          result.kickPlayerRequestMessage_ = kickPlayerRequestMessageBuilder_ == null
              ? kickPlayerRequestMessage_
              : kickPlayerRequestMessageBuilder_.build();
          to_bitField0_ |= 0x40000000;
        }
        if (((from_bitField0_ & 0x80000000) != 0)) {
          result.leaveGameRequestMessage_ = leaveGameRequestMessageBuilder_ == null
              ? leaveGameRequestMessage_
              : leaveGameRequestMessageBuilder_.build();
          to_bitField0_ |= 0x80000000;
        }
        result.bitField0_ |= to_bitField0_;
      }

      private void buildPartial1(de.pokerth.protocol.ProtoBuf.PokerTHMessage result) {
        int from_bitField1_ = bitField1_;
        int to_bitField1_ = 0;
        if (((from_bitField1_ & 0x00000001) != 0)) {
          result.invitePlayerToGameMessage_ = invitePlayerToGameMessageBuilder_ == null
              ? invitePlayerToGameMessage_
              : invitePlayerToGameMessageBuilder_.build();
          to_bitField1_ |= 0x00000001;
        }
        if (((from_bitField1_ & 0x00000002) != 0)) {
          result.inviteNotifyMessage_ = inviteNotifyMessageBuilder_ == null
              ? inviteNotifyMessage_
              : inviteNotifyMessageBuilder_.build();
          to_bitField1_ |= 0x00000002;
        }
        if (((from_bitField1_ & 0x00000004) != 0)) {
          result.rejectGameInvitationMessage_ = rejectGameInvitationMessageBuilder_ == null
              ? rejectGameInvitationMessage_
              : rejectGameInvitationMessageBuilder_.build();
          to_bitField1_ |= 0x00000004;
        }
        if (((from_bitField1_ & 0x00000008) != 0)) {
          result.rejectInvNotifyMessage_ = rejectInvNotifyMessageBuilder_ == null
              ? rejectInvNotifyMessage_
              : rejectInvNotifyMessageBuilder_.build();
          to_bitField1_ |= 0x00000008;
        }
        if (((from_bitField1_ & 0x00000010) != 0)) {
          result.startEventMessage_ = startEventMessageBuilder_ == null
              ? startEventMessage_
              : startEventMessageBuilder_.build();
          to_bitField1_ |= 0x00000010;
        }
        if (((from_bitField1_ & 0x00000020) != 0)) {
          result.startEventAckMessage_ = startEventAckMessageBuilder_ == null
              ? startEventAckMessage_
              : startEventAckMessageBuilder_.build();
          to_bitField1_ |= 0x00000020;
        }
        if (((from_bitField1_ & 0x00000040) != 0)) {
          result.gameStartInitialMessage_ = gameStartInitialMessageBuilder_ == null
              ? gameStartInitialMessage_
              : gameStartInitialMessageBuilder_.build();
          to_bitField1_ |= 0x00000040;
        }
        if (((from_bitField1_ & 0x00000080) != 0)) {
          result.gameStartRejoinMessage_ = gameStartRejoinMessageBuilder_ == null
              ? gameStartRejoinMessage_
              : gameStartRejoinMessageBuilder_.build();
          to_bitField1_ |= 0x00000080;
        }
        if (((from_bitField1_ & 0x00000100) != 0)) {
          result.handStartMessage_ = handStartMessageBuilder_ == null
              ? handStartMessage_
              : handStartMessageBuilder_.build();
          to_bitField1_ |= 0x00000100;
        }
        if (((from_bitField1_ & 0x00000200) != 0)) {
          result.playersTurnMessage_ = playersTurnMessageBuilder_ == null
              ? playersTurnMessage_
              : playersTurnMessageBuilder_.build();
          to_bitField1_ |= 0x00000200;
        }
        if (((from_bitField1_ & 0x00000400) != 0)) {
          result.myActionRequestMessage_ = myActionRequestMessageBuilder_ == null
              ? myActionRequestMessage_
              : myActionRequestMessageBuilder_.build();
          to_bitField1_ |= 0x00000400;
        }
        if (((from_bitField1_ & 0x00000800) != 0)) {
          result.yourActionRejectedMessage_ = yourActionRejectedMessageBuilder_ == null
              ? yourActionRejectedMessage_
              : yourActionRejectedMessageBuilder_.build();
          to_bitField1_ |= 0x00000800;
        }
        if (((from_bitField1_ & 0x00001000) != 0)) {
          result.playersActionDoneMessage_ = playersActionDoneMessageBuilder_ == null
              ? playersActionDoneMessage_
              : playersActionDoneMessageBuilder_.build();
          to_bitField1_ |= 0x00001000;
        }
        if (((from_bitField1_ & 0x00002000) != 0)) {
          result.dealFlopCardsMessage_ = dealFlopCardsMessageBuilder_ == null
              ? dealFlopCardsMessage_
              : dealFlopCardsMessageBuilder_.build();
          to_bitField1_ |= 0x00002000;
        }
        if (((from_bitField1_ & 0x00004000) != 0)) {
          result.dealTurnCardMessage_ = dealTurnCardMessageBuilder_ == null
              ? dealTurnCardMessage_
              : dealTurnCardMessageBuilder_.build();
          to_bitField1_ |= 0x00004000;
        }
        if (((from_bitField1_ & 0x00008000) != 0)) {
          result.dealRiverCardMessage_ = dealRiverCardMessageBuilder_ == null
              ? dealRiverCardMessage_
              : dealRiverCardMessageBuilder_.build();
          to_bitField1_ |= 0x00008000;
        }
        if (((from_bitField1_ & 0x00010000) != 0)) {
          result.allInShowCardsMessage_ = allInShowCardsMessageBuilder_ == null
              ? allInShowCardsMessage_
              : allInShowCardsMessageBuilder_.build();
          to_bitField1_ |= 0x00010000;
        }
        if (((from_bitField1_ & 0x00020000) != 0)) {
          result.endOfHandShowCardsMessage_ = endOfHandShowCardsMessageBuilder_ == null
              ? endOfHandShowCardsMessage_
              : endOfHandShowCardsMessageBuilder_.build();
          to_bitField1_ |= 0x00020000;
        }
        if (((from_bitField1_ & 0x00040000) != 0)) {
          result.endOfHandHideCardsMessage_ = endOfHandHideCardsMessageBuilder_ == null
              ? endOfHandHideCardsMessage_
              : endOfHandHideCardsMessageBuilder_.build();
          to_bitField1_ |= 0x00040000;
        }
        if (((from_bitField1_ & 0x00080000) != 0)) {
          result.showMyCardsRequestMessage_ = showMyCardsRequestMessageBuilder_ == null
              ? showMyCardsRequestMessage_
              : showMyCardsRequestMessageBuilder_.build();
          to_bitField1_ |= 0x00080000;
        }
        if (((from_bitField1_ & 0x00100000) != 0)) {
          result.afterHandShowCardsMessage_ = afterHandShowCardsMessageBuilder_ == null
              ? afterHandShowCardsMessage_
              : afterHandShowCardsMessageBuilder_.build();
          to_bitField1_ |= 0x00100000;
        }
        if (((from_bitField1_ & 0x00200000) != 0)) {
          result.endOfGameMessage_ = endOfGameMessageBuilder_ == null
              ? endOfGameMessage_
              : endOfGameMessageBuilder_.build();
          to_bitField1_ |= 0x00200000;
        }
        if (((from_bitField1_ & 0x00400000) != 0)) {
          result.playerIdChangedMessage_ = playerIdChangedMessageBuilder_ == null
              ? playerIdChangedMessage_
              : playerIdChangedMessageBuilder_.build();
          to_bitField1_ |= 0x00400000;
        }
        if (((from_bitField1_ & 0x00800000) != 0)) {
          result.askKickPlayerMessage_ = askKickPlayerMessageBuilder_ == null
              ? askKickPlayerMessage_
              : askKickPlayerMessageBuilder_.build();
          to_bitField1_ |= 0x00800000;
        }
        if (((from_bitField1_ & 0x01000000) != 0)) {
          result.askKickDeniedMessage_ = askKickDeniedMessageBuilder_ == null
              ? askKickDeniedMessage_
              : askKickDeniedMessageBuilder_.build();
          to_bitField1_ |= 0x01000000;
        }
        if (((from_bitField1_ & 0x02000000) != 0)) {
          result.startKickPetitionMessage_ = startKickPetitionMessageBuilder_ == null
              ? startKickPetitionMessage_
              : startKickPetitionMessageBuilder_.build();
          to_bitField1_ |= 0x02000000;
        }
        if (((from_bitField1_ & 0x04000000) != 0)) {
          result.voteKickRequestMessage_ = voteKickRequestMessageBuilder_ == null
              ? voteKickRequestMessage_
              : voteKickRequestMessageBuilder_.build();
          to_bitField1_ |= 0x04000000;
        }
        if (((from_bitField1_ & 0x08000000) != 0)) {
          result.voteKickReplyMessage_ = voteKickReplyMessageBuilder_ == null
              ? voteKickReplyMessage_
              : voteKickReplyMessageBuilder_.build();
          to_bitField1_ |= 0x08000000;
        }
        if (((from_bitField1_ & 0x10000000) != 0)) {
          result.kickPetitionUpdateMessage_ = kickPetitionUpdateMessageBuilder_ == null
              ? kickPetitionUpdateMessage_
              : kickPetitionUpdateMessageBuilder_.build();
          to_bitField1_ |= 0x10000000;
        }
        if (((from_bitField1_ & 0x20000000) != 0)) {
          result.endKickPetitionMessage_ = endKickPetitionMessageBuilder_ == null
              ? endKickPetitionMessage_
              : endKickPetitionMessageBuilder_.build();
          to_bitField1_ |= 0x20000000;
        }
        if (((from_bitField1_ & 0x40000000) != 0)) {
          result.statisticsMessage_ = statisticsMessageBuilder_ == null
              ? statisticsMessage_
              : statisticsMessageBuilder_.build();
          to_bitField1_ |= 0x40000000;
        }
        if (((from_bitField1_ & 0x80000000) != 0)) {
          result.chatRequestMessage_ = chatRequestMessageBuilder_ == null
              ? chatRequestMessage_
              : chatRequestMessageBuilder_.build();
          to_bitField1_ |= 0x80000000;
        }
        result.bitField1_ |= to_bitField1_;
      }

      private void buildPartial2(de.pokerth.protocol.ProtoBuf.PokerTHMessage result) {
        int from_bitField2_ = bitField2_;
        int to_bitField2_ = 0;
        if (((from_bitField2_ & 0x00000001) != 0)) {
          result.chatMessage_ = chatMessageBuilder_ == null
              ? chatMessage_
              : chatMessageBuilder_.build();
          to_bitField2_ |= 0x00000001;
        }
        if (((from_bitField2_ & 0x00000002) != 0)) {
          result.chatRejectMessage_ = chatRejectMessageBuilder_ == null
              ? chatRejectMessage_
              : chatRejectMessageBuilder_.build();
          to_bitField2_ |= 0x00000002;
        }
        if (((from_bitField2_ & 0x00000004) != 0)) {
          result.dialogMessage_ = dialogMessageBuilder_ == null
              ? dialogMessage_
              : dialogMessageBuilder_.build();
          to_bitField2_ |= 0x00000004;
        }
        if (((from_bitField2_ & 0x00000008) != 0)) {
          result.timeoutWarningMessage_ = timeoutWarningMessageBuilder_ == null
              ? timeoutWarningMessage_
              : timeoutWarningMessageBuilder_.build();
          to_bitField2_ |= 0x00000008;
        }
        if (((from_bitField2_ & 0x00000010) != 0)) {
          result.resetTimeoutMessage_ = resetTimeoutMessageBuilder_ == null
              ? resetTimeoutMessage_
              : resetTimeoutMessageBuilder_.build();
          to_bitField2_ |= 0x00000010;
        }
        if (((from_bitField2_ & 0x00000020) != 0)) {
          result.reportAvatarMessage_ = reportAvatarMessageBuilder_ == null
              ? reportAvatarMessage_
              : reportAvatarMessageBuilder_.build();
          to_bitField2_ |= 0x00000020;
        }
        if (((from_bitField2_ & 0x00000040) != 0)) {
          result.reportAvatarAckMessage_ = reportAvatarAckMessageBuilder_ == null
              ? reportAvatarAckMessage_
              : reportAvatarAckMessageBuilder_.build();
          to_bitField2_ |= 0x00000040;
        }
        if (((from_bitField2_ & 0x00000080) != 0)) {
          result.reportGameMessage_ = reportGameMessageBuilder_ == null
              ? reportGameMessage_
              : reportGameMessageBuilder_.build();
          to_bitField2_ |= 0x00000080;
        }
        if (((from_bitField2_ & 0x00000100) != 0)) {
          result.reportGameAckMessage_ = reportGameAckMessageBuilder_ == null
              ? reportGameAckMessage_
              : reportGameAckMessageBuilder_.build();
          to_bitField2_ |= 0x00000100;
        }
        if (((from_bitField2_ & 0x00000200) != 0)) {
          result.errorMessage_ = errorMessageBuilder_ == null
              ? errorMessage_
              : errorMessageBuilder_.build();
          to_bitField2_ |= 0x00000200;
        }
        if (((from_bitField2_ & 0x00000400) != 0)) {
          result.adminRemoveGameMessage_ = adminRemoveGameMessageBuilder_ == null
              ? adminRemoveGameMessage_
              : adminRemoveGameMessageBuilder_.build();
          to_bitField2_ |= 0x00000400;
        }
        if (((from_bitField2_ & 0x00000800) != 0)) {
          result.adminRemoveGameAckMessage_ = adminRemoveGameAckMessageBuilder_ == null
              ? adminRemoveGameAckMessage_
              : adminRemoveGameAckMessageBuilder_.build();
          to_bitField2_ |= 0x00000800;
        }
        if (((from_bitField2_ & 0x00001000) != 0)) {
          result.adminBanPlayerMessage_ = adminBanPlayerMessageBuilder_ == null
              ? adminBanPlayerMessage_
              : adminBanPlayerMessageBuilder_.build();
          to_bitField2_ |= 0x00001000;
        }
        if (((from_bitField2_ & 0x00002000) != 0)) {
          result.adminBanPlayerAckMessage_ = adminBanPlayerAckMessageBuilder_ == null
              ? adminBanPlayerAckMessage_
              : adminBanPlayerAckMessageBuilder_.build();
          to_bitField2_ |= 0x00002000;
        }
        if (((from_bitField2_ & 0x00004000) != 0)) {
          result.gameListSpectatorJoinedMessage_ = gameListSpectatorJoinedMessageBuilder_ == null
              ? gameListSpectatorJoinedMessage_
              : gameListSpectatorJoinedMessageBuilder_.build();
          to_bitField2_ |= 0x00004000;
        }
        if (((from_bitField2_ & 0x00008000) != 0)) {
          result.gameListSpectatorLeftMessage_ = gameListSpectatorLeftMessageBuilder_ == null
              ? gameListSpectatorLeftMessage_
              : gameListSpectatorLeftMessageBuilder_.build();
          to_bitField2_ |= 0x00008000;
        }
        if (((from_bitField2_ & 0x00010000) != 0)) {
          result.gameSpectatorJoinedMessage_ = gameSpectatorJoinedMessageBuilder_ == null
              ? gameSpectatorJoinedMessage_
              : gameSpectatorJoinedMessageBuilder_.build();
          to_bitField2_ |= 0x00010000;
        }
        if (((from_bitField2_ & 0x00020000) != 0)) {
          result.gameSpectatorLeftMessage_ = gameSpectatorLeftMessageBuilder_ == null
              ? gameSpectatorLeftMessage_
              : gameSpectatorLeftMessageBuilder_.build();
          to_bitField2_ |= 0x00020000;
        }
        result.bitField2_ |= to_bitField2_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof de.pokerth.protocol.ProtoBuf.PokerTHMessage) {
          return mergeFrom((de.pokerth.protocol.ProtoBuf.PokerTHMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.PokerTHMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.PokerTHMessage.getDefaultInstance()) return this;
        if (other.hasMessageType()) {
          setMessageType(other.getMessageType());
        }
        if (other.hasAnnounceMessage()) {
          mergeAnnounceMessage(other.getAnnounceMessage());
        }
        if (other.hasInitMessage()) {
          mergeInitMessage(other.getInitMessage());
        }
        if (other.hasAuthServerChallengeMessage()) {
          mergeAuthServerChallengeMessage(other.getAuthServerChallengeMessage());
        }
        if (other.hasAuthClientResponseMessage()) {
          mergeAuthClientResponseMessage(other.getAuthClientResponseMessage());
        }
        if (other.hasAuthServerVerificationMessage()) {
          mergeAuthServerVerificationMessage(other.getAuthServerVerificationMessage());
        }
        if (other.hasInitAckMessage()) {
          mergeInitAckMessage(other.getInitAckMessage());
        }
        if (other.hasAvatarRequestMessage()) {
          mergeAvatarRequestMessage(other.getAvatarRequestMessage());
        }
        if (other.hasAvatarHeaderMessage()) {
          mergeAvatarHeaderMessage(other.getAvatarHeaderMessage());
        }
        if (other.hasAvatarDataMessage()) {
          mergeAvatarDataMessage(other.getAvatarDataMessage());
        }
        if (other.hasAvatarEndMessage()) {
          mergeAvatarEndMessage(other.getAvatarEndMessage());
        }
        if (other.hasUnknownAvatarMessage()) {
          mergeUnknownAvatarMessage(other.getUnknownAvatarMessage());
        }
        if (other.hasPlayerListMessage()) {
          mergePlayerListMessage(other.getPlayerListMessage());
        }
        if (other.hasGameListNewMessage()) {
          mergeGameListNewMessage(other.getGameListNewMessage());
        }
        if (other.hasGameListUpdateMessage()) {
          mergeGameListUpdateMessage(other.getGameListUpdateMessage());
        }
        if (other.hasGameListPlayerJoinedMessage()) {
          mergeGameListPlayerJoinedMessage(other.getGameListPlayerJoinedMessage());
        }
        if (other.hasGameListPlayerLeftMessage()) {
          mergeGameListPlayerLeftMessage(other.getGameListPlayerLeftMessage());
        }
        if (other.hasGameListAdminChangedMessage()) {
          mergeGameListAdminChangedMessage(other.getGameListAdminChangedMessage());
        }
        if (other.hasPlayerInfoRequestMessage()) {
          mergePlayerInfoRequestMessage(other.getPlayerInfoRequestMessage());
        }
        if (other.hasPlayerInfoReplyMessage()) {
          mergePlayerInfoReplyMessage(other.getPlayerInfoReplyMessage());
        }
        if (other.hasSubscriptionRequestMessage()) {
          mergeSubscriptionRequestMessage(other.getSubscriptionRequestMessage());
        }
        if (other.hasJoinExistingGameMessage()) {
          mergeJoinExistingGameMessage(other.getJoinExistingGameMessage());
        }
        if (other.hasJoinNewGameMessage()) {
          mergeJoinNewGameMessage(other.getJoinNewGameMessage());
        }
        if (other.hasRejoinExistingGameMessage()) {
          mergeRejoinExistingGameMessage(other.getRejoinExistingGameMessage());
        }
        if (other.hasJoinGameAckMessage()) {
          mergeJoinGameAckMessage(other.getJoinGameAckMessage());
        }
        if (other.hasJoinGameFailedMessage()) {
          mergeJoinGameFailedMessage(other.getJoinGameFailedMessage());
        }
        if (other.hasGamePlayerJoinedMessage()) {
          mergeGamePlayerJoinedMessage(other.getGamePlayerJoinedMessage());
        }
        if (other.hasGamePlayerLeftMessage()) {
          mergeGamePlayerLeftMessage(other.getGamePlayerLeftMessage());
        }
        if (other.hasGameAdminChangedMessage()) {
          mergeGameAdminChangedMessage(other.getGameAdminChangedMessage());
        }
        if (other.hasRemovedFromGameMessage()) {
          mergeRemovedFromGameMessage(other.getRemovedFromGameMessage());
        }
        if (other.hasKickPlayerRequestMessage()) {
          mergeKickPlayerRequestMessage(other.getKickPlayerRequestMessage());
        }
        if (other.hasLeaveGameRequestMessage()) {
          mergeLeaveGameRequestMessage(other.getLeaveGameRequestMessage());
        }
        if (other.hasInvitePlayerToGameMessage()) {
          mergeInvitePlayerToGameMessage(other.getInvitePlayerToGameMessage());
        }
        if (other.hasInviteNotifyMessage()) {
          mergeInviteNotifyMessage(other.getInviteNotifyMessage());
        }
        if (other.hasRejectGameInvitationMessage()) {
          mergeRejectGameInvitationMessage(other.getRejectGameInvitationMessage());
        }
        if (other.hasRejectInvNotifyMessage()) {
          mergeRejectInvNotifyMessage(other.getRejectInvNotifyMessage());
        }
        if (other.hasStartEventMessage()) {
          mergeStartEventMessage(other.getStartEventMessage());
        }
        if (other.hasStartEventAckMessage()) {
          mergeStartEventAckMessage(other.getStartEventAckMessage());
        }
        if (other.hasGameStartInitialMessage()) {
          mergeGameStartInitialMessage(other.getGameStartInitialMessage());
        }
        if (other.hasGameStartRejoinMessage()) {
          mergeGameStartRejoinMessage(other.getGameStartRejoinMessage());
        }
        if (other.hasHandStartMessage()) {
          mergeHandStartMessage(other.getHandStartMessage());
        }
        if (other.hasPlayersTurnMessage()) {
          mergePlayersTurnMessage(other.getPlayersTurnMessage());
        }
        if (other.hasMyActionRequestMessage()) {
          mergeMyActionRequestMessage(other.getMyActionRequestMessage());
        }
        if (other.hasYourActionRejectedMessage()) {
          mergeYourActionRejectedMessage(other.getYourActionRejectedMessage());
        }
        if (other.hasPlayersActionDoneMessage()) {
          mergePlayersActionDoneMessage(other.getPlayersActionDoneMessage());
        }
        if (other.hasDealFlopCardsMessage()) {
          mergeDealFlopCardsMessage(other.getDealFlopCardsMessage());
        }
        if (other.hasDealTurnCardMessage()) {
          mergeDealTurnCardMessage(other.getDealTurnCardMessage());
        }
        if (other.hasDealRiverCardMessage()) {
          mergeDealRiverCardMessage(other.getDealRiverCardMessage());
        }
        if (other.hasAllInShowCardsMessage()) {
          mergeAllInShowCardsMessage(other.getAllInShowCardsMessage());
        }
        if (other.hasEndOfHandShowCardsMessage()) {
          mergeEndOfHandShowCardsMessage(other.getEndOfHandShowCardsMessage());
        }
        if (other.hasEndOfHandHideCardsMessage()) {
          mergeEndOfHandHideCardsMessage(other.getEndOfHandHideCardsMessage());
        }
        if (other.hasShowMyCardsRequestMessage()) {
          mergeShowMyCardsRequestMessage(other.getShowMyCardsRequestMessage());
        }
        if (other.hasAfterHandShowCardsMessage()) {
          mergeAfterHandShowCardsMessage(other.getAfterHandShowCardsMessage());
        }
        if (other.hasEndOfGameMessage()) {
          mergeEndOfGameMessage(other.getEndOfGameMessage());
        }
        if (other.hasPlayerIdChangedMessage()) {
          mergePlayerIdChangedMessage(other.getPlayerIdChangedMessage());
        }
        if (other.hasAskKickPlayerMessage()) {
          mergeAskKickPlayerMessage(other.getAskKickPlayerMessage());
        }
        if (other.hasAskKickDeniedMessage()) {
          mergeAskKickDeniedMessage(other.getAskKickDeniedMessage());
        }
        if (other.hasStartKickPetitionMessage()) {
          mergeStartKickPetitionMessage(other.getStartKickPetitionMessage());
        }
        if (other.hasVoteKickRequestMessage()) {
          mergeVoteKickRequestMessage(other.getVoteKickRequestMessage());
        }
        if (other.hasVoteKickReplyMessage()) {
          mergeVoteKickReplyMessage(other.getVoteKickReplyMessage());
        }
        if (other.hasKickPetitionUpdateMessage()) {
          mergeKickPetitionUpdateMessage(other.getKickPetitionUpdateMessage());
        }
        if (other.hasEndKickPetitionMessage()) {
          mergeEndKickPetitionMessage(other.getEndKickPetitionMessage());
        }
        if (other.hasStatisticsMessage()) {
          mergeStatisticsMessage(other.getStatisticsMessage());
        }
        if (other.hasChatRequestMessage()) {
          mergeChatRequestMessage(other.getChatRequestMessage());
        }
        if (other.hasChatMessage()) {
          mergeChatMessage(other.getChatMessage());
        }
        if (other.hasChatRejectMessage()) {
          mergeChatRejectMessage(other.getChatRejectMessage());
        }
        if (other.hasDialogMessage()) {
          mergeDialogMessage(other.getDialogMessage());
        }
        if (other.hasTimeoutWarningMessage()) {
          mergeTimeoutWarningMessage(other.getTimeoutWarningMessage());
        }
        if (other.hasResetTimeoutMessage()) {
          mergeResetTimeoutMessage(other.getResetTimeoutMessage());
        }
        if (other.hasReportAvatarMessage()) {
          mergeReportAvatarMessage(other.getReportAvatarMessage());
        }
        if (other.hasReportAvatarAckMessage()) {
          mergeReportAvatarAckMessage(other.getReportAvatarAckMessage());
        }
        if (other.hasReportGameMessage()) {
          mergeReportGameMessage(other.getReportGameMessage());
        }
        if (other.hasReportGameAckMessage()) {
          mergeReportGameAckMessage(other.getReportGameAckMessage());
        }
        if (other.hasErrorMessage()) {
          mergeErrorMessage(other.getErrorMessage());
        }
        if (other.hasAdminRemoveGameMessage()) {
          mergeAdminRemoveGameMessage(other.getAdminRemoveGameMessage());
        }
        if (other.hasAdminRemoveGameAckMessage()) {
          mergeAdminRemoveGameAckMessage(other.getAdminRemoveGameAckMessage());
        }
        if (other.hasAdminBanPlayerMessage()) {
          mergeAdminBanPlayerMessage(other.getAdminBanPlayerMessage());
        }
        if (other.hasAdminBanPlayerAckMessage()) {
          mergeAdminBanPlayerAckMessage(other.getAdminBanPlayerAckMessage());
        }
        if (other.hasGameListSpectatorJoinedMessage()) {
          mergeGameListSpectatorJoinedMessage(other.getGameListSpectatorJoinedMessage());
        }
        if (other.hasGameListSpectatorLeftMessage()) {
          mergeGameListSpectatorLeftMessage(other.getGameListSpectatorLeftMessage());
        }
        if (other.hasGameSpectatorJoinedMessage()) {
          mergeGameSpectatorJoinedMessage(other.getGameSpectatorJoinedMessage());
        }
        if (other.hasGameSpectatorLeftMessage()) {
          mergeGameSpectatorLeftMessage(other.getGameSpectatorLeftMessage());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasMessageType()) {
          return false;
        }
        if (hasAnnounceMessage()) {
          if (!getAnnounceMessage().isInitialized()) {
            return false;
          }
        }
        if (hasInitMessage()) {
          if (!getInitMessage().isInitialized()) {
            return false;
          }
        }
        if (hasAuthServerChallengeMessage()) {
          if (!getAuthServerChallengeMessage().isInitialized()) {
            return false;
          }
        }
        if (hasAuthClientResponseMessage()) {
          if (!getAuthClientResponseMessage().isInitialized()) {
            return false;
          }
        }
        if (hasAuthServerVerificationMessage()) {
          if (!getAuthServerVerificationMessage().isInitialized()) {
            return false;
          }
        }
        if (hasInitAckMessage()) {
          if (!getInitAckMessage().isInitialized()) {
            return false;
          }
        }
        if (hasAvatarRequestMessage()) {
          if (!getAvatarRequestMessage().isInitialized()) {
            return false;
          }
        }
        if (hasAvatarHeaderMessage()) {
          if (!getAvatarHeaderMessage().isInitialized()) {
            return false;
          }
        }
        if (hasAvatarDataMessage()) {
          if (!getAvatarDataMessage().isInitialized()) {
            return false;
          }
        }
        if (hasAvatarEndMessage()) {
          if (!getAvatarEndMessage().isInitialized()) {
            return false;
          }
        }
        if (hasUnknownAvatarMessage()) {
          if (!getUnknownAvatarMessage().isInitialized()) {
            return false;
          }
        }
        if (hasPlayerListMessage()) {
          if (!getPlayerListMessage().isInitialized()) {
            return false;
          }
        }
        if (hasGameListNewMessage()) {
          if (!getGameListNewMessage().isInitialized()) {
            return false;
          }
        }
        if (hasGameListUpdateMessage()) {
          if (!getGameListUpdateMessage().isInitialized()) {
            return false;
          }
        }
        if (hasGameListPlayerJoinedMessage()) {
          if (!getGameListPlayerJoinedMessage().isInitialized()) {
            return false;
          }
        }
        if (hasGameListPlayerLeftMessage()) {
          if (!getGameListPlayerLeftMessage().isInitialized()) {
            return false;
          }
        }
        if (hasGameListAdminChangedMessage()) {
          if (!getGameListAdminChangedMessage().isInitialized()) {
            return false;
          }
        }
        if (hasPlayerInfoReplyMessage()) {
          if (!getPlayerInfoReplyMessage().isInitialized()) {
            return false;
          }
        }
        if (hasSubscriptionRequestMessage()) {
          if (!getSubscriptionRequestMessage().isInitialized()) {
            return false;
          }
        }
        if (hasJoinExistingGameMessage()) {
          if (!getJoinExistingGameMessage().isInitialized()) {
            return false;
          }
        }
        if (hasJoinNewGameMessage()) {
          if (!getJoinNewGameMessage().isInitialized()) {
            return false;
          }
        }
        if (hasRejoinExistingGameMessage()) {
          if (!getRejoinExistingGameMessage().isInitialized()) {
            return false;
          }
        }
        if (hasJoinGameAckMessage()) {
          if (!getJoinGameAckMessage().isInitialized()) {
            return false;
          }
        }
        if (hasJoinGameFailedMessage()) {
          if (!getJoinGameFailedMessage().isInitialized()) {
            return false;
          }
        }
        if (hasGamePlayerJoinedMessage()) {
          if (!getGamePlayerJoinedMessage().isInitialized()) {
            return false;
          }
        }
        if (hasGamePlayerLeftMessage()) {
          if (!getGamePlayerLeftMessage().isInitialized()) {
            return false;
          }
        }
        if (hasGameAdminChangedMessage()) {
          if (!getGameAdminChangedMessage().isInitialized()) {
            return false;
          }
        }
        if (hasRemovedFromGameMessage()) {
          if (!getRemovedFromGameMessage().isInitialized()) {
            return false;
          }
        }
        if (hasKickPlayerRequestMessage()) {
          if (!getKickPlayerRequestMessage().isInitialized()) {
            return false;
          }
        }
        if (hasLeaveGameRequestMessage()) {
          if (!getLeaveGameRequestMessage().isInitialized()) {
            return false;
          }
        }
        if (hasInvitePlayerToGameMessage()) {
          if (!getInvitePlayerToGameMessage().isInitialized()) {
            return false;
          }
        }
        if (hasInviteNotifyMessage()) {
          if (!getInviteNotifyMessage().isInitialized()) {
            return false;
          }
        }
        if (hasRejectGameInvitationMessage()) {
          if (!getRejectGameInvitationMessage().isInitialized()) {
            return false;
          }
        }
        if (hasRejectInvNotifyMessage()) {
          if (!getRejectInvNotifyMessage().isInitialized()) {
            return false;
          }
        }
        if (hasStartEventMessage()) {
          if (!getStartEventMessage().isInitialized()) {
            return false;
          }
        }
        if (hasStartEventAckMessage()) {
          if (!getStartEventAckMessage().isInitialized()) {
            return false;
          }
        }
        if (hasGameStartInitialMessage()) {
          if (!getGameStartInitialMessage().isInitialized()) {
            return false;
          }
        }
        if (hasGameStartRejoinMessage()) {
          if (!getGameStartRejoinMessage().isInitialized()) {
            return false;
          }
        }
        if (hasHandStartMessage()) {
          if (!getHandStartMessage().isInitialized()) {
            return false;
          }
        }
        if (hasPlayersTurnMessage()) {
          if (!getPlayersTurnMessage().isInitialized()) {
            return false;
          }
        }
        if (hasMyActionRequestMessage()) {
          if (!getMyActionRequestMessage().isInitialized()) {
            return false;
          }
        }
        if (hasYourActionRejectedMessage()) {
          if (!getYourActionRejectedMessage().isInitialized()) {
            return false;
          }
        }
        if (hasPlayersActionDoneMessage()) {
          if (!getPlayersActionDoneMessage().isInitialized()) {
            return false;
          }
        }
        if (hasDealFlopCardsMessage()) {
          if (!getDealFlopCardsMessage().isInitialized()) {
            return false;
          }
        }
        if (hasDealTurnCardMessage()) {
          if (!getDealTurnCardMessage().isInitialized()) {
            return false;
          }
        }
        if (hasDealRiverCardMessage()) {
          if (!getDealRiverCardMessage().isInitialized()) {
            return false;
          }
        }
        if (hasAllInShowCardsMessage()) {
          if (!getAllInShowCardsMessage().isInitialized()) {
            return false;
          }
        }
        if (hasEndOfHandShowCardsMessage()) {
          if (!getEndOfHandShowCardsMessage().isInitialized()) {
            return false;
          }
        }
        if (hasEndOfHandHideCardsMessage()) {
          if (!getEndOfHandHideCardsMessage().isInitialized()) {
            return false;
          }
        }
        if (hasAfterHandShowCardsMessage()) {
          if (!getAfterHandShowCardsMessage().isInitialized()) {
            return false;
          }
        }
        if (hasEndOfGameMessage()) {
          if (!getEndOfGameMessage().isInitialized()) {
            return false;
          }
        }
        if (hasPlayerIdChangedMessage()) {
          if (!getPlayerIdChangedMessage().isInitialized()) {
            return false;
          }
        }
        if (hasAskKickPlayerMessage()) {
          if (!getAskKickPlayerMessage().isInitialized()) {
            return false;
          }
        }
        if (hasAskKickDeniedMessage()) {
          if (!getAskKickDeniedMessage().isInitialized()) {
            return false;
          }
        }
        if (hasStartKickPetitionMessage()) {
          if (!getStartKickPetitionMessage().isInitialized()) {
            return false;
          }
        }
        if (hasVoteKickRequestMessage()) {
          if (!getVoteKickRequestMessage().isInitialized()) {
            return false;
          }
        }
        if (hasVoteKickReplyMessage()) {
          if (!getVoteKickReplyMessage().isInitialized()) {
            return false;
          }
        }
        if (hasKickPetitionUpdateMessage()) {
          if (!getKickPetitionUpdateMessage().isInitialized()) {
            return false;
          }
        }
        if (hasEndKickPetitionMessage()) {
          if (!getEndKickPetitionMessage().isInitialized()) {
            return false;
          }
        }
        if (hasStatisticsMessage()) {
          if (!getStatisticsMessage().isInitialized()) {
            return false;
          }
        }
        if (hasChatRequestMessage()) {
          if (!getChatRequestMessage().isInitialized()) {
            return false;
          }
        }
        if (hasChatMessage()) {
          if (!getChatMessage().isInitialized()) {
            return false;
          }
        }
        if (hasChatRejectMessage()) {
          if (!getChatRejectMessage().isInitialized()) {
            return false;
          }
        }
        if (hasDialogMessage()) {
          if (!getDialogMessage().isInitialized()) {
            return false;
          }
        }
        if (hasTimeoutWarningMessage()) {
          if (!getTimeoutWarningMessage().isInitialized()) {
            return false;
          }
        }
        if (hasReportAvatarMessage()) {
          if (!getReportAvatarMessage().isInitialized()) {
            return false;
          }
        }
        if (hasReportAvatarAckMessage()) {
          if (!getReportAvatarAckMessage().isInitialized()) {
            return false;
          }
        }
        if (hasReportGameMessage()) {
          if (!getReportGameMessage().isInitialized()) {
            return false;
          }
        }
        if (hasReportGameAckMessage()) {
          if (!getReportGameAckMessage().isInitialized()) {
            return false;
          }
        }
        if (hasErrorMessage()) {
          if (!getErrorMessage().isInitialized()) {
            return false;
          }
        }
        if (hasAdminRemoveGameMessage()) {
          if (!getAdminRemoveGameMessage().isInitialized()) {
            return false;
          }
        }
        if (hasAdminRemoveGameAckMessage()) {
          if (!getAdminRemoveGameAckMessage().isInitialized()) {
            return false;
          }
        }
        if (hasAdminBanPlayerMessage()) {
          if (!getAdminBanPlayerMessage().isInitialized()) {
            return false;
          }
        }
        if (hasAdminBanPlayerAckMessage()) {
          if (!getAdminBanPlayerAckMessage().isInitialized()) {
            return false;
          }
        }
        if (hasGameListSpectatorJoinedMessage()) {
          if (!getGameListSpectatorJoinedMessage().isInitialized()) {
            return false;
          }
        }
        if (hasGameListSpectatorLeftMessage()) {
          if (!getGameListSpectatorLeftMessage().isInitialized()) {
            return false;
          }
        }
        if (hasGameSpectatorJoinedMessage()) {
          if (!getGameSpectatorJoinedMessage().isInitialized()) {
            return false;
          }
        }
        if (hasGameSpectatorLeftMessage()) {
          if (!getGameSpectatorLeftMessage().isInitialized()) {
            return false;
          }
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                int tmpRaw = input.readEnum();
                de.pokerth.protocol.ProtoBuf.PokerTHMessage.PokerTHMessageType tmpValue =
                    de.pokerth.protocol.ProtoBuf.PokerTHMessage.PokerTHMessageType.forNumber(tmpRaw);
                if (tmpValue == null) {
                  mergeUnknownVarintField(1, tmpRaw);
                } else {
                  messageType_ = tmpRaw;
                  bitField0_ |= 0x00000001;
                }
                break;
              } // case 8
              case 18: {
                input.readMessage(
                    getAnnounceMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 26: {
                input.readMessage(
                    getInitMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 34: {
                input.readMessage(
                    getAuthServerChallengeMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              case 42: {
                input.readMessage(
                    getAuthClientResponseMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000010;
                break;
              } // case 42
              case 50: {
                input.readMessage(
                    getAuthServerVerificationMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000020;
                break;
              } // case 50
              case 58: {
                input.readMessage(
                    getInitAckMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000040;
                break;
              } // case 58
              case 66: {
                input.readMessage(
                    getAvatarRequestMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000080;
                break;
              } // case 66
              case 74: {
                input.readMessage(
                    getAvatarHeaderMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000100;
                break;
              } // case 74
              case 82: {
                input.readMessage(
                    getAvatarDataMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000200;
                break;
              } // case 82
              case 90: {
                input.readMessage(
                    getAvatarEndMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000400;
                break;
              } // case 90
              case 98: {
                input.readMessage(
                    getUnknownAvatarMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000800;
                break;
              } // case 98
              case 106: {
                input.readMessage(
                    getPlayerListMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00001000;
                break;
              } // case 106
              case 114: {
                input.readMessage(
                    getGameListNewMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00002000;
                break;
              } // case 114
              case 122: {
                input.readMessage(
                    getGameListUpdateMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00004000;
                break;
              } // case 122
              case 130: {
                input.readMessage(
                    getGameListPlayerJoinedMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00008000;
                break;
              } // case 130
              case 138: {
                input.readMessage(
                    getGameListPlayerLeftMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00010000;
                break;
              } // case 138
              case 146: {
                input.readMessage(
                    getGameListAdminChangedMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00020000;
                break;
              } // case 146
              case 154: {
                input.readMessage(
                    getPlayerInfoRequestMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00040000;
                break;
              } // case 154
              case 162: {
                input.readMessage(
                    getPlayerInfoReplyMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00080000;
                break;
              } // case 162
              case 170: {
                input.readMessage(
                    getSubscriptionRequestMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00100000;
                break;
              } // case 170
              case 178: {
                input.readMessage(
                    getJoinExistingGameMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00200000;
                break;
              } // case 178
              case 186: {
                input.readMessage(
                    getJoinNewGameMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00400000;
                break;
              } // case 186
              case 194: {
                input.readMessage(
                    getRejoinExistingGameMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00800000;
                break;
              } // case 194
              case 202: {
                input.readMessage(
                    getJoinGameAckMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x01000000;
                break;
              } // case 202
              case 210: {
                input.readMessage(
                    getJoinGameFailedMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x02000000;
                break;
              } // case 210
              case 218: {
                input.readMessage(
                    getGamePlayerJoinedMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x04000000;
                break;
              } // case 218
              case 226: {
                input.readMessage(
                    getGamePlayerLeftMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x08000000;
                break;
              } // case 226
              case 234: {
                input.readMessage(
                    getGameAdminChangedMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x10000000;
                break;
              } // case 234
              case 242: {
                input.readMessage(
                    getRemovedFromGameMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x20000000;
                break;
              } // case 242
              case 250: {
                input.readMessage(
                    getKickPlayerRequestMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x40000000;
                break;
              } // case 250
              case 258: {
                input.readMessage(
                    getLeaveGameRequestMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x80000000;
                break;
              } // case 258
              case 266: {
                input.readMessage(
                    getInvitePlayerToGameMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField1_ |= 0x00000001;
                break;
              } // case 266
              case 274: {
                input.readMessage(
                    getInviteNotifyMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField1_ |= 0x00000002;
                break;
              } // case 274
              case 282: {
                input.readMessage(
                    getRejectGameInvitationMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField1_ |= 0x00000004;
                break;
              } // case 282
              case 290: {
                input.readMessage(
                    getRejectInvNotifyMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField1_ |= 0x00000008;
                break;
              } // case 290
              case 298: {
                input.readMessage(
                    getStartEventMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField1_ |= 0x00000010;
                break;
              } // case 298
              case 306: {
                input.readMessage(
                    getStartEventAckMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField1_ |= 0x00000020;
                break;
              } // case 306
              case 314: {
                input.readMessage(
                    getGameStartInitialMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField1_ |= 0x00000040;
                break;
              } // case 314
              case 322: {
                input.readMessage(
                    getGameStartRejoinMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField1_ |= 0x00000080;
                break;
              } // case 322
              case 330: {
                input.readMessage(
                    getHandStartMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField1_ |= 0x00000100;
                break;
              } // case 330
              case 338: {
                input.readMessage(
                    getPlayersTurnMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField1_ |= 0x00000200;
                break;
              } // case 338
              case 346: {
                input.readMessage(
                    getMyActionRequestMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField1_ |= 0x00000400;
                break;
              } // case 346
              case 354: {
                input.readMessage(
                    getYourActionRejectedMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField1_ |= 0x00000800;
                break;
              } // case 354
              case 362: {
                input.readMessage(
                    getPlayersActionDoneMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField1_ |= 0x00001000;
                break;
              } // case 362
              case 370: {
                input.readMessage(
                    getDealFlopCardsMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField1_ |= 0x00002000;
                break;
              } // case 370
              case 378: {
                input.readMessage(
                    getDealTurnCardMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField1_ |= 0x00004000;
                break;
              } // case 378
              case 386: {
                input.readMessage(
                    getDealRiverCardMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField1_ |= 0x00008000;
                break;
              } // case 386
              case 394: {
                input.readMessage(
                    getAllInShowCardsMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField1_ |= 0x00010000;
                break;
              } // case 394
              case 402: {
                input.readMessage(
                    getEndOfHandShowCardsMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField1_ |= 0x00020000;
                break;
              } // case 402
              case 410: {
                input.readMessage(
                    getEndOfHandHideCardsMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField1_ |= 0x00040000;
                break;
              } // case 410
              case 418: {
                input.readMessage(
                    getShowMyCardsRequestMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField1_ |= 0x00080000;
                break;
              } // case 418
              case 426: {
                input.readMessage(
                    getAfterHandShowCardsMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField1_ |= 0x00100000;
                break;
              } // case 426
              case 434: {
                input.readMessage(
                    getEndOfGameMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField1_ |= 0x00200000;
                break;
              } // case 434
              case 442: {
                input.readMessage(
                    getPlayerIdChangedMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField1_ |= 0x00400000;
                break;
              } // case 442
              case 450: {
                input.readMessage(
                    getAskKickPlayerMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField1_ |= 0x00800000;
                break;
              } // case 450
              case 458: {
                input.readMessage(
                    getAskKickDeniedMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField1_ |= 0x01000000;
                break;
              } // case 458
              case 466: {
                input.readMessage(
                    getStartKickPetitionMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField1_ |= 0x02000000;
                break;
              } // case 466
              case 474: {
                input.readMessage(
                    getVoteKickRequestMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField1_ |= 0x04000000;
                break;
              } // case 474
              case 482: {
                input.readMessage(
                    getVoteKickReplyMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField1_ |= 0x08000000;
                break;
              } // case 482
              case 490: {
                input.readMessage(
                    getKickPetitionUpdateMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField1_ |= 0x10000000;
                break;
              } // case 490
              case 498: {
                input.readMessage(
                    getEndKickPetitionMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField1_ |= 0x20000000;
                break;
              } // case 498
              case 506: {
                input.readMessage(
                    getStatisticsMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField1_ |= 0x40000000;
                break;
              } // case 506
              case 514: {
                input.readMessage(
                    getChatRequestMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField1_ |= 0x80000000;
                break;
              } // case 514
              case 522: {
                input.readMessage(
                    getChatMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField2_ |= 0x00000001;
                break;
              } // case 522
              case 530: {
                input.readMessage(
                    getChatRejectMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField2_ |= 0x00000002;
                break;
              } // case 530
              case 538: {
                input.readMessage(
                    getDialogMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField2_ |= 0x00000004;
                break;
              } // case 538
              case 546: {
                input.readMessage(
                    getTimeoutWarningMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField2_ |= 0x00000008;
                break;
              } // case 546
              case 554: {
                input.readMessage(
                    getResetTimeoutMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField2_ |= 0x00000010;
                break;
              } // case 554
              case 562: {
                input.readMessage(
                    getReportAvatarMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField2_ |= 0x00000020;
                break;
              } // case 562
              case 570: {
                input.readMessage(
                    getReportAvatarAckMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField2_ |= 0x00000040;
                break;
              } // case 570
              case 578: {
                input.readMessage(
                    getReportGameMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField2_ |= 0x00000080;
                break;
              } // case 578
              case 586: {
                input.readMessage(
                    getReportGameAckMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField2_ |= 0x00000100;
                break;
              } // case 586
              case 594: {
                input.readMessage(
                    getErrorMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField2_ |= 0x00000200;
                break;
              } // case 594
              case 602: {
                input.readMessage(
                    getAdminRemoveGameMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField2_ |= 0x00000400;
                break;
              } // case 602
              case 610: {
                input.readMessage(
                    getAdminRemoveGameAckMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField2_ |= 0x00000800;
                break;
              } // case 610
              case 618: {
                input.readMessage(
                    getAdminBanPlayerMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField2_ |= 0x00001000;
                break;
              } // case 618
              case 626: {
                input.readMessage(
                    getAdminBanPlayerAckMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField2_ |= 0x00002000;
                break;
              } // case 626
              case 634: {
                input.readMessage(
                    getGameListSpectatorJoinedMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField2_ |= 0x00004000;
                break;
              } // case 634
              case 642: {
                input.readMessage(
                    getGameListSpectatorLeftMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField2_ |= 0x00008000;
                break;
              } // case 642
              case 650: {
                input.readMessage(
                    getGameSpectatorJoinedMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField2_ |= 0x00010000;
                break;
              } // case 650
              case 658: {
                input.readMessage(
                    getGameSpectatorLeftMessageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField2_ |= 0x00020000;
                break;
              } // case 658
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;
      private int bitField1_;
      private int bitField2_;

      private int messageType_ = 1;
      /**
       * <code>required .PokerTHMessage.PokerTHMessageType messageType = 1;</code>
       * @return Whether the messageType field is set.
       */
      @java.lang.Override public boolean hasMessageType() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required .PokerTHMessage.PokerTHMessageType messageType = 1;</code>
       * @return The messageType.
       */
      @java.lang.Override
      public de.pokerth.protocol.ProtoBuf.PokerTHMessage.PokerTHMessageType getMessageType() {
        de.pokerth.protocol.ProtoBuf.PokerTHMessage.PokerTHMessageType result = de.pokerth.protocol.ProtoBuf.PokerTHMessage.PokerTHMessageType.forNumber(messageType_);
        return result == null ? de.pokerth.protocol.ProtoBuf.PokerTHMessage.PokerTHMessageType.Type_AnnounceMessage : result;
      }
      /**
       * <code>required .PokerTHMessage.PokerTHMessageType messageType = 1;</code>
       * @param value The messageType to set.
       * @return This builder for chaining.
       */
      public Builder setMessageType(de.pokerth.protocol.ProtoBuf.PokerTHMessage.PokerTHMessageType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        messageType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>required .PokerTHMessage.PokerTHMessageType messageType = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearMessageType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        messageType_ = 1;
        onChanged();
        return this;
      }

      private de.pokerth.protocol.ProtoBuf.AnnounceMessage announceMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.AnnounceMessage, de.pokerth.protocol.ProtoBuf.AnnounceMessage.Builder, de.pokerth.protocol.ProtoBuf.AnnounceMessageOrBuilder> announceMessageBuilder_;
      /**
       * <code>optional .AnnounceMessage announceMessage = 2;</code>
       * @return Whether the announceMessage field is set.
       */
      public boolean hasAnnounceMessage() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional .AnnounceMessage announceMessage = 2;</code>
       * @return The announceMessage.
       */
      public de.pokerth.protocol.ProtoBuf.AnnounceMessage getAnnounceMessage() {
        if (announceMessageBuilder_ == null) {
          return announceMessage_ == null ? de.pokerth.protocol.ProtoBuf.AnnounceMessage.getDefaultInstance() : announceMessage_;
        } else {
          return announceMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .AnnounceMessage announceMessage = 2;</code>
       */
      public Builder setAnnounceMessage(de.pokerth.protocol.ProtoBuf.AnnounceMessage value) {
        if (announceMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          announceMessage_ = value;
        } else {
          announceMessageBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>optional .AnnounceMessage announceMessage = 2;</code>
       */
      public Builder setAnnounceMessage(
          de.pokerth.protocol.ProtoBuf.AnnounceMessage.Builder builderForValue) {
        if (announceMessageBuilder_ == null) {
          announceMessage_ = builderForValue.build();
        } else {
          announceMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>optional .AnnounceMessage announceMessage = 2;</code>
       */
      public Builder mergeAnnounceMessage(de.pokerth.protocol.ProtoBuf.AnnounceMessage value) {
        if (announceMessageBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0) &&
            announceMessage_ != null &&
            announceMessage_ != de.pokerth.protocol.ProtoBuf.AnnounceMessage.getDefaultInstance()) {
            getAnnounceMessageBuilder().mergeFrom(value);
          } else {
            announceMessage_ = value;
          }
        } else {
          announceMessageBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>optional .AnnounceMessage announceMessage = 2;</code>
       */
      public Builder clearAnnounceMessage() {
        bitField0_ = (bitField0_ & ~0x00000002);
        announceMessage_ = null;
        if (announceMessageBuilder_ != null) {
          announceMessageBuilder_.dispose();
          announceMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .AnnounceMessage announceMessage = 2;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AnnounceMessage.Builder getAnnounceMessageBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getAnnounceMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .AnnounceMessage announceMessage = 2;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AnnounceMessageOrBuilder getAnnounceMessageOrBuilder() {
        if (announceMessageBuilder_ != null) {
          return announceMessageBuilder_.getMessageOrBuilder();
        } else {
          return announceMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.AnnounceMessage.getDefaultInstance() : announceMessage_;
        }
      }
      /**
       * <code>optional .AnnounceMessage announceMessage = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.AnnounceMessage, de.pokerth.protocol.ProtoBuf.AnnounceMessage.Builder, de.pokerth.protocol.ProtoBuf.AnnounceMessageOrBuilder> 
          getAnnounceMessageFieldBuilder() {
        if (announceMessageBuilder_ == null) {
          announceMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.AnnounceMessage, de.pokerth.protocol.ProtoBuf.AnnounceMessage.Builder, de.pokerth.protocol.ProtoBuf.AnnounceMessageOrBuilder>(
                  getAnnounceMessage(),
                  getParentForChildren(),
                  isClean());
          announceMessage_ = null;
        }
        return announceMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.InitMessage initMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.InitMessage, de.pokerth.protocol.ProtoBuf.InitMessage.Builder, de.pokerth.protocol.ProtoBuf.InitMessageOrBuilder> initMessageBuilder_;
      /**
       * <code>optional .InitMessage initMessage = 3;</code>
       * @return Whether the initMessage field is set.
       */
      public boolean hasInitMessage() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>optional .InitMessage initMessage = 3;</code>
       * @return The initMessage.
       */
      public de.pokerth.protocol.ProtoBuf.InitMessage getInitMessage() {
        if (initMessageBuilder_ == null) {
          return initMessage_ == null ? de.pokerth.protocol.ProtoBuf.InitMessage.getDefaultInstance() : initMessage_;
        } else {
          return initMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .InitMessage initMessage = 3;</code>
       */
      public Builder setInitMessage(de.pokerth.protocol.ProtoBuf.InitMessage value) {
        if (initMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          initMessage_ = value;
        } else {
          initMessageBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>optional .InitMessage initMessage = 3;</code>
       */
      public Builder setInitMessage(
          de.pokerth.protocol.ProtoBuf.InitMessage.Builder builderForValue) {
        if (initMessageBuilder_ == null) {
          initMessage_ = builderForValue.build();
        } else {
          initMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>optional .InitMessage initMessage = 3;</code>
       */
      public Builder mergeInitMessage(de.pokerth.protocol.ProtoBuf.InitMessage value) {
        if (initMessageBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0) &&
            initMessage_ != null &&
            initMessage_ != de.pokerth.protocol.ProtoBuf.InitMessage.getDefaultInstance()) {
            getInitMessageBuilder().mergeFrom(value);
          } else {
            initMessage_ = value;
          }
        } else {
          initMessageBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>optional .InitMessage initMessage = 3;</code>
       */
      public Builder clearInitMessage() {
        bitField0_ = (bitField0_ & ~0x00000004);
        initMessage_ = null;
        if (initMessageBuilder_ != null) {
          initMessageBuilder_.dispose();
          initMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .InitMessage initMessage = 3;</code>
       */
      public de.pokerth.protocol.ProtoBuf.InitMessage.Builder getInitMessageBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getInitMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .InitMessage initMessage = 3;</code>
       */
      public de.pokerth.protocol.ProtoBuf.InitMessageOrBuilder getInitMessageOrBuilder() {
        if (initMessageBuilder_ != null) {
          return initMessageBuilder_.getMessageOrBuilder();
        } else {
          return initMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.InitMessage.getDefaultInstance() : initMessage_;
        }
      }
      /**
       * <code>optional .InitMessage initMessage = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.InitMessage, de.pokerth.protocol.ProtoBuf.InitMessage.Builder, de.pokerth.protocol.ProtoBuf.InitMessageOrBuilder> 
          getInitMessageFieldBuilder() {
        if (initMessageBuilder_ == null) {
          initMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.InitMessage, de.pokerth.protocol.ProtoBuf.InitMessage.Builder, de.pokerth.protocol.ProtoBuf.InitMessageOrBuilder>(
                  getInitMessage(),
                  getParentForChildren(),
                  isClean());
          initMessage_ = null;
        }
        return initMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage authServerChallengeMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage, de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage.Builder, de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessageOrBuilder> authServerChallengeMessageBuilder_;
      /**
       * <code>optional .AuthServerChallengeMessage authServerChallengeMessage = 4;</code>
       * @return Whether the authServerChallengeMessage field is set.
       */
      public boolean hasAuthServerChallengeMessage() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>optional .AuthServerChallengeMessage authServerChallengeMessage = 4;</code>
       * @return The authServerChallengeMessage.
       */
      public de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage getAuthServerChallengeMessage() {
        if (authServerChallengeMessageBuilder_ == null) {
          return authServerChallengeMessage_ == null ? de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage.getDefaultInstance() : authServerChallengeMessage_;
        } else {
          return authServerChallengeMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .AuthServerChallengeMessage authServerChallengeMessage = 4;</code>
       */
      public Builder setAuthServerChallengeMessage(de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage value) {
        if (authServerChallengeMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          authServerChallengeMessage_ = value;
        } else {
          authServerChallengeMessageBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>optional .AuthServerChallengeMessage authServerChallengeMessage = 4;</code>
       */
      public Builder setAuthServerChallengeMessage(
          de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage.Builder builderForValue) {
        if (authServerChallengeMessageBuilder_ == null) {
          authServerChallengeMessage_ = builderForValue.build();
        } else {
          authServerChallengeMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>optional .AuthServerChallengeMessage authServerChallengeMessage = 4;</code>
       */
      public Builder mergeAuthServerChallengeMessage(de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage value) {
        if (authServerChallengeMessageBuilder_ == null) {
          if (((bitField0_ & 0x00000008) != 0) &&
            authServerChallengeMessage_ != null &&
            authServerChallengeMessage_ != de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage.getDefaultInstance()) {
            getAuthServerChallengeMessageBuilder().mergeFrom(value);
          } else {
            authServerChallengeMessage_ = value;
          }
        } else {
          authServerChallengeMessageBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>optional .AuthServerChallengeMessage authServerChallengeMessage = 4;</code>
       */
      public Builder clearAuthServerChallengeMessage() {
        bitField0_ = (bitField0_ & ~0x00000008);
        authServerChallengeMessage_ = null;
        if (authServerChallengeMessageBuilder_ != null) {
          authServerChallengeMessageBuilder_.dispose();
          authServerChallengeMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .AuthServerChallengeMessage authServerChallengeMessage = 4;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage.Builder getAuthServerChallengeMessageBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return getAuthServerChallengeMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .AuthServerChallengeMessage authServerChallengeMessage = 4;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessageOrBuilder getAuthServerChallengeMessageOrBuilder() {
        if (authServerChallengeMessageBuilder_ != null) {
          return authServerChallengeMessageBuilder_.getMessageOrBuilder();
        } else {
          return authServerChallengeMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage.getDefaultInstance() : authServerChallengeMessage_;
        }
      }
      /**
       * <code>optional .AuthServerChallengeMessage authServerChallengeMessage = 4;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage, de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage.Builder, de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessageOrBuilder> 
          getAuthServerChallengeMessageFieldBuilder() {
        if (authServerChallengeMessageBuilder_ == null) {
          authServerChallengeMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage, de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage.Builder, de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessageOrBuilder>(
                  getAuthServerChallengeMessage(),
                  getParentForChildren(),
                  isClean());
          authServerChallengeMessage_ = null;
        }
        return authServerChallengeMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage authClientResponseMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage, de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage.Builder, de.pokerth.protocol.ProtoBuf.AuthClientResponseMessageOrBuilder> authClientResponseMessageBuilder_;
      /**
       * <code>optional .AuthClientResponseMessage authClientResponseMessage = 5;</code>
       * @return Whether the authClientResponseMessage field is set.
       */
      public boolean hasAuthClientResponseMessage() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <code>optional .AuthClientResponseMessage authClientResponseMessage = 5;</code>
       * @return The authClientResponseMessage.
       */
      public de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage getAuthClientResponseMessage() {
        if (authClientResponseMessageBuilder_ == null) {
          return authClientResponseMessage_ == null ? de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage.getDefaultInstance() : authClientResponseMessage_;
        } else {
          return authClientResponseMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .AuthClientResponseMessage authClientResponseMessage = 5;</code>
       */
      public Builder setAuthClientResponseMessage(de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage value) {
        if (authClientResponseMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          authClientResponseMessage_ = value;
        } else {
          authClientResponseMessageBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>optional .AuthClientResponseMessage authClientResponseMessage = 5;</code>
       */
      public Builder setAuthClientResponseMessage(
          de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage.Builder builderForValue) {
        if (authClientResponseMessageBuilder_ == null) {
          authClientResponseMessage_ = builderForValue.build();
        } else {
          authClientResponseMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>optional .AuthClientResponseMessage authClientResponseMessage = 5;</code>
       */
      public Builder mergeAuthClientResponseMessage(de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage value) {
        if (authClientResponseMessageBuilder_ == null) {
          if (((bitField0_ & 0x00000010) != 0) &&
            authClientResponseMessage_ != null &&
            authClientResponseMessage_ != de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage.getDefaultInstance()) {
            getAuthClientResponseMessageBuilder().mergeFrom(value);
          } else {
            authClientResponseMessage_ = value;
          }
        } else {
          authClientResponseMessageBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>optional .AuthClientResponseMessage authClientResponseMessage = 5;</code>
       */
      public Builder clearAuthClientResponseMessage() {
        bitField0_ = (bitField0_ & ~0x00000010);
        authClientResponseMessage_ = null;
        if (authClientResponseMessageBuilder_ != null) {
          authClientResponseMessageBuilder_.dispose();
          authClientResponseMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .AuthClientResponseMessage authClientResponseMessage = 5;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage.Builder getAuthClientResponseMessageBuilder() {
        bitField0_ |= 0x00000010;
        onChanged();
        return getAuthClientResponseMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .AuthClientResponseMessage authClientResponseMessage = 5;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AuthClientResponseMessageOrBuilder getAuthClientResponseMessageOrBuilder() {
        if (authClientResponseMessageBuilder_ != null) {
          return authClientResponseMessageBuilder_.getMessageOrBuilder();
        } else {
          return authClientResponseMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage.getDefaultInstance() : authClientResponseMessage_;
        }
      }
      /**
       * <code>optional .AuthClientResponseMessage authClientResponseMessage = 5;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage, de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage.Builder, de.pokerth.protocol.ProtoBuf.AuthClientResponseMessageOrBuilder> 
          getAuthClientResponseMessageFieldBuilder() {
        if (authClientResponseMessageBuilder_ == null) {
          authClientResponseMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage, de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage.Builder, de.pokerth.protocol.ProtoBuf.AuthClientResponseMessageOrBuilder>(
                  getAuthClientResponseMessage(),
                  getParentForChildren(),
                  isClean());
          authClientResponseMessage_ = null;
        }
        return authClientResponseMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage authServerVerificationMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage, de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage.Builder, de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessageOrBuilder> authServerVerificationMessageBuilder_;
      /**
       * <code>optional .AuthServerVerificationMessage authServerVerificationMessage = 6;</code>
       * @return Whether the authServerVerificationMessage field is set.
       */
      public boolean hasAuthServerVerificationMessage() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <code>optional .AuthServerVerificationMessage authServerVerificationMessage = 6;</code>
       * @return The authServerVerificationMessage.
       */
      public de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage getAuthServerVerificationMessage() {
        if (authServerVerificationMessageBuilder_ == null) {
          return authServerVerificationMessage_ == null ? de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage.getDefaultInstance() : authServerVerificationMessage_;
        } else {
          return authServerVerificationMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .AuthServerVerificationMessage authServerVerificationMessage = 6;</code>
       */
      public Builder setAuthServerVerificationMessage(de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage value) {
        if (authServerVerificationMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          authServerVerificationMessage_ = value;
        } else {
          authServerVerificationMessageBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>optional .AuthServerVerificationMessage authServerVerificationMessage = 6;</code>
       */
      public Builder setAuthServerVerificationMessage(
          de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage.Builder builderForValue) {
        if (authServerVerificationMessageBuilder_ == null) {
          authServerVerificationMessage_ = builderForValue.build();
        } else {
          authServerVerificationMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>optional .AuthServerVerificationMessage authServerVerificationMessage = 6;</code>
       */
      public Builder mergeAuthServerVerificationMessage(de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage value) {
        if (authServerVerificationMessageBuilder_ == null) {
          if (((bitField0_ & 0x00000020) != 0) &&
            authServerVerificationMessage_ != null &&
            authServerVerificationMessage_ != de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage.getDefaultInstance()) {
            getAuthServerVerificationMessageBuilder().mergeFrom(value);
          } else {
            authServerVerificationMessage_ = value;
          }
        } else {
          authServerVerificationMessageBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>optional .AuthServerVerificationMessage authServerVerificationMessage = 6;</code>
       */
      public Builder clearAuthServerVerificationMessage() {
        bitField0_ = (bitField0_ & ~0x00000020);
        authServerVerificationMessage_ = null;
        if (authServerVerificationMessageBuilder_ != null) {
          authServerVerificationMessageBuilder_.dispose();
          authServerVerificationMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .AuthServerVerificationMessage authServerVerificationMessage = 6;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage.Builder getAuthServerVerificationMessageBuilder() {
        bitField0_ |= 0x00000020;
        onChanged();
        return getAuthServerVerificationMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .AuthServerVerificationMessage authServerVerificationMessage = 6;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessageOrBuilder getAuthServerVerificationMessageOrBuilder() {
        if (authServerVerificationMessageBuilder_ != null) {
          return authServerVerificationMessageBuilder_.getMessageOrBuilder();
        } else {
          return authServerVerificationMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage.getDefaultInstance() : authServerVerificationMessage_;
        }
      }
      /**
       * <code>optional .AuthServerVerificationMessage authServerVerificationMessage = 6;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage, de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage.Builder, de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessageOrBuilder> 
          getAuthServerVerificationMessageFieldBuilder() {
        if (authServerVerificationMessageBuilder_ == null) {
          authServerVerificationMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage, de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage.Builder, de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessageOrBuilder>(
                  getAuthServerVerificationMessage(),
                  getParentForChildren(),
                  isClean());
          authServerVerificationMessage_ = null;
        }
        return authServerVerificationMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.InitAckMessage initAckMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.InitAckMessage, de.pokerth.protocol.ProtoBuf.InitAckMessage.Builder, de.pokerth.protocol.ProtoBuf.InitAckMessageOrBuilder> initAckMessageBuilder_;
      /**
       * <code>optional .InitAckMessage initAckMessage = 7;</code>
       * @return Whether the initAckMessage field is set.
       */
      public boolean hasInitAckMessage() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <code>optional .InitAckMessage initAckMessage = 7;</code>
       * @return The initAckMessage.
       */
      public de.pokerth.protocol.ProtoBuf.InitAckMessage getInitAckMessage() {
        if (initAckMessageBuilder_ == null) {
          return initAckMessage_ == null ? de.pokerth.protocol.ProtoBuf.InitAckMessage.getDefaultInstance() : initAckMessage_;
        } else {
          return initAckMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .InitAckMessage initAckMessage = 7;</code>
       */
      public Builder setInitAckMessage(de.pokerth.protocol.ProtoBuf.InitAckMessage value) {
        if (initAckMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          initAckMessage_ = value;
        } else {
          initAckMessageBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <code>optional .InitAckMessage initAckMessage = 7;</code>
       */
      public Builder setInitAckMessage(
          de.pokerth.protocol.ProtoBuf.InitAckMessage.Builder builderForValue) {
        if (initAckMessageBuilder_ == null) {
          initAckMessage_ = builderForValue.build();
        } else {
          initAckMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <code>optional .InitAckMessage initAckMessage = 7;</code>
       */
      public Builder mergeInitAckMessage(de.pokerth.protocol.ProtoBuf.InitAckMessage value) {
        if (initAckMessageBuilder_ == null) {
          if (((bitField0_ & 0x00000040) != 0) &&
            initAckMessage_ != null &&
            initAckMessage_ != de.pokerth.protocol.ProtoBuf.InitAckMessage.getDefaultInstance()) {
            getInitAckMessageBuilder().mergeFrom(value);
          } else {
            initAckMessage_ = value;
          }
        } else {
          initAckMessageBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <code>optional .InitAckMessage initAckMessage = 7;</code>
       */
      public Builder clearInitAckMessage() {
        bitField0_ = (bitField0_ & ~0x00000040);
        initAckMessage_ = null;
        if (initAckMessageBuilder_ != null) {
          initAckMessageBuilder_.dispose();
          initAckMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .InitAckMessage initAckMessage = 7;</code>
       */
      public de.pokerth.protocol.ProtoBuf.InitAckMessage.Builder getInitAckMessageBuilder() {
        bitField0_ |= 0x00000040;
        onChanged();
        return getInitAckMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .InitAckMessage initAckMessage = 7;</code>
       */
      public de.pokerth.protocol.ProtoBuf.InitAckMessageOrBuilder getInitAckMessageOrBuilder() {
        if (initAckMessageBuilder_ != null) {
          return initAckMessageBuilder_.getMessageOrBuilder();
        } else {
          return initAckMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.InitAckMessage.getDefaultInstance() : initAckMessage_;
        }
      }
      /**
       * <code>optional .InitAckMessage initAckMessage = 7;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.InitAckMessage, de.pokerth.protocol.ProtoBuf.InitAckMessage.Builder, de.pokerth.protocol.ProtoBuf.InitAckMessageOrBuilder> 
          getInitAckMessageFieldBuilder() {
        if (initAckMessageBuilder_ == null) {
          initAckMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.InitAckMessage, de.pokerth.protocol.ProtoBuf.InitAckMessage.Builder, de.pokerth.protocol.ProtoBuf.InitAckMessageOrBuilder>(
                  getInitAckMessage(),
                  getParentForChildren(),
                  isClean());
          initAckMessage_ = null;
        }
        return initAckMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.AvatarRequestMessage avatarRequestMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.AvatarRequestMessage, de.pokerth.protocol.ProtoBuf.AvatarRequestMessage.Builder, de.pokerth.protocol.ProtoBuf.AvatarRequestMessageOrBuilder> avatarRequestMessageBuilder_;
      /**
       * <code>optional .AvatarRequestMessage avatarRequestMessage = 8;</code>
       * @return Whether the avatarRequestMessage field is set.
       */
      public boolean hasAvatarRequestMessage() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * <code>optional .AvatarRequestMessage avatarRequestMessage = 8;</code>
       * @return The avatarRequestMessage.
       */
      public de.pokerth.protocol.ProtoBuf.AvatarRequestMessage getAvatarRequestMessage() {
        if (avatarRequestMessageBuilder_ == null) {
          return avatarRequestMessage_ == null ? de.pokerth.protocol.ProtoBuf.AvatarRequestMessage.getDefaultInstance() : avatarRequestMessage_;
        } else {
          return avatarRequestMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .AvatarRequestMessage avatarRequestMessage = 8;</code>
       */
      public Builder setAvatarRequestMessage(de.pokerth.protocol.ProtoBuf.AvatarRequestMessage value) {
        if (avatarRequestMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          avatarRequestMessage_ = value;
        } else {
          avatarRequestMessageBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <code>optional .AvatarRequestMessage avatarRequestMessage = 8;</code>
       */
      public Builder setAvatarRequestMessage(
          de.pokerth.protocol.ProtoBuf.AvatarRequestMessage.Builder builderForValue) {
        if (avatarRequestMessageBuilder_ == null) {
          avatarRequestMessage_ = builderForValue.build();
        } else {
          avatarRequestMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <code>optional .AvatarRequestMessage avatarRequestMessage = 8;</code>
       */
      public Builder mergeAvatarRequestMessage(de.pokerth.protocol.ProtoBuf.AvatarRequestMessage value) {
        if (avatarRequestMessageBuilder_ == null) {
          if (((bitField0_ & 0x00000080) != 0) &&
            avatarRequestMessage_ != null &&
            avatarRequestMessage_ != de.pokerth.protocol.ProtoBuf.AvatarRequestMessage.getDefaultInstance()) {
            getAvatarRequestMessageBuilder().mergeFrom(value);
          } else {
            avatarRequestMessage_ = value;
          }
        } else {
          avatarRequestMessageBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <code>optional .AvatarRequestMessage avatarRequestMessage = 8;</code>
       */
      public Builder clearAvatarRequestMessage() {
        bitField0_ = (bitField0_ & ~0x00000080);
        avatarRequestMessage_ = null;
        if (avatarRequestMessageBuilder_ != null) {
          avatarRequestMessageBuilder_.dispose();
          avatarRequestMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .AvatarRequestMessage avatarRequestMessage = 8;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AvatarRequestMessage.Builder getAvatarRequestMessageBuilder() {
        bitField0_ |= 0x00000080;
        onChanged();
        return getAvatarRequestMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .AvatarRequestMessage avatarRequestMessage = 8;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AvatarRequestMessageOrBuilder getAvatarRequestMessageOrBuilder() {
        if (avatarRequestMessageBuilder_ != null) {
          return avatarRequestMessageBuilder_.getMessageOrBuilder();
        } else {
          return avatarRequestMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.AvatarRequestMessage.getDefaultInstance() : avatarRequestMessage_;
        }
      }
      /**
       * <code>optional .AvatarRequestMessage avatarRequestMessage = 8;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.AvatarRequestMessage, de.pokerth.protocol.ProtoBuf.AvatarRequestMessage.Builder, de.pokerth.protocol.ProtoBuf.AvatarRequestMessageOrBuilder> 
          getAvatarRequestMessageFieldBuilder() {
        if (avatarRequestMessageBuilder_ == null) {
          avatarRequestMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.AvatarRequestMessage, de.pokerth.protocol.ProtoBuf.AvatarRequestMessage.Builder, de.pokerth.protocol.ProtoBuf.AvatarRequestMessageOrBuilder>(
                  getAvatarRequestMessage(),
                  getParentForChildren(),
                  isClean());
          avatarRequestMessage_ = null;
        }
        return avatarRequestMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage avatarHeaderMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage, de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage.Builder, de.pokerth.protocol.ProtoBuf.AvatarHeaderMessageOrBuilder> avatarHeaderMessageBuilder_;
      /**
       * <code>optional .AvatarHeaderMessage avatarHeaderMessage = 9;</code>
       * @return Whether the avatarHeaderMessage field is set.
       */
      public boolean hasAvatarHeaderMessage() {
        return ((bitField0_ & 0x00000100) != 0);
      }
      /**
       * <code>optional .AvatarHeaderMessage avatarHeaderMessage = 9;</code>
       * @return The avatarHeaderMessage.
       */
      public de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage getAvatarHeaderMessage() {
        if (avatarHeaderMessageBuilder_ == null) {
          return avatarHeaderMessage_ == null ? de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage.getDefaultInstance() : avatarHeaderMessage_;
        } else {
          return avatarHeaderMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .AvatarHeaderMessage avatarHeaderMessage = 9;</code>
       */
      public Builder setAvatarHeaderMessage(de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage value) {
        if (avatarHeaderMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          avatarHeaderMessage_ = value;
        } else {
          avatarHeaderMessageBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000100;
        onChanged();
        return this;
      }
      /**
       * <code>optional .AvatarHeaderMessage avatarHeaderMessage = 9;</code>
       */
      public Builder setAvatarHeaderMessage(
          de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage.Builder builderForValue) {
        if (avatarHeaderMessageBuilder_ == null) {
          avatarHeaderMessage_ = builderForValue.build();
        } else {
          avatarHeaderMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000100;
        onChanged();
        return this;
      }
      /**
       * <code>optional .AvatarHeaderMessage avatarHeaderMessage = 9;</code>
       */
      public Builder mergeAvatarHeaderMessage(de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage value) {
        if (avatarHeaderMessageBuilder_ == null) {
          if (((bitField0_ & 0x00000100) != 0) &&
            avatarHeaderMessage_ != null &&
            avatarHeaderMessage_ != de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage.getDefaultInstance()) {
            getAvatarHeaderMessageBuilder().mergeFrom(value);
          } else {
            avatarHeaderMessage_ = value;
          }
        } else {
          avatarHeaderMessageBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000100;
        onChanged();
        return this;
      }
      /**
       * <code>optional .AvatarHeaderMessage avatarHeaderMessage = 9;</code>
       */
      public Builder clearAvatarHeaderMessage() {
        bitField0_ = (bitField0_ & ~0x00000100);
        avatarHeaderMessage_ = null;
        if (avatarHeaderMessageBuilder_ != null) {
          avatarHeaderMessageBuilder_.dispose();
          avatarHeaderMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .AvatarHeaderMessage avatarHeaderMessage = 9;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage.Builder getAvatarHeaderMessageBuilder() {
        bitField0_ |= 0x00000100;
        onChanged();
        return getAvatarHeaderMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .AvatarHeaderMessage avatarHeaderMessage = 9;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AvatarHeaderMessageOrBuilder getAvatarHeaderMessageOrBuilder() {
        if (avatarHeaderMessageBuilder_ != null) {
          return avatarHeaderMessageBuilder_.getMessageOrBuilder();
        } else {
          return avatarHeaderMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage.getDefaultInstance() : avatarHeaderMessage_;
        }
      }
      /**
       * <code>optional .AvatarHeaderMessage avatarHeaderMessage = 9;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage, de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage.Builder, de.pokerth.protocol.ProtoBuf.AvatarHeaderMessageOrBuilder> 
          getAvatarHeaderMessageFieldBuilder() {
        if (avatarHeaderMessageBuilder_ == null) {
          avatarHeaderMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage, de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage.Builder, de.pokerth.protocol.ProtoBuf.AvatarHeaderMessageOrBuilder>(
                  getAvatarHeaderMessage(),
                  getParentForChildren(),
                  isClean());
          avatarHeaderMessage_ = null;
        }
        return avatarHeaderMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.AvatarDataMessage avatarDataMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.AvatarDataMessage, de.pokerth.protocol.ProtoBuf.AvatarDataMessage.Builder, de.pokerth.protocol.ProtoBuf.AvatarDataMessageOrBuilder> avatarDataMessageBuilder_;
      /**
       * <code>optional .AvatarDataMessage avatarDataMessage = 10;</code>
       * @return Whether the avatarDataMessage field is set.
       */
      public boolean hasAvatarDataMessage() {
        return ((bitField0_ & 0x00000200) != 0);
      }
      /**
       * <code>optional .AvatarDataMessage avatarDataMessage = 10;</code>
       * @return The avatarDataMessage.
       */
      public de.pokerth.protocol.ProtoBuf.AvatarDataMessage getAvatarDataMessage() {
        if (avatarDataMessageBuilder_ == null) {
          return avatarDataMessage_ == null ? de.pokerth.protocol.ProtoBuf.AvatarDataMessage.getDefaultInstance() : avatarDataMessage_;
        } else {
          return avatarDataMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .AvatarDataMessage avatarDataMessage = 10;</code>
       */
      public Builder setAvatarDataMessage(de.pokerth.protocol.ProtoBuf.AvatarDataMessage value) {
        if (avatarDataMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          avatarDataMessage_ = value;
        } else {
          avatarDataMessageBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000200;
        onChanged();
        return this;
      }
      /**
       * <code>optional .AvatarDataMessage avatarDataMessage = 10;</code>
       */
      public Builder setAvatarDataMessage(
          de.pokerth.protocol.ProtoBuf.AvatarDataMessage.Builder builderForValue) {
        if (avatarDataMessageBuilder_ == null) {
          avatarDataMessage_ = builderForValue.build();
        } else {
          avatarDataMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000200;
        onChanged();
        return this;
      }
      /**
       * <code>optional .AvatarDataMessage avatarDataMessage = 10;</code>
       */
      public Builder mergeAvatarDataMessage(de.pokerth.protocol.ProtoBuf.AvatarDataMessage value) {
        if (avatarDataMessageBuilder_ == null) {
          if (((bitField0_ & 0x00000200) != 0) &&
            avatarDataMessage_ != null &&
            avatarDataMessage_ != de.pokerth.protocol.ProtoBuf.AvatarDataMessage.getDefaultInstance()) {
            getAvatarDataMessageBuilder().mergeFrom(value);
          } else {
            avatarDataMessage_ = value;
          }
        } else {
          avatarDataMessageBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000200;
        onChanged();
        return this;
      }
      /**
       * <code>optional .AvatarDataMessage avatarDataMessage = 10;</code>
       */
      public Builder clearAvatarDataMessage() {
        bitField0_ = (bitField0_ & ~0x00000200);
        avatarDataMessage_ = null;
        if (avatarDataMessageBuilder_ != null) {
          avatarDataMessageBuilder_.dispose();
          avatarDataMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .AvatarDataMessage avatarDataMessage = 10;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AvatarDataMessage.Builder getAvatarDataMessageBuilder() {
        bitField0_ |= 0x00000200;
        onChanged();
        return getAvatarDataMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .AvatarDataMessage avatarDataMessage = 10;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AvatarDataMessageOrBuilder getAvatarDataMessageOrBuilder() {
        if (avatarDataMessageBuilder_ != null) {
          return avatarDataMessageBuilder_.getMessageOrBuilder();
        } else {
          return avatarDataMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.AvatarDataMessage.getDefaultInstance() : avatarDataMessage_;
        }
      }
      /**
       * <code>optional .AvatarDataMessage avatarDataMessage = 10;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.AvatarDataMessage, de.pokerth.protocol.ProtoBuf.AvatarDataMessage.Builder, de.pokerth.protocol.ProtoBuf.AvatarDataMessageOrBuilder> 
          getAvatarDataMessageFieldBuilder() {
        if (avatarDataMessageBuilder_ == null) {
          avatarDataMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.AvatarDataMessage, de.pokerth.protocol.ProtoBuf.AvatarDataMessage.Builder, de.pokerth.protocol.ProtoBuf.AvatarDataMessageOrBuilder>(
                  getAvatarDataMessage(),
                  getParentForChildren(),
                  isClean());
          avatarDataMessage_ = null;
        }
        return avatarDataMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.AvatarEndMessage avatarEndMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.AvatarEndMessage, de.pokerth.protocol.ProtoBuf.AvatarEndMessage.Builder, de.pokerth.protocol.ProtoBuf.AvatarEndMessageOrBuilder> avatarEndMessageBuilder_;
      /**
       * <code>optional .AvatarEndMessage avatarEndMessage = 11;</code>
       * @return Whether the avatarEndMessage field is set.
       */
      public boolean hasAvatarEndMessage() {
        return ((bitField0_ & 0x00000400) != 0);
      }
      /**
       * <code>optional .AvatarEndMessage avatarEndMessage = 11;</code>
       * @return The avatarEndMessage.
       */
      public de.pokerth.protocol.ProtoBuf.AvatarEndMessage getAvatarEndMessage() {
        if (avatarEndMessageBuilder_ == null) {
          return avatarEndMessage_ == null ? de.pokerth.protocol.ProtoBuf.AvatarEndMessage.getDefaultInstance() : avatarEndMessage_;
        } else {
          return avatarEndMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .AvatarEndMessage avatarEndMessage = 11;</code>
       */
      public Builder setAvatarEndMessage(de.pokerth.protocol.ProtoBuf.AvatarEndMessage value) {
        if (avatarEndMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          avatarEndMessage_ = value;
        } else {
          avatarEndMessageBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000400;
        onChanged();
        return this;
      }
      /**
       * <code>optional .AvatarEndMessage avatarEndMessage = 11;</code>
       */
      public Builder setAvatarEndMessage(
          de.pokerth.protocol.ProtoBuf.AvatarEndMessage.Builder builderForValue) {
        if (avatarEndMessageBuilder_ == null) {
          avatarEndMessage_ = builderForValue.build();
        } else {
          avatarEndMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000400;
        onChanged();
        return this;
      }
      /**
       * <code>optional .AvatarEndMessage avatarEndMessage = 11;</code>
       */
      public Builder mergeAvatarEndMessage(de.pokerth.protocol.ProtoBuf.AvatarEndMessage value) {
        if (avatarEndMessageBuilder_ == null) {
          if (((bitField0_ & 0x00000400) != 0) &&
            avatarEndMessage_ != null &&
            avatarEndMessage_ != de.pokerth.protocol.ProtoBuf.AvatarEndMessage.getDefaultInstance()) {
            getAvatarEndMessageBuilder().mergeFrom(value);
          } else {
            avatarEndMessage_ = value;
          }
        } else {
          avatarEndMessageBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000400;
        onChanged();
        return this;
      }
      /**
       * <code>optional .AvatarEndMessage avatarEndMessage = 11;</code>
       */
      public Builder clearAvatarEndMessage() {
        bitField0_ = (bitField0_ & ~0x00000400);
        avatarEndMessage_ = null;
        if (avatarEndMessageBuilder_ != null) {
          avatarEndMessageBuilder_.dispose();
          avatarEndMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .AvatarEndMessage avatarEndMessage = 11;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AvatarEndMessage.Builder getAvatarEndMessageBuilder() {
        bitField0_ |= 0x00000400;
        onChanged();
        return getAvatarEndMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .AvatarEndMessage avatarEndMessage = 11;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AvatarEndMessageOrBuilder getAvatarEndMessageOrBuilder() {
        if (avatarEndMessageBuilder_ != null) {
          return avatarEndMessageBuilder_.getMessageOrBuilder();
        } else {
          return avatarEndMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.AvatarEndMessage.getDefaultInstance() : avatarEndMessage_;
        }
      }
      /**
       * <code>optional .AvatarEndMessage avatarEndMessage = 11;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.AvatarEndMessage, de.pokerth.protocol.ProtoBuf.AvatarEndMessage.Builder, de.pokerth.protocol.ProtoBuf.AvatarEndMessageOrBuilder> 
          getAvatarEndMessageFieldBuilder() {
        if (avatarEndMessageBuilder_ == null) {
          avatarEndMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.AvatarEndMessage, de.pokerth.protocol.ProtoBuf.AvatarEndMessage.Builder, de.pokerth.protocol.ProtoBuf.AvatarEndMessageOrBuilder>(
                  getAvatarEndMessage(),
                  getParentForChildren(),
                  isClean());
          avatarEndMessage_ = null;
        }
        return avatarEndMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage unknownAvatarMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage, de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage.Builder, de.pokerth.protocol.ProtoBuf.UnknownAvatarMessageOrBuilder> unknownAvatarMessageBuilder_;
      /**
       * <code>optional .UnknownAvatarMessage unknownAvatarMessage = 12;</code>
       * @return Whether the unknownAvatarMessage field is set.
       */
      public boolean hasUnknownAvatarMessage() {
        return ((bitField0_ & 0x00000800) != 0);
      }
      /**
       * <code>optional .UnknownAvatarMessage unknownAvatarMessage = 12;</code>
       * @return The unknownAvatarMessage.
       */
      public de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage getUnknownAvatarMessage() {
        if (unknownAvatarMessageBuilder_ == null) {
          return unknownAvatarMessage_ == null ? de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage.getDefaultInstance() : unknownAvatarMessage_;
        } else {
          return unknownAvatarMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .UnknownAvatarMessage unknownAvatarMessage = 12;</code>
       */
      public Builder setUnknownAvatarMessage(de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage value) {
        if (unknownAvatarMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          unknownAvatarMessage_ = value;
        } else {
          unknownAvatarMessageBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000800;
        onChanged();
        return this;
      }
      /**
       * <code>optional .UnknownAvatarMessage unknownAvatarMessage = 12;</code>
       */
      public Builder setUnknownAvatarMessage(
          de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage.Builder builderForValue) {
        if (unknownAvatarMessageBuilder_ == null) {
          unknownAvatarMessage_ = builderForValue.build();
        } else {
          unknownAvatarMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000800;
        onChanged();
        return this;
      }
      /**
       * <code>optional .UnknownAvatarMessage unknownAvatarMessage = 12;</code>
       */
      public Builder mergeUnknownAvatarMessage(de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage value) {
        if (unknownAvatarMessageBuilder_ == null) {
          if (((bitField0_ & 0x00000800) != 0) &&
            unknownAvatarMessage_ != null &&
            unknownAvatarMessage_ != de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage.getDefaultInstance()) {
            getUnknownAvatarMessageBuilder().mergeFrom(value);
          } else {
            unknownAvatarMessage_ = value;
          }
        } else {
          unknownAvatarMessageBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000800;
        onChanged();
        return this;
      }
      /**
       * <code>optional .UnknownAvatarMessage unknownAvatarMessage = 12;</code>
       */
      public Builder clearUnknownAvatarMessage() {
        bitField0_ = (bitField0_ & ~0x00000800);
        unknownAvatarMessage_ = null;
        if (unknownAvatarMessageBuilder_ != null) {
          unknownAvatarMessageBuilder_.dispose();
          unknownAvatarMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .UnknownAvatarMessage unknownAvatarMessage = 12;</code>
       */
      public de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage.Builder getUnknownAvatarMessageBuilder() {
        bitField0_ |= 0x00000800;
        onChanged();
        return getUnknownAvatarMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .UnknownAvatarMessage unknownAvatarMessage = 12;</code>
       */
      public de.pokerth.protocol.ProtoBuf.UnknownAvatarMessageOrBuilder getUnknownAvatarMessageOrBuilder() {
        if (unknownAvatarMessageBuilder_ != null) {
          return unknownAvatarMessageBuilder_.getMessageOrBuilder();
        } else {
          return unknownAvatarMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage.getDefaultInstance() : unknownAvatarMessage_;
        }
      }
      /**
       * <code>optional .UnknownAvatarMessage unknownAvatarMessage = 12;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage, de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage.Builder, de.pokerth.protocol.ProtoBuf.UnknownAvatarMessageOrBuilder> 
          getUnknownAvatarMessageFieldBuilder() {
        if (unknownAvatarMessageBuilder_ == null) {
          unknownAvatarMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage, de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage.Builder, de.pokerth.protocol.ProtoBuf.UnknownAvatarMessageOrBuilder>(
                  getUnknownAvatarMessage(),
                  getParentForChildren(),
                  isClean());
          unknownAvatarMessage_ = null;
        }
        return unknownAvatarMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.PlayerListMessage playerListMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.PlayerListMessage, de.pokerth.protocol.ProtoBuf.PlayerListMessage.Builder, de.pokerth.protocol.ProtoBuf.PlayerListMessageOrBuilder> playerListMessageBuilder_;
      /**
       * <code>optional .PlayerListMessage playerListMessage = 13;</code>
       * @return Whether the playerListMessage field is set.
       */
      public boolean hasPlayerListMessage() {
        return ((bitField0_ & 0x00001000) != 0);
      }
      /**
       * <code>optional .PlayerListMessage playerListMessage = 13;</code>
       * @return The playerListMessage.
       */
      public de.pokerth.protocol.ProtoBuf.PlayerListMessage getPlayerListMessage() {
        if (playerListMessageBuilder_ == null) {
          return playerListMessage_ == null ? de.pokerth.protocol.ProtoBuf.PlayerListMessage.getDefaultInstance() : playerListMessage_;
        } else {
          return playerListMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .PlayerListMessage playerListMessage = 13;</code>
       */
      public Builder setPlayerListMessage(de.pokerth.protocol.ProtoBuf.PlayerListMessage value) {
        if (playerListMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          playerListMessage_ = value;
        } else {
          playerListMessageBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00001000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .PlayerListMessage playerListMessage = 13;</code>
       */
      public Builder setPlayerListMessage(
          de.pokerth.protocol.ProtoBuf.PlayerListMessage.Builder builderForValue) {
        if (playerListMessageBuilder_ == null) {
          playerListMessage_ = builderForValue.build();
        } else {
          playerListMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00001000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .PlayerListMessage playerListMessage = 13;</code>
       */
      public Builder mergePlayerListMessage(de.pokerth.protocol.ProtoBuf.PlayerListMessage value) {
        if (playerListMessageBuilder_ == null) {
          if (((bitField0_ & 0x00001000) != 0) &&
            playerListMessage_ != null &&
            playerListMessage_ != de.pokerth.protocol.ProtoBuf.PlayerListMessage.getDefaultInstance()) {
            getPlayerListMessageBuilder().mergeFrom(value);
          } else {
            playerListMessage_ = value;
          }
        } else {
          playerListMessageBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00001000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .PlayerListMessage playerListMessage = 13;</code>
       */
      public Builder clearPlayerListMessage() {
        bitField0_ = (bitField0_ & ~0x00001000);
        playerListMessage_ = null;
        if (playerListMessageBuilder_ != null) {
          playerListMessageBuilder_.dispose();
          playerListMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .PlayerListMessage playerListMessage = 13;</code>
       */
      public de.pokerth.protocol.ProtoBuf.PlayerListMessage.Builder getPlayerListMessageBuilder() {
        bitField0_ |= 0x00001000;
        onChanged();
        return getPlayerListMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .PlayerListMessage playerListMessage = 13;</code>
       */
      public de.pokerth.protocol.ProtoBuf.PlayerListMessageOrBuilder getPlayerListMessageOrBuilder() {
        if (playerListMessageBuilder_ != null) {
          return playerListMessageBuilder_.getMessageOrBuilder();
        } else {
          return playerListMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.PlayerListMessage.getDefaultInstance() : playerListMessage_;
        }
      }
      /**
       * <code>optional .PlayerListMessage playerListMessage = 13;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.PlayerListMessage, de.pokerth.protocol.ProtoBuf.PlayerListMessage.Builder, de.pokerth.protocol.ProtoBuf.PlayerListMessageOrBuilder> 
          getPlayerListMessageFieldBuilder() {
        if (playerListMessageBuilder_ == null) {
          playerListMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.PlayerListMessage, de.pokerth.protocol.ProtoBuf.PlayerListMessage.Builder, de.pokerth.protocol.ProtoBuf.PlayerListMessageOrBuilder>(
                  getPlayerListMessage(),
                  getParentForChildren(),
                  isClean());
          playerListMessage_ = null;
        }
        return playerListMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.GameListNewMessage gameListNewMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.GameListNewMessage, de.pokerth.protocol.ProtoBuf.GameListNewMessage.Builder, de.pokerth.protocol.ProtoBuf.GameListNewMessageOrBuilder> gameListNewMessageBuilder_;
      /**
       * <code>optional .GameListNewMessage gameListNewMessage = 14;</code>
       * @return Whether the gameListNewMessage field is set.
       */
      public boolean hasGameListNewMessage() {
        return ((bitField0_ & 0x00002000) != 0);
      }
      /**
       * <code>optional .GameListNewMessage gameListNewMessage = 14;</code>
       * @return The gameListNewMessage.
       */
      public de.pokerth.protocol.ProtoBuf.GameListNewMessage getGameListNewMessage() {
        if (gameListNewMessageBuilder_ == null) {
          return gameListNewMessage_ == null ? de.pokerth.protocol.ProtoBuf.GameListNewMessage.getDefaultInstance() : gameListNewMessage_;
        } else {
          return gameListNewMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .GameListNewMessage gameListNewMessage = 14;</code>
       */
      public Builder setGameListNewMessage(de.pokerth.protocol.ProtoBuf.GameListNewMessage value) {
        if (gameListNewMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          gameListNewMessage_ = value;
        } else {
          gameListNewMessageBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00002000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .GameListNewMessage gameListNewMessage = 14;</code>
       */
      public Builder setGameListNewMessage(
          de.pokerth.protocol.ProtoBuf.GameListNewMessage.Builder builderForValue) {
        if (gameListNewMessageBuilder_ == null) {
          gameListNewMessage_ = builderForValue.build();
        } else {
          gameListNewMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00002000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .GameListNewMessage gameListNewMessage = 14;</code>
       */
      public Builder mergeGameListNewMessage(de.pokerth.protocol.ProtoBuf.GameListNewMessage value) {
        if (gameListNewMessageBuilder_ == null) {
          if (((bitField0_ & 0x00002000) != 0) &&
            gameListNewMessage_ != null &&
            gameListNewMessage_ != de.pokerth.protocol.ProtoBuf.GameListNewMessage.getDefaultInstance()) {
            getGameListNewMessageBuilder().mergeFrom(value);
          } else {
            gameListNewMessage_ = value;
          }
        } else {
          gameListNewMessageBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00002000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .GameListNewMessage gameListNewMessage = 14;</code>
       */
      public Builder clearGameListNewMessage() {
        bitField0_ = (bitField0_ & ~0x00002000);
        gameListNewMessage_ = null;
        if (gameListNewMessageBuilder_ != null) {
          gameListNewMessageBuilder_.dispose();
          gameListNewMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .GameListNewMessage gameListNewMessage = 14;</code>
       */
      public de.pokerth.protocol.ProtoBuf.GameListNewMessage.Builder getGameListNewMessageBuilder() {
        bitField0_ |= 0x00002000;
        onChanged();
        return getGameListNewMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .GameListNewMessage gameListNewMessage = 14;</code>
       */
      public de.pokerth.protocol.ProtoBuf.GameListNewMessageOrBuilder getGameListNewMessageOrBuilder() {
        if (gameListNewMessageBuilder_ != null) {
          return gameListNewMessageBuilder_.getMessageOrBuilder();
        } else {
          return gameListNewMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.GameListNewMessage.getDefaultInstance() : gameListNewMessage_;
        }
      }
      /**
       * <code>optional .GameListNewMessage gameListNewMessage = 14;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.GameListNewMessage, de.pokerth.protocol.ProtoBuf.GameListNewMessage.Builder, de.pokerth.protocol.ProtoBuf.GameListNewMessageOrBuilder> 
          getGameListNewMessageFieldBuilder() {
        if (gameListNewMessageBuilder_ == null) {
          gameListNewMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.GameListNewMessage, de.pokerth.protocol.ProtoBuf.GameListNewMessage.Builder, de.pokerth.protocol.ProtoBuf.GameListNewMessageOrBuilder>(
                  getGameListNewMessage(),
                  getParentForChildren(),
                  isClean());
          gameListNewMessage_ = null;
        }
        return gameListNewMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.GameListUpdateMessage gameListUpdateMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.GameListUpdateMessage, de.pokerth.protocol.ProtoBuf.GameListUpdateMessage.Builder, de.pokerth.protocol.ProtoBuf.GameListUpdateMessageOrBuilder> gameListUpdateMessageBuilder_;
      /**
       * <code>optional .GameListUpdateMessage gameListUpdateMessage = 15;</code>
       * @return Whether the gameListUpdateMessage field is set.
       */
      public boolean hasGameListUpdateMessage() {
        return ((bitField0_ & 0x00004000) != 0);
      }
      /**
       * <code>optional .GameListUpdateMessage gameListUpdateMessage = 15;</code>
       * @return The gameListUpdateMessage.
       */
      public de.pokerth.protocol.ProtoBuf.GameListUpdateMessage getGameListUpdateMessage() {
        if (gameListUpdateMessageBuilder_ == null) {
          return gameListUpdateMessage_ == null ? de.pokerth.protocol.ProtoBuf.GameListUpdateMessage.getDefaultInstance() : gameListUpdateMessage_;
        } else {
          return gameListUpdateMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .GameListUpdateMessage gameListUpdateMessage = 15;</code>
       */
      public Builder setGameListUpdateMessage(de.pokerth.protocol.ProtoBuf.GameListUpdateMessage value) {
        if (gameListUpdateMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          gameListUpdateMessage_ = value;
        } else {
          gameListUpdateMessageBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00004000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .GameListUpdateMessage gameListUpdateMessage = 15;</code>
       */
      public Builder setGameListUpdateMessage(
          de.pokerth.protocol.ProtoBuf.GameListUpdateMessage.Builder builderForValue) {
        if (gameListUpdateMessageBuilder_ == null) {
          gameListUpdateMessage_ = builderForValue.build();
        } else {
          gameListUpdateMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00004000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .GameListUpdateMessage gameListUpdateMessage = 15;</code>
       */
      public Builder mergeGameListUpdateMessage(de.pokerth.protocol.ProtoBuf.GameListUpdateMessage value) {
        if (gameListUpdateMessageBuilder_ == null) {
          if (((bitField0_ & 0x00004000) != 0) &&
            gameListUpdateMessage_ != null &&
            gameListUpdateMessage_ != de.pokerth.protocol.ProtoBuf.GameListUpdateMessage.getDefaultInstance()) {
            getGameListUpdateMessageBuilder().mergeFrom(value);
          } else {
            gameListUpdateMessage_ = value;
          }
        } else {
          gameListUpdateMessageBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00004000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .GameListUpdateMessage gameListUpdateMessage = 15;</code>
       */
      public Builder clearGameListUpdateMessage() {
        bitField0_ = (bitField0_ & ~0x00004000);
        gameListUpdateMessage_ = null;
        if (gameListUpdateMessageBuilder_ != null) {
          gameListUpdateMessageBuilder_.dispose();
          gameListUpdateMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .GameListUpdateMessage gameListUpdateMessage = 15;</code>
       */
      public de.pokerth.protocol.ProtoBuf.GameListUpdateMessage.Builder getGameListUpdateMessageBuilder() {
        bitField0_ |= 0x00004000;
        onChanged();
        return getGameListUpdateMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .GameListUpdateMessage gameListUpdateMessage = 15;</code>
       */
      public de.pokerth.protocol.ProtoBuf.GameListUpdateMessageOrBuilder getGameListUpdateMessageOrBuilder() {
        if (gameListUpdateMessageBuilder_ != null) {
          return gameListUpdateMessageBuilder_.getMessageOrBuilder();
        } else {
          return gameListUpdateMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.GameListUpdateMessage.getDefaultInstance() : gameListUpdateMessage_;
        }
      }
      /**
       * <code>optional .GameListUpdateMessage gameListUpdateMessage = 15;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.GameListUpdateMessage, de.pokerth.protocol.ProtoBuf.GameListUpdateMessage.Builder, de.pokerth.protocol.ProtoBuf.GameListUpdateMessageOrBuilder> 
          getGameListUpdateMessageFieldBuilder() {
        if (gameListUpdateMessageBuilder_ == null) {
          gameListUpdateMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.GameListUpdateMessage, de.pokerth.protocol.ProtoBuf.GameListUpdateMessage.Builder, de.pokerth.protocol.ProtoBuf.GameListUpdateMessageOrBuilder>(
                  getGameListUpdateMessage(),
                  getParentForChildren(),
                  isClean());
          gameListUpdateMessage_ = null;
        }
        return gameListUpdateMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage gameListPlayerJoinedMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage, de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage.Builder, de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessageOrBuilder> gameListPlayerJoinedMessageBuilder_;
      /**
       * <code>optional .GameListPlayerJoinedMessage gameListPlayerJoinedMessage = 16;</code>
       * @return Whether the gameListPlayerJoinedMessage field is set.
       */
      public boolean hasGameListPlayerJoinedMessage() {
        return ((bitField0_ & 0x00008000) != 0);
      }
      /**
       * <code>optional .GameListPlayerJoinedMessage gameListPlayerJoinedMessage = 16;</code>
       * @return The gameListPlayerJoinedMessage.
       */
      public de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage getGameListPlayerJoinedMessage() {
        if (gameListPlayerJoinedMessageBuilder_ == null) {
          return gameListPlayerJoinedMessage_ == null ? de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage.getDefaultInstance() : gameListPlayerJoinedMessage_;
        } else {
          return gameListPlayerJoinedMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .GameListPlayerJoinedMessage gameListPlayerJoinedMessage = 16;</code>
       */
      public Builder setGameListPlayerJoinedMessage(de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage value) {
        if (gameListPlayerJoinedMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          gameListPlayerJoinedMessage_ = value;
        } else {
          gameListPlayerJoinedMessageBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00008000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .GameListPlayerJoinedMessage gameListPlayerJoinedMessage = 16;</code>
       */
      public Builder setGameListPlayerJoinedMessage(
          de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage.Builder builderForValue) {
        if (gameListPlayerJoinedMessageBuilder_ == null) {
          gameListPlayerJoinedMessage_ = builderForValue.build();
        } else {
          gameListPlayerJoinedMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00008000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .GameListPlayerJoinedMessage gameListPlayerJoinedMessage = 16;</code>
       */
      public Builder mergeGameListPlayerJoinedMessage(de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage value) {
        if (gameListPlayerJoinedMessageBuilder_ == null) {
          if (((bitField0_ & 0x00008000) != 0) &&
            gameListPlayerJoinedMessage_ != null &&
            gameListPlayerJoinedMessage_ != de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage.getDefaultInstance()) {
            getGameListPlayerJoinedMessageBuilder().mergeFrom(value);
          } else {
            gameListPlayerJoinedMessage_ = value;
          }
        } else {
          gameListPlayerJoinedMessageBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00008000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .GameListPlayerJoinedMessage gameListPlayerJoinedMessage = 16;</code>
       */
      public Builder clearGameListPlayerJoinedMessage() {
        bitField0_ = (bitField0_ & ~0x00008000);
        gameListPlayerJoinedMessage_ = null;
        if (gameListPlayerJoinedMessageBuilder_ != null) {
          gameListPlayerJoinedMessageBuilder_.dispose();
          gameListPlayerJoinedMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .GameListPlayerJoinedMessage gameListPlayerJoinedMessage = 16;</code>
       */
      public de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage.Builder getGameListPlayerJoinedMessageBuilder() {
        bitField0_ |= 0x00008000;
        onChanged();
        return getGameListPlayerJoinedMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .GameListPlayerJoinedMessage gameListPlayerJoinedMessage = 16;</code>
       */
      public de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessageOrBuilder getGameListPlayerJoinedMessageOrBuilder() {
        if (gameListPlayerJoinedMessageBuilder_ != null) {
          return gameListPlayerJoinedMessageBuilder_.getMessageOrBuilder();
        } else {
          return gameListPlayerJoinedMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage.getDefaultInstance() : gameListPlayerJoinedMessage_;
        }
      }
      /**
       * <code>optional .GameListPlayerJoinedMessage gameListPlayerJoinedMessage = 16;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage, de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage.Builder, de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessageOrBuilder> 
          getGameListPlayerJoinedMessageFieldBuilder() {
        if (gameListPlayerJoinedMessageBuilder_ == null) {
          gameListPlayerJoinedMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage, de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage.Builder, de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessageOrBuilder>(
                  getGameListPlayerJoinedMessage(),
                  getParentForChildren(),
                  isClean());
          gameListPlayerJoinedMessage_ = null;
        }
        return gameListPlayerJoinedMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage gameListPlayerLeftMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage, de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage.Builder, de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessageOrBuilder> gameListPlayerLeftMessageBuilder_;
      /**
       * <code>optional .GameListPlayerLeftMessage gameListPlayerLeftMessage = 17;</code>
       * @return Whether the gameListPlayerLeftMessage field is set.
       */
      public boolean hasGameListPlayerLeftMessage() {
        return ((bitField0_ & 0x00010000) != 0);
      }
      /**
       * <code>optional .GameListPlayerLeftMessage gameListPlayerLeftMessage = 17;</code>
       * @return The gameListPlayerLeftMessage.
       */
      public de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage getGameListPlayerLeftMessage() {
        if (gameListPlayerLeftMessageBuilder_ == null) {
          return gameListPlayerLeftMessage_ == null ? de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage.getDefaultInstance() : gameListPlayerLeftMessage_;
        } else {
          return gameListPlayerLeftMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .GameListPlayerLeftMessage gameListPlayerLeftMessage = 17;</code>
       */
      public Builder setGameListPlayerLeftMessage(de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage value) {
        if (gameListPlayerLeftMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          gameListPlayerLeftMessage_ = value;
        } else {
          gameListPlayerLeftMessageBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00010000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .GameListPlayerLeftMessage gameListPlayerLeftMessage = 17;</code>
       */
      public Builder setGameListPlayerLeftMessage(
          de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage.Builder builderForValue) {
        if (gameListPlayerLeftMessageBuilder_ == null) {
          gameListPlayerLeftMessage_ = builderForValue.build();
        } else {
          gameListPlayerLeftMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00010000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .GameListPlayerLeftMessage gameListPlayerLeftMessage = 17;</code>
       */
      public Builder mergeGameListPlayerLeftMessage(de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage value) {
        if (gameListPlayerLeftMessageBuilder_ == null) {
          if (((bitField0_ & 0x00010000) != 0) &&
            gameListPlayerLeftMessage_ != null &&
            gameListPlayerLeftMessage_ != de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage.getDefaultInstance()) {
            getGameListPlayerLeftMessageBuilder().mergeFrom(value);
          } else {
            gameListPlayerLeftMessage_ = value;
          }
        } else {
          gameListPlayerLeftMessageBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00010000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .GameListPlayerLeftMessage gameListPlayerLeftMessage = 17;</code>
       */
      public Builder clearGameListPlayerLeftMessage() {
        bitField0_ = (bitField0_ & ~0x00010000);
        gameListPlayerLeftMessage_ = null;
        if (gameListPlayerLeftMessageBuilder_ != null) {
          gameListPlayerLeftMessageBuilder_.dispose();
          gameListPlayerLeftMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .GameListPlayerLeftMessage gameListPlayerLeftMessage = 17;</code>
       */
      public de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage.Builder getGameListPlayerLeftMessageBuilder() {
        bitField0_ |= 0x00010000;
        onChanged();
        return getGameListPlayerLeftMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .GameListPlayerLeftMessage gameListPlayerLeftMessage = 17;</code>
       */
      public de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessageOrBuilder getGameListPlayerLeftMessageOrBuilder() {
        if (gameListPlayerLeftMessageBuilder_ != null) {
          return gameListPlayerLeftMessageBuilder_.getMessageOrBuilder();
        } else {
          return gameListPlayerLeftMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage.getDefaultInstance() : gameListPlayerLeftMessage_;
        }
      }
      /**
       * <code>optional .GameListPlayerLeftMessage gameListPlayerLeftMessage = 17;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage, de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage.Builder, de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessageOrBuilder> 
          getGameListPlayerLeftMessageFieldBuilder() {
        if (gameListPlayerLeftMessageBuilder_ == null) {
          gameListPlayerLeftMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage, de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage.Builder, de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessageOrBuilder>(
                  getGameListPlayerLeftMessage(),
                  getParentForChildren(),
                  isClean());
          gameListPlayerLeftMessage_ = null;
        }
        return gameListPlayerLeftMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage gameListAdminChangedMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage, de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage.Builder, de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessageOrBuilder> gameListAdminChangedMessageBuilder_;
      /**
       * <code>optional .GameListAdminChangedMessage gameListAdminChangedMessage = 18;</code>
       * @return Whether the gameListAdminChangedMessage field is set.
       */
      public boolean hasGameListAdminChangedMessage() {
        return ((bitField0_ & 0x00020000) != 0);
      }
      /**
       * <code>optional .GameListAdminChangedMessage gameListAdminChangedMessage = 18;</code>
       * @return The gameListAdminChangedMessage.
       */
      public de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage getGameListAdminChangedMessage() {
        if (gameListAdminChangedMessageBuilder_ == null) {
          return gameListAdminChangedMessage_ == null ? de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage.getDefaultInstance() : gameListAdminChangedMessage_;
        } else {
          return gameListAdminChangedMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .GameListAdminChangedMessage gameListAdminChangedMessage = 18;</code>
       */
      public Builder setGameListAdminChangedMessage(de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage value) {
        if (gameListAdminChangedMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          gameListAdminChangedMessage_ = value;
        } else {
          gameListAdminChangedMessageBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00020000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .GameListAdminChangedMessage gameListAdminChangedMessage = 18;</code>
       */
      public Builder setGameListAdminChangedMessage(
          de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage.Builder builderForValue) {
        if (gameListAdminChangedMessageBuilder_ == null) {
          gameListAdminChangedMessage_ = builderForValue.build();
        } else {
          gameListAdminChangedMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00020000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .GameListAdminChangedMessage gameListAdminChangedMessage = 18;</code>
       */
      public Builder mergeGameListAdminChangedMessage(de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage value) {
        if (gameListAdminChangedMessageBuilder_ == null) {
          if (((bitField0_ & 0x00020000) != 0) &&
            gameListAdminChangedMessage_ != null &&
            gameListAdminChangedMessage_ != de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage.getDefaultInstance()) {
            getGameListAdminChangedMessageBuilder().mergeFrom(value);
          } else {
            gameListAdminChangedMessage_ = value;
          }
        } else {
          gameListAdminChangedMessageBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00020000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .GameListAdminChangedMessage gameListAdminChangedMessage = 18;</code>
       */
      public Builder clearGameListAdminChangedMessage() {
        bitField0_ = (bitField0_ & ~0x00020000);
        gameListAdminChangedMessage_ = null;
        if (gameListAdminChangedMessageBuilder_ != null) {
          gameListAdminChangedMessageBuilder_.dispose();
          gameListAdminChangedMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .GameListAdminChangedMessage gameListAdminChangedMessage = 18;</code>
       */
      public de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage.Builder getGameListAdminChangedMessageBuilder() {
        bitField0_ |= 0x00020000;
        onChanged();
        return getGameListAdminChangedMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .GameListAdminChangedMessage gameListAdminChangedMessage = 18;</code>
       */
      public de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessageOrBuilder getGameListAdminChangedMessageOrBuilder() {
        if (gameListAdminChangedMessageBuilder_ != null) {
          return gameListAdminChangedMessageBuilder_.getMessageOrBuilder();
        } else {
          return gameListAdminChangedMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage.getDefaultInstance() : gameListAdminChangedMessage_;
        }
      }
      /**
       * <code>optional .GameListAdminChangedMessage gameListAdminChangedMessage = 18;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage, de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage.Builder, de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessageOrBuilder> 
          getGameListAdminChangedMessageFieldBuilder() {
        if (gameListAdminChangedMessageBuilder_ == null) {
          gameListAdminChangedMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage, de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage.Builder, de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessageOrBuilder>(
                  getGameListAdminChangedMessage(),
                  getParentForChildren(),
                  isClean());
          gameListAdminChangedMessage_ = null;
        }
        return gameListAdminChangedMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage playerInfoRequestMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage, de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage.Builder, de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessageOrBuilder> playerInfoRequestMessageBuilder_;
      /**
       * <code>optional .PlayerInfoRequestMessage playerInfoRequestMessage = 19;</code>
       * @return Whether the playerInfoRequestMessage field is set.
       */
      public boolean hasPlayerInfoRequestMessage() {
        return ((bitField0_ & 0x00040000) != 0);
      }
      /**
       * <code>optional .PlayerInfoRequestMessage playerInfoRequestMessage = 19;</code>
       * @return The playerInfoRequestMessage.
       */
      public de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage getPlayerInfoRequestMessage() {
        if (playerInfoRequestMessageBuilder_ == null) {
          return playerInfoRequestMessage_ == null ? de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage.getDefaultInstance() : playerInfoRequestMessage_;
        } else {
          return playerInfoRequestMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .PlayerInfoRequestMessage playerInfoRequestMessage = 19;</code>
       */
      public Builder setPlayerInfoRequestMessage(de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage value) {
        if (playerInfoRequestMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          playerInfoRequestMessage_ = value;
        } else {
          playerInfoRequestMessageBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00040000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .PlayerInfoRequestMessage playerInfoRequestMessage = 19;</code>
       */
      public Builder setPlayerInfoRequestMessage(
          de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage.Builder builderForValue) {
        if (playerInfoRequestMessageBuilder_ == null) {
          playerInfoRequestMessage_ = builderForValue.build();
        } else {
          playerInfoRequestMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00040000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .PlayerInfoRequestMessage playerInfoRequestMessage = 19;</code>
       */
      public Builder mergePlayerInfoRequestMessage(de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage value) {
        if (playerInfoRequestMessageBuilder_ == null) {
          if (((bitField0_ & 0x00040000) != 0) &&
            playerInfoRequestMessage_ != null &&
            playerInfoRequestMessage_ != de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage.getDefaultInstance()) {
            getPlayerInfoRequestMessageBuilder().mergeFrom(value);
          } else {
            playerInfoRequestMessage_ = value;
          }
        } else {
          playerInfoRequestMessageBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00040000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .PlayerInfoRequestMessage playerInfoRequestMessage = 19;</code>
       */
      public Builder clearPlayerInfoRequestMessage() {
        bitField0_ = (bitField0_ & ~0x00040000);
        playerInfoRequestMessage_ = null;
        if (playerInfoRequestMessageBuilder_ != null) {
          playerInfoRequestMessageBuilder_.dispose();
          playerInfoRequestMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .PlayerInfoRequestMessage playerInfoRequestMessage = 19;</code>
       */
      public de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage.Builder getPlayerInfoRequestMessageBuilder() {
        bitField0_ |= 0x00040000;
        onChanged();
        return getPlayerInfoRequestMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .PlayerInfoRequestMessage playerInfoRequestMessage = 19;</code>
       */
      public de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessageOrBuilder getPlayerInfoRequestMessageOrBuilder() {
        if (playerInfoRequestMessageBuilder_ != null) {
          return playerInfoRequestMessageBuilder_.getMessageOrBuilder();
        } else {
          return playerInfoRequestMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage.getDefaultInstance() : playerInfoRequestMessage_;
        }
      }
      /**
       * <code>optional .PlayerInfoRequestMessage playerInfoRequestMessage = 19;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage, de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage.Builder, de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessageOrBuilder> 
          getPlayerInfoRequestMessageFieldBuilder() {
        if (playerInfoRequestMessageBuilder_ == null) {
          playerInfoRequestMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage, de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage.Builder, de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessageOrBuilder>(
                  getPlayerInfoRequestMessage(),
                  getParentForChildren(),
                  isClean());
          playerInfoRequestMessage_ = null;
        }
        return playerInfoRequestMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage playerInfoReplyMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage, de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.Builder, de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessageOrBuilder> playerInfoReplyMessageBuilder_;
      /**
       * <code>optional .PlayerInfoReplyMessage playerInfoReplyMessage = 20;</code>
       * @return Whether the playerInfoReplyMessage field is set.
       */
      public boolean hasPlayerInfoReplyMessage() {
        return ((bitField0_ & 0x00080000) != 0);
      }
      /**
       * <code>optional .PlayerInfoReplyMessage playerInfoReplyMessage = 20;</code>
       * @return The playerInfoReplyMessage.
       */
      public de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage getPlayerInfoReplyMessage() {
        if (playerInfoReplyMessageBuilder_ == null) {
          return playerInfoReplyMessage_ == null ? de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.getDefaultInstance() : playerInfoReplyMessage_;
        } else {
          return playerInfoReplyMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .PlayerInfoReplyMessage playerInfoReplyMessage = 20;</code>
       */
      public Builder setPlayerInfoReplyMessage(de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage value) {
        if (playerInfoReplyMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          playerInfoReplyMessage_ = value;
        } else {
          playerInfoReplyMessageBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00080000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .PlayerInfoReplyMessage playerInfoReplyMessage = 20;</code>
       */
      public Builder setPlayerInfoReplyMessage(
          de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.Builder builderForValue) {
        if (playerInfoReplyMessageBuilder_ == null) {
          playerInfoReplyMessage_ = builderForValue.build();
        } else {
          playerInfoReplyMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00080000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .PlayerInfoReplyMessage playerInfoReplyMessage = 20;</code>
       */
      public Builder mergePlayerInfoReplyMessage(de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage value) {
        if (playerInfoReplyMessageBuilder_ == null) {
          if (((bitField0_ & 0x00080000) != 0) &&
            playerInfoReplyMessage_ != null &&
            playerInfoReplyMessage_ != de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.getDefaultInstance()) {
            getPlayerInfoReplyMessageBuilder().mergeFrom(value);
          } else {
            playerInfoReplyMessage_ = value;
          }
        } else {
          playerInfoReplyMessageBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00080000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .PlayerInfoReplyMessage playerInfoReplyMessage = 20;</code>
       */
      public Builder clearPlayerInfoReplyMessage() {
        bitField0_ = (bitField0_ & ~0x00080000);
        playerInfoReplyMessage_ = null;
        if (playerInfoReplyMessageBuilder_ != null) {
          playerInfoReplyMessageBuilder_.dispose();
          playerInfoReplyMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .PlayerInfoReplyMessage playerInfoReplyMessage = 20;</code>
       */
      public de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.Builder getPlayerInfoReplyMessageBuilder() {
        bitField0_ |= 0x00080000;
        onChanged();
        return getPlayerInfoReplyMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .PlayerInfoReplyMessage playerInfoReplyMessage = 20;</code>
       */
      public de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessageOrBuilder getPlayerInfoReplyMessageOrBuilder() {
        if (playerInfoReplyMessageBuilder_ != null) {
          return playerInfoReplyMessageBuilder_.getMessageOrBuilder();
        } else {
          return playerInfoReplyMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.getDefaultInstance() : playerInfoReplyMessage_;
        }
      }
      /**
       * <code>optional .PlayerInfoReplyMessage playerInfoReplyMessage = 20;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage, de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.Builder, de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessageOrBuilder> 
          getPlayerInfoReplyMessageFieldBuilder() {
        if (playerInfoReplyMessageBuilder_ == null) {
          playerInfoReplyMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage, de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.Builder, de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessageOrBuilder>(
                  getPlayerInfoReplyMessage(),
                  getParentForChildren(),
                  isClean());
          playerInfoReplyMessage_ = null;
        }
        return playerInfoReplyMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage subscriptionRequestMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage, de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.Builder, de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessageOrBuilder> subscriptionRequestMessageBuilder_;
      /**
       * <code>optional .SubscriptionRequestMessage subscriptionRequestMessage = 21;</code>
       * @return Whether the subscriptionRequestMessage field is set.
       */
      public boolean hasSubscriptionRequestMessage() {
        return ((bitField0_ & 0x00100000) != 0);
      }
      /**
       * <code>optional .SubscriptionRequestMessage subscriptionRequestMessage = 21;</code>
       * @return The subscriptionRequestMessage.
       */
      public de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage getSubscriptionRequestMessage() {
        if (subscriptionRequestMessageBuilder_ == null) {
          return subscriptionRequestMessage_ == null ? de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.getDefaultInstance() : subscriptionRequestMessage_;
        } else {
          return subscriptionRequestMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .SubscriptionRequestMessage subscriptionRequestMessage = 21;</code>
       */
      public Builder setSubscriptionRequestMessage(de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage value) {
        if (subscriptionRequestMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          subscriptionRequestMessage_ = value;
        } else {
          subscriptionRequestMessageBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00100000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .SubscriptionRequestMessage subscriptionRequestMessage = 21;</code>
       */
      public Builder setSubscriptionRequestMessage(
          de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.Builder builderForValue) {
        if (subscriptionRequestMessageBuilder_ == null) {
          subscriptionRequestMessage_ = builderForValue.build();
        } else {
          subscriptionRequestMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00100000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .SubscriptionRequestMessage subscriptionRequestMessage = 21;</code>
       */
      public Builder mergeSubscriptionRequestMessage(de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage value) {
        if (subscriptionRequestMessageBuilder_ == null) {
          if (((bitField0_ & 0x00100000) != 0) &&
            subscriptionRequestMessage_ != null &&
            subscriptionRequestMessage_ != de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.getDefaultInstance()) {
            getSubscriptionRequestMessageBuilder().mergeFrom(value);
          } else {
            subscriptionRequestMessage_ = value;
          }
        } else {
          subscriptionRequestMessageBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00100000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .SubscriptionRequestMessage subscriptionRequestMessage = 21;</code>
       */
      public Builder clearSubscriptionRequestMessage() {
        bitField0_ = (bitField0_ & ~0x00100000);
        subscriptionRequestMessage_ = null;
        if (subscriptionRequestMessageBuilder_ != null) {
          subscriptionRequestMessageBuilder_.dispose();
          subscriptionRequestMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .SubscriptionRequestMessage subscriptionRequestMessage = 21;</code>
       */
      public de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.Builder getSubscriptionRequestMessageBuilder() {
        bitField0_ |= 0x00100000;
        onChanged();
        return getSubscriptionRequestMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .SubscriptionRequestMessage subscriptionRequestMessage = 21;</code>
       */
      public de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessageOrBuilder getSubscriptionRequestMessageOrBuilder() {
        if (subscriptionRequestMessageBuilder_ != null) {
          return subscriptionRequestMessageBuilder_.getMessageOrBuilder();
        } else {
          return subscriptionRequestMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.getDefaultInstance() : subscriptionRequestMessage_;
        }
      }
      /**
       * <code>optional .SubscriptionRequestMessage subscriptionRequestMessage = 21;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage, de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.Builder, de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessageOrBuilder> 
          getSubscriptionRequestMessageFieldBuilder() {
        if (subscriptionRequestMessageBuilder_ == null) {
          subscriptionRequestMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage, de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.Builder, de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessageOrBuilder>(
                  getSubscriptionRequestMessage(),
                  getParentForChildren(),
                  isClean());
          subscriptionRequestMessage_ = null;
        }
        return subscriptionRequestMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage joinExistingGameMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage, de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage.Builder, de.pokerth.protocol.ProtoBuf.JoinExistingGameMessageOrBuilder> joinExistingGameMessageBuilder_;
      /**
       * <code>optional .JoinExistingGameMessage joinExistingGameMessage = 22;</code>
       * @return Whether the joinExistingGameMessage field is set.
       */
      public boolean hasJoinExistingGameMessage() {
        return ((bitField0_ & 0x00200000) != 0);
      }
      /**
       * <code>optional .JoinExistingGameMessage joinExistingGameMessage = 22;</code>
       * @return The joinExistingGameMessage.
       */
      public de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage getJoinExistingGameMessage() {
        if (joinExistingGameMessageBuilder_ == null) {
          return joinExistingGameMessage_ == null ? de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage.getDefaultInstance() : joinExistingGameMessage_;
        } else {
          return joinExistingGameMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .JoinExistingGameMessage joinExistingGameMessage = 22;</code>
       */
      public Builder setJoinExistingGameMessage(de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage value) {
        if (joinExistingGameMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          joinExistingGameMessage_ = value;
        } else {
          joinExistingGameMessageBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00200000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .JoinExistingGameMessage joinExistingGameMessage = 22;</code>
       */
      public Builder setJoinExistingGameMessage(
          de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage.Builder builderForValue) {
        if (joinExistingGameMessageBuilder_ == null) {
          joinExistingGameMessage_ = builderForValue.build();
        } else {
          joinExistingGameMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00200000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .JoinExistingGameMessage joinExistingGameMessage = 22;</code>
       */
      public Builder mergeJoinExistingGameMessage(de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage value) {
        if (joinExistingGameMessageBuilder_ == null) {
          if (((bitField0_ & 0x00200000) != 0) &&
            joinExistingGameMessage_ != null &&
            joinExistingGameMessage_ != de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage.getDefaultInstance()) {
            getJoinExistingGameMessageBuilder().mergeFrom(value);
          } else {
            joinExistingGameMessage_ = value;
          }
        } else {
          joinExistingGameMessageBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00200000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .JoinExistingGameMessage joinExistingGameMessage = 22;</code>
       */
      public Builder clearJoinExistingGameMessage() {
        bitField0_ = (bitField0_ & ~0x00200000);
        joinExistingGameMessage_ = null;
        if (joinExistingGameMessageBuilder_ != null) {
          joinExistingGameMessageBuilder_.dispose();
          joinExistingGameMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .JoinExistingGameMessage joinExistingGameMessage = 22;</code>
       */
      public de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage.Builder getJoinExistingGameMessageBuilder() {
        bitField0_ |= 0x00200000;
        onChanged();
        return getJoinExistingGameMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .JoinExistingGameMessage joinExistingGameMessage = 22;</code>
       */
      public de.pokerth.protocol.ProtoBuf.JoinExistingGameMessageOrBuilder getJoinExistingGameMessageOrBuilder() {
        if (joinExistingGameMessageBuilder_ != null) {
          return joinExistingGameMessageBuilder_.getMessageOrBuilder();
        } else {
          return joinExistingGameMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage.getDefaultInstance() : joinExistingGameMessage_;
        }
      }
      /**
       * <code>optional .JoinExistingGameMessage joinExistingGameMessage = 22;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage, de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage.Builder, de.pokerth.protocol.ProtoBuf.JoinExistingGameMessageOrBuilder> 
          getJoinExistingGameMessageFieldBuilder() {
        if (joinExistingGameMessageBuilder_ == null) {
          joinExistingGameMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage, de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage.Builder, de.pokerth.protocol.ProtoBuf.JoinExistingGameMessageOrBuilder>(
                  getJoinExistingGameMessage(),
                  getParentForChildren(),
                  isClean());
          joinExistingGameMessage_ = null;
        }
        return joinExistingGameMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.JoinNewGameMessage joinNewGameMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.JoinNewGameMessage, de.pokerth.protocol.ProtoBuf.JoinNewGameMessage.Builder, de.pokerth.protocol.ProtoBuf.JoinNewGameMessageOrBuilder> joinNewGameMessageBuilder_;
      /**
       * <code>optional .JoinNewGameMessage joinNewGameMessage = 23;</code>
       * @return Whether the joinNewGameMessage field is set.
       */
      public boolean hasJoinNewGameMessage() {
        return ((bitField0_ & 0x00400000) != 0);
      }
      /**
       * <code>optional .JoinNewGameMessage joinNewGameMessage = 23;</code>
       * @return The joinNewGameMessage.
       */
      public de.pokerth.protocol.ProtoBuf.JoinNewGameMessage getJoinNewGameMessage() {
        if (joinNewGameMessageBuilder_ == null) {
          return joinNewGameMessage_ == null ? de.pokerth.protocol.ProtoBuf.JoinNewGameMessage.getDefaultInstance() : joinNewGameMessage_;
        } else {
          return joinNewGameMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .JoinNewGameMessage joinNewGameMessage = 23;</code>
       */
      public Builder setJoinNewGameMessage(de.pokerth.protocol.ProtoBuf.JoinNewGameMessage value) {
        if (joinNewGameMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          joinNewGameMessage_ = value;
        } else {
          joinNewGameMessageBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00400000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .JoinNewGameMessage joinNewGameMessage = 23;</code>
       */
      public Builder setJoinNewGameMessage(
          de.pokerth.protocol.ProtoBuf.JoinNewGameMessage.Builder builderForValue) {
        if (joinNewGameMessageBuilder_ == null) {
          joinNewGameMessage_ = builderForValue.build();
        } else {
          joinNewGameMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00400000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .JoinNewGameMessage joinNewGameMessage = 23;</code>
       */
      public Builder mergeJoinNewGameMessage(de.pokerth.protocol.ProtoBuf.JoinNewGameMessage value) {
        if (joinNewGameMessageBuilder_ == null) {
          if (((bitField0_ & 0x00400000) != 0) &&
            joinNewGameMessage_ != null &&
            joinNewGameMessage_ != de.pokerth.protocol.ProtoBuf.JoinNewGameMessage.getDefaultInstance()) {
            getJoinNewGameMessageBuilder().mergeFrom(value);
          } else {
            joinNewGameMessage_ = value;
          }
        } else {
          joinNewGameMessageBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00400000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .JoinNewGameMessage joinNewGameMessage = 23;</code>
       */
      public Builder clearJoinNewGameMessage() {
        bitField0_ = (bitField0_ & ~0x00400000);
        joinNewGameMessage_ = null;
        if (joinNewGameMessageBuilder_ != null) {
          joinNewGameMessageBuilder_.dispose();
          joinNewGameMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .JoinNewGameMessage joinNewGameMessage = 23;</code>
       */
      public de.pokerth.protocol.ProtoBuf.JoinNewGameMessage.Builder getJoinNewGameMessageBuilder() {
        bitField0_ |= 0x00400000;
        onChanged();
        return getJoinNewGameMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .JoinNewGameMessage joinNewGameMessage = 23;</code>
       */
      public de.pokerth.protocol.ProtoBuf.JoinNewGameMessageOrBuilder getJoinNewGameMessageOrBuilder() {
        if (joinNewGameMessageBuilder_ != null) {
          return joinNewGameMessageBuilder_.getMessageOrBuilder();
        } else {
          return joinNewGameMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.JoinNewGameMessage.getDefaultInstance() : joinNewGameMessage_;
        }
      }
      /**
       * <code>optional .JoinNewGameMessage joinNewGameMessage = 23;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.JoinNewGameMessage, de.pokerth.protocol.ProtoBuf.JoinNewGameMessage.Builder, de.pokerth.protocol.ProtoBuf.JoinNewGameMessageOrBuilder> 
          getJoinNewGameMessageFieldBuilder() {
        if (joinNewGameMessageBuilder_ == null) {
          joinNewGameMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.JoinNewGameMessage, de.pokerth.protocol.ProtoBuf.JoinNewGameMessage.Builder, de.pokerth.protocol.ProtoBuf.JoinNewGameMessageOrBuilder>(
                  getJoinNewGameMessage(),
                  getParentForChildren(),
                  isClean());
          joinNewGameMessage_ = null;
        }
        return joinNewGameMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage rejoinExistingGameMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage, de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage.Builder, de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessageOrBuilder> rejoinExistingGameMessageBuilder_;
      /**
       * <code>optional .RejoinExistingGameMessage rejoinExistingGameMessage = 24;</code>
       * @return Whether the rejoinExistingGameMessage field is set.
       */
      public boolean hasRejoinExistingGameMessage() {
        return ((bitField0_ & 0x00800000) != 0);
      }
      /**
       * <code>optional .RejoinExistingGameMessage rejoinExistingGameMessage = 24;</code>
       * @return The rejoinExistingGameMessage.
       */
      public de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage getRejoinExistingGameMessage() {
        if (rejoinExistingGameMessageBuilder_ == null) {
          return rejoinExistingGameMessage_ == null ? de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage.getDefaultInstance() : rejoinExistingGameMessage_;
        } else {
          return rejoinExistingGameMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .RejoinExistingGameMessage rejoinExistingGameMessage = 24;</code>
       */
      public Builder setRejoinExistingGameMessage(de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage value) {
        if (rejoinExistingGameMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          rejoinExistingGameMessage_ = value;
        } else {
          rejoinExistingGameMessageBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00800000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .RejoinExistingGameMessage rejoinExistingGameMessage = 24;</code>
       */
      public Builder setRejoinExistingGameMessage(
          de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage.Builder builderForValue) {
        if (rejoinExistingGameMessageBuilder_ == null) {
          rejoinExistingGameMessage_ = builderForValue.build();
        } else {
          rejoinExistingGameMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00800000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .RejoinExistingGameMessage rejoinExistingGameMessage = 24;</code>
       */
      public Builder mergeRejoinExistingGameMessage(de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage value) {
        if (rejoinExistingGameMessageBuilder_ == null) {
          if (((bitField0_ & 0x00800000) != 0) &&
            rejoinExistingGameMessage_ != null &&
            rejoinExistingGameMessage_ != de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage.getDefaultInstance()) {
            getRejoinExistingGameMessageBuilder().mergeFrom(value);
          } else {
            rejoinExistingGameMessage_ = value;
          }
        } else {
          rejoinExistingGameMessageBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00800000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .RejoinExistingGameMessage rejoinExistingGameMessage = 24;</code>
       */
      public Builder clearRejoinExistingGameMessage() {
        bitField0_ = (bitField0_ & ~0x00800000);
        rejoinExistingGameMessage_ = null;
        if (rejoinExistingGameMessageBuilder_ != null) {
          rejoinExistingGameMessageBuilder_.dispose();
          rejoinExistingGameMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .RejoinExistingGameMessage rejoinExistingGameMessage = 24;</code>
       */
      public de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage.Builder getRejoinExistingGameMessageBuilder() {
        bitField0_ |= 0x00800000;
        onChanged();
        return getRejoinExistingGameMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .RejoinExistingGameMessage rejoinExistingGameMessage = 24;</code>
       */
      public de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessageOrBuilder getRejoinExistingGameMessageOrBuilder() {
        if (rejoinExistingGameMessageBuilder_ != null) {
          return rejoinExistingGameMessageBuilder_.getMessageOrBuilder();
        } else {
          return rejoinExistingGameMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage.getDefaultInstance() : rejoinExistingGameMessage_;
        }
      }
      /**
       * <code>optional .RejoinExistingGameMessage rejoinExistingGameMessage = 24;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage, de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage.Builder, de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessageOrBuilder> 
          getRejoinExistingGameMessageFieldBuilder() {
        if (rejoinExistingGameMessageBuilder_ == null) {
          rejoinExistingGameMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage, de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage.Builder, de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessageOrBuilder>(
                  getRejoinExistingGameMessage(),
                  getParentForChildren(),
                  isClean());
          rejoinExistingGameMessage_ = null;
        }
        return rejoinExistingGameMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.JoinGameAckMessage joinGameAckMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.JoinGameAckMessage, de.pokerth.protocol.ProtoBuf.JoinGameAckMessage.Builder, de.pokerth.protocol.ProtoBuf.JoinGameAckMessageOrBuilder> joinGameAckMessageBuilder_;
      /**
       * <code>optional .JoinGameAckMessage joinGameAckMessage = 25;</code>
       * @return Whether the joinGameAckMessage field is set.
       */
      public boolean hasJoinGameAckMessage() {
        return ((bitField0_ & 0x01000000) != 0);
      }
      /**
       * <code>optional .JoinGameAckMessage joinGameAckMessage = 25;</code>
       * @return The joinGameAckMessage.
       */
      public de.pokerth.protocol.ProtoBuf.JoinGameAckMessage getJoinGameAckMessage() {
        if (joinGameAckMessageBuilder_ == null) {
          return joinGameAckMessage_ == null ? de.pokerth.protocol.ProtoBuf.JoinGameAckMessage.getDefaultInstance() : joinGameAckMessage_;
        } else {
          return joinGameAckMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .JoinGameAckMessage joinGameAckMessage = 25;</code>
       */
      public Builder setJoinGameAckMessage(de.pokerth.protocol.ProtoBuf.JoinGameAckMessage value) {
        if (joinGameAckMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          joinGameAckMessage_ = value;
        } else {
          joinGameAckMessageBuilder_.setMessage(value);
        }
        bitField0_ |= 0x01000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .JoinGameAckMessage joinGameAckMessage = 25;</code>
       */
      public Builder setJoinGameAckMessage(
          de.pokerth.protocol.ProtoBuf.JoinGameAckMessage.Builder builderForValue) {
        if (joinGameAckMessageBuilder_ == null) {
          joinGameAckMessage_ = builderForValue.build();
        } else {
          joinGameAckMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x01000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .JoinGameAckMessage joinGameAckMessage = 25;</code>
       */
      public Builder mergeJoinGameAckMessage(de.pokerth.protocol.ProtoBuf.JoinGameAckMessage value) {
        if (joinGameAckMessageBuilder_ == null) {
          if (((bitField0_ & 0x01000000) != 0) &&
            joinGameAckMessage_ != null &&
            joinGameAckMessage_ != de.pokerth.protocol.ProtoBuf.JoinGameAckMessage.getDefaultInstance()) {
            getJoinGameAckMessageBuilder().mergeFrom(value);
          } else {
            joinGameAckMessage_ = value;
          }
        } else {
          joinGameAckMessageBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x01000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .JoinGameAckMessage joinGameAckMessage = 25;</code>
       */
      public Builder clearJoinGameAckMessage() {
        bitField0_ = (bitField0_ & ~0x01000000);
        joinGameAckMessage_ = null;
        if (joinGameAckMessageBuilder_ != null) {
          joinGameAckMessageBuilder_.dispose();
          joinGameAckMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .JoinGameAckMessage joinGameAckMessage = 25;</code>
       */
      public de.pokerth.protocol.ProtoBuf.JoinGameAckMessage.Builder getJoinGameAckMessageBuilder() {
        bitField0_ |= 0x01000000;
        onChanged();
        return getJoinGameAckMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .JoinGameAckMessage joinGameAckMessage = 25;</code>
       */
      public de.pokerth.protocol.ProtoBuf.JoinGameAckMessageOrBuilder getJoinGameAckMessageOrBuilder() {
        if (joinGameAckMessageBuilder_ != null) {
          return joinGameAckMessageBuilder_.getMessageOrBuilder();
        } else {
          return joinGameAckMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.JoinGameAckMessage.getDefaultInstance() : joinGameAckMessage_;
        }
      }
      /**
       * <code>optional .JoinGameAckMessage joinGameAckMessage = 25;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.JoinGameAckMessage, de.pokerth.protocol.ProtoBuf.JoinGameAckMessage.Builder, de.pokerth.protocol.ProtoBuf.JoinGameAckMessageOrBuilder> 
          getJoinGameAckMessageFieldBuilder() {
        if (joinGameAckMessageBuilder_ == null) {
          joinGameAckMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.JoinGameAckMessage, de.pokerth.protocol.ProtoBuf.JoinGameAckMessage.Builder, de.pokerth.protocol.ProtoBuf.JoinGameAckMessageOrBuilder>(
                  getJoinGameAckMessage(),
                  getParentForChildren(),
                  isClean());
          joinGameAckMessage_ = null;
        }
        return joinGameAckMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage joinGameFailedMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage, de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.Builder, de.pokerth.protocol.ProtoBuf.JoinGameFailedMessageOrBuilder> joinGameFailedMessageBuilder_;
      /**
       * <code>optional .JoinGameFailedMessage joinGameFailedMessage = 26;</code>
       * @return Whether the joinGameFailedMessage field is set.
       */
      public boolean hasJoinGameFailedMessage() {
        return ((bitField0_ & 0x02000000) != 0);
      }
      /**
       * <code>optional .JoinGameFailedMessage joinGameFailedMessage = 26;</code>
       * @return The joinGameFailedMessage.
       */
      public de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage getJoinGameFailedMessage() {
        if (joinGameFailedMessageBuilder_ == null) {
          return joinGameFailedMessage_ == null ? de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.getDefaultInstance() : joinGameFailedMessage_;
        } else {
          return joinGameFailedMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .JoinGameFailedMessage joinGameFailedMessage = 26;</code>
       */
      public Builder setJoinGameFailedMessage(de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage value) {
        if (joinGameFailedMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          joinGameFailedMessage_ = value;
        } else {
          joinGameFailedMessageBuilder_.setMessage(value);
        }
        bitField0_ |= 0x02000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .JoinGameFailedMessage joinGameFailedMessage = 26;</code>
       */
      public Builder setJoinGameFailedMessage(
          de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.Builder builderForValue) {
        if (joinGameFailedMessageBuilder_ == null) {
          joinGameFailedMessage_ = builderForValue.build();
        } else {
          joinGameFailedMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x02000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .JoinGameFailedMessage joinGameFailedMessage = 26;</code>
       */
      public Builder mergeJoinGameFailedMessage(de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage value) {
        if (joinGameFailedMessageBuilder_ == null) {
          if (((bitField0_ & 0x02000000) != 0) &&
            joinGameFailedMessage_ != null &&
            joinGameFailedMessage_ != de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.getDefaultInstance()) {
            getJoinGameFailedMessageBuilder().mergeFrom(value);
          } else {
            joinGameFailedMessage_ = value;
          }
        } else {
          joinGameFailedMessageBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x02000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .JoinGameFailedMessage joinGameFailedMessage = 26;</code>
       */
      public Builder clearJoinGameFailedMessage() {
        bitField0_ = (bitField0_ & ~0x02000000);
        joinGameFailedMessage_ = null;
        if (joinGameFailedMessageBuilder_ != null) {
          joinGameFailedMessageBuilder_.dispose();
          joinGameFailedMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .JoinGameFailedMessage joinGameFailedMessage = 26;</code>
       */
      public de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.Builder getJoinGameFailedMessageBuilder() {
        bitField0_ |= 0x02000000;
        onChanged();
        return getJoinGameFailedMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .JoinGameFailedMessage joinGameFailedMessage = 26;</code>
       */
      public de.pokerth.protocol.ProtoBuf.JoinGameFailedMessageOrBuilder getJoinGameFailedMessageOrBuilder() {
        if (joinGameFailedMessageBuilder_ != null) {
          return joinGameFailedMessageBuilder_.getMessageOrBuilder();
        } else {
          return joinGameFailedMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.getDefaultInstance() : joinGameFailedMessage_;
        }
      }
      /**
       * <code>optional .JoinGameFailedMessage joinGameFailedMessage = 26;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage, de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.Builder, de.pokerth.protocol.ProtoBuf.JoinGameFailedMessageOrBuilder> 
          getJoinGameFailedMessageFieldBuilder() {
        if (joinGameFailedMessageBuilder_ == null) {
          joinGameFailedMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage, de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.Builder, de.pokerth.protocol.ProtoBuf.JoinGameFailedMessageOrBuilder>(
                  getJoinGameFailedMessage(),
                  getParentForChildren(),
                  isClean());
          joinGameFailedMessage_ = null;
        }
        return joinGameFailedMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage gamePlayerJoinedMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage, de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage.Builder, de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessageOrBuilder> gamePlayerJoinedMessageBuilder_;
      /**
       * <code>optional .GamePlayerJoinedMessage gamePlayerJoinedMessage = 27;</code>
       * @return Whether the gamePlayerJoinedMessage field is set.
       */
      public boolean hasGamePlayerJoinedMessage() {
        return ((bitField0_ & 0x04000000) != 0);
      }
      /**
       * <code>optional .GamePlayerJoinedMessage gamePlayerJoinedMessage = 27;</code>
       * @return The gamePlayerJoinedMessage.
       */
      public de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage getGamePlayerJoinedMessage() {
        if (gamePlayerJoinedMessageBuilder_ == null) {
          return gamePlayerJoinedMessage_ == null ? de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage.getDefaultInstance() : gamePlayerJoinedMessage_;
        } else {
          return gamePlayerJoinedMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .GamePlayerJoinedMessage gamePlayerJoinedMessage = 27;</code>
       */
      public Builder setGamePlayerJoinedMessage(de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage value) {
        if (gamePlayerJoinedMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          gamePlayerJoinedMessage_ = value;
        } else {
          gamePlayerJoinedMessageBuilder_.setMessage(value);
        }
        bitField0_ |= 0x04000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .GamePlayerJoinedMessage gamePlayerJoinedMessage = 27;</code>
       */
      public Builder setGamePlayerJoinedMessage(
          de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage.Builder builderForValue) {
        if (gamePlayerJoinedMessageBuilder_ == null) {
          gamePlayerJoinedMessage_ = builderForValue.build();
        } else {
          gamePlayerJoinedMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x04000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .GamePlayerJoinedMessage gamePlayerJoinedMessage = 27;</code>
       */
      public Builder mergeGamePlayerJoinedMessage(de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage value) {
        if (gamePlayerJoinedMessageBuilder_ == null) {
          if (((bitField0_ & 0x04000000) != 0) &&
            gamePlayerJoinedMessage_ != null &&
            gamePlayerJoinedMessage_ != de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage.getDefaultInstance()) {
            getGamePlayerJoinedMessageBuilder().mergeFrom(value);
          } else {
            gamePlayerJoinedMessage_ = value;
          }
        } else {
          gamePlayerJoinedMessageBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x04000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .GamePlayerJoinedMessage gamePlayerJoinedMessage = 27;</code>
       */
      public Builder clearGamePlayerJoinedMessage() {
        bitField0_ = (bitField0_ & ~0x04000000);
        gamePlayerJoinedMessage_ = null;
        if (gamePlayerJoinedMessageBuilder_ != null) {
          gamePlayerJoinedMessageBuilder_.dispose();
          gamePlayerJoinedMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .GamePlayerJoinedMessage gamePlayerJoinedMessage = 27;</code>
       */
      public de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage.Builder getGamePlayerJoinedMessageBuilder() {
        bitField0_ |= 0x04000000;
        onChanged();
        return getGamePlayerJoinedMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .GamePlayerJoinedMessage gamePlayerJoinedMessage = 27;</code>
       */
      public de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessageOrBuilder getGamePlayerJoinedMessageOrBuilder() {
        if (gamePlayerJoinedMessageBuilder_ != null) {
          return gamePlayerJoinedMessageBuilder_.getMessageOrBuilder();
        } else {
          return gamePlayerJoinedMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage.getDefaultInstance() : gamePlayerJoinedMessage_;
        }
      }
      /**
       * <code>optional .GamePlayerJoinedMessage gamePlayerJoinedMessage = 27;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage, de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage.Builder, de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessageOrBuilder> 
          getGamePlayerJoinedMessageFieldBuilder() {
        if (gamePlayerJoinedMessageBuilder_ == null) {
          gamePlayerJoinedMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage, de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage.Builder, de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessageOrBuilder>(
                  getGamePlayerJoinedMessage(),
                  getParentForChildren(),
                  isClean());
          gamePlayerJoinedMessage_ = null;
        }
        return gamePlayerJoinedMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage gamePlayerLeftMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage, de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.Builder, de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessageOrBuilder> gamePlayerLeftMessageBuilder_;
      /**
       * <code>optional .GamePlayerLeftMessage gamePlayerLeftMessage = 28;</code>
       * @return Whether the gamePlayerLeftMessage field is set.
       */
      public boolean hasGamePlayerLeftMessage() {
        return ((bitField0_ & 0x08000000) != 0);
      }
      /**
       * <code>optional .GamePlayerLeftMessage gamePlayerLeftMessage = 28;</code>
       * @return The gamePlayerLeftMessage.
       */
      public de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage getGamePlayerLeftMessage() {
        if (gamePlayerLeftMessageBuilder_ == null) {
          return gamePlayerLeftMessage_ == null ? de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.getDefaultInstance() : gamePlayerLeftMessage_;
        } else {
          return gamePlayerLeftMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .GamePlayerLeftMessage gamePlayerLeftMessage = 28;</code>
       */
      public Builder setGamePlayerLeftMessage(de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage value) {
        if (gamePlayerLeftMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          gamePlayerLeftMessage_ = value;
        } else {
          gamePlayerLeftMessageBuilder_.setMessage(value);
        }
        bitField0_ |= 0x08000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .GamePlayerLeftMessage gamePlayerLeftMessage = 28;</code>
       */
      public Builder setGamePlayerLeftMessage(
          de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.Builder builderForValue) {
        if (gamePlayerLeftMessageBuilder_ == null) {
          gamePlayerLeftMessage_ = builderForValue.build();
        } else {
          gamePlayerLeftMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x08000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .GamePlayerLeftMessage gamePlayerLeftMessage = 28;</code>
       */
      public Builder mergeGamePlayerLeftMessage(de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage value) {
        if (gamePlayerLeftMessageBuilder_ == null) {
          if (((bitField0_ & 0x08000000) != 0) &&
            gamePlayerLeftMessage_ != null &&
            gamePlayerLeftMessage_ != de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.getDefaultInstance()) {
            getGamePlayerLeftMessageBuilder().mergeFrom(value);
          } else {
            gamePlayerLeftMessage_ = value;
          }
        } else {
          gamePlayerLeftMessageBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x08000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .GamePlayerLeftMessage gamePlayerLeftMessage = 28;</code>
       */
      public Builder clearGamePlayerLeftMessage() {
        bitField0_ = (bitField0_ & ~0x08000000);
        gamePlayerLeftMessage_ = null;
        if (gamePlayerLeftMessageBuilder_ != null) {
          gamePlayerLeftMessageBuilder_.dispose();
          gamePlayerLeftMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .GamePlayerLeftMessage gamePlayerLeftMessage = 28;</code>
       */
      public de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.Builder getGamePlayerLeftMessageBuilder() {
        bitField0_ |= 0x08000000;
        onChanged();
        return getGamePlayerLeftMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .GamePlayerLeftMessage gamePlayerLeftMessage = 28;</code>
       */
      public de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessageOrBuilder getGamePlayerLeftMessageOrBuilder() {
        if (gamePlayerLeftMessageBuilder_ != null) {
          return gamePlayerLeftMessageBuilder_.getMessageOrBuilder();
        } else {
          return gamePlayerLeftMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.getDefaultInstance() : gamePlayerLeftMessage_;
        }
      }
      /**
       * <code>optional .GamePlayerLeftMessage gamePlayerLeftMessage = 28;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage, de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.Builder, de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessageOrBuilder> 
          getGamePlayerLeftMessageFieldBuilder() {
        if (gamePlayerLeftMessageBuilder_ == null) {
          gamePlayerLeftMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage, de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.Builder, de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessageOrBuilder>(
                  getGamePlayerLeftMessage(),
                  getParentForChildren(),
                  isClean());
          gamePlayerLeftMessage_ = null;
        }
        return gamePlayerLeftMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage gameAdminChangedMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage, de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage.Builder, de.pokerth.protocol.ProtoBuf.GameAdminChangedMessageOrBuilder> gameAdminChangedMessageBuilder_;
      /**
       * <code>optional .GameAdminChangedMessage gameAdminChangedMessage = 29;</code>
       * @return Whether the gameAdminChangedMessage field is set.
       */
      public boolean hasGameAdminChangedMessage() {
        return ((bitField0_ & 0x10000000) != 0);
      }
      /**
       * <code>optional .GameAdminChangedMessage gameAdminChangedMessage = 29;</code>
       * @return The gameAdminChangedMessage.
       */
      public de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage getGameAdminChangedMessage() {
        if (gameAdminChangedMessageBuilder_ == null) {
          return gameAdminChangedMessage_ == null ? de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage.getDefaultInstance() : gameAdminChangedMessage_;
        } else {
          return gameAdminChangedMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .GameAdminChangedMessage gameAdminChangedMessage = 29;</code>
       */
      public Builder setGameAdminChangedMessage(de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage value) {
        if (gameAdminChangedMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          gameAdminChangedMessage_ = value;
        } else {
          gameAdminChangedMessageBuilder_.setMessage(value);
        }
        bitField0_ |= 0x10000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .GameAdminChangedMessage gameAdminChangedMessage = 29;</code>
       */
      public Builder setGameAdminChangedMessage(
          de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage.Builder builderForValue) {
        if (gameAdminChangedMessageBuilder_ == null) {
          gameAdminChangedMessage_ = builderForValue.build();
        } else {
          gameAdminChangedMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x10000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .GameAdminChangedMessage gameAdminChangedMessage = 29;</code>
       */
      public Builder mergeGameAdminChangedMessage(de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage value) {
        if (gameAdminChangedMessageBuilder_ == null) {
          if (((bitField0_ & 0x10000000) != 0) &&
            gameAdminChangedMessage_ != null &&
            gameAdminChangedMessage_ != de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage.getDefaultInstance()) {
            getGameAdminChangedMessageBuilder().mergeFrom(value);
          } else {
            gameAdminChangedMessage_ = value;
          }
        } else {
          gameAdminChangedMessageBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x10000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .GameAdminChangedMessage gameAdminChangedMessage = 29;</code>
       */
      public Builder clearGameAdminChangedMessage() {
        bitField0_ = (bitField0_ & ~0x10000000);
        gameAdminChangedMessage_ = null;
        if (gameAdminChangedMessageBuilder_ != null) {
          gameAdminChangedMessageBuilder_.dispose();
          gameAdminChangedMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .GameAdminChangedMessage gameAdminChangedMessage = 29;</code>
       */
      public de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage.Builder getGameAdminChangedMessageBuilder() {
        bitField0_ |= 0x10000000;
        onChanged();
        return getGameAdminChangedMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .GameAdminChangedMessage gameAdminChangedMessage = 29;</code>
       */
      public de.pokerth.protocol.ProtoBuf.GameAdminChangedMessageOrBuilder getGameAdminChangedMessageOrBuilder() {
        if (gameAdminChangedMessageBuilder_ != null) {
          return gameAdminChangedMessageBuilder_.getMessageOrBuilder();
        } else {
          return gameAdminChangedMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage.getDefaultInstance() : gameAdminChangedMessage_;
        }
      }
      /**
       * <code>optional .GameAdminChangedMessage gameAdminChangedMessage = 29;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage, de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage.Builder, de.pokerth.protocol.ProtoBuf.GameAdminChangedMessageOrBuilder> 
          getGameAdminChangedMessageFieldBuilder() {
        if (gameAdminChangedMessageBuilder_ == null) {
          gameAdminChangedMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage, de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage.Builder, de.pokerth.protocol.ProtoBuf.GameAdminChangedMessageOrBuilder>(
                  getGameAdminChangedMessage(),
                  getParentForChildren(),
                  isClean());
          gameAdminChangedMessage_ = null;
        }
        return gameAdminChangedMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage removedFromGameMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage, de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.Builder, de.pokerth.protocol.ProtoBuf.RemovedFromGameMessageOrBuilder> removedFromGameMessageBuilder_;
      /**
       * <code>optional .RemovedFromGameMessage removedFromGameMessage = 30;</code>
       * @return Whether the removedFromGameMessage field is set.
       */
      public boolean hasRemovedFromGameMessage() {
        return ((bitField0_ & 0x20000000) != 0);
      }
      /**
       * <code>optional .RemovedFromGameMessage removedFromGameMessage = 30;</code>
       * @return The removedFromGameMessage.
       */
      public de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage getRemovedFromGameMessage() {
        if (removedFromGameMessageBuilder_ == null) {
          return removedFromGameMessage_ == null ? de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.getDefaultInstance() : removedFromGameMessage_;
        } else {
          return removedFromGameMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .RemovedFromGameMessage removedFromGameMessage = 30;</code>
       */
      public Builder setRemovedFromGameMessage(de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage value) {
        if (removedFromGameMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          removedFromGameMessage_ = value;
        } else {
          removedFromGameMessageBuilder_.setMessage(value);
        }
        bitField0_ |= 0x20000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .RemovedFromGameMessage removedFromGameMessage = 30;</code>
       */
      public Builder setRemovedFromGameMessage(
          de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.Builder builderForValue) {
        if (removedFromGameMessageBuilder_ == null) {
          removedFromGameMessage_ = builderForValue.build();
        } else {
          removedFromGameMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x20000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .RemovedFromGameMessage removedFromGameMessage = 30;</code>
       */
      public Builder mergeRemovedFromGameMessage(de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage value) {
        if (removedFromGameMessageBuilder_ == null) {
          if (((bitField0_ & 0x20000000) != 0) &&
            removedFromGameMessage_ != null &&
            removedFromGameMessage_ != de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.getDefaultInstance()) {
            getRemovedFromGameMessageBuilder().mergeFrom(value);
          } else {
            removedFromGameMessage_ = value;
          }
        } else {
          removedFromGameMessageBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x20000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .RemovedFromGameMessage removedFromGameMessage = 30;</code>
       */
      public Builder clearRemovedFromGameMessage() {
        bitField0_ = (bitField0_ & ~0x20000000);
        removedFromGameMessage_ = null;
        if (removedFromGameMessageBuilder_ != null) {
          removedFromGameMessageBuilder_.dispose();
          removedFromGameMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .RemovedFromGameMessage removedFromGameMessage = 30;</code>
       */
      public de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.Builder getRemovedFromGameMessageBuilder() {
        bitField0_ |= 0x20000000;
        onChanged();
        return getRemovedFromGameMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .RemovedFromGameMessage removedFromGameMessage = 30;</code>
       */
      public de.pokerth.protocol.ProtoBuf.RemovedFromGameMessageOrBuilder getRemovedFromGameMessageOrBuilder() {
        if (removedFromGameMessageBuilder_ != null) {
          return removedFromGameMessageBuilder_.getMessageOrBuilder();
        } else {
          return removedFromGameMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.getDefaultInstance() : removedFromGameMessage_;
        }
      }
      /**
       * <code>optional .RemovedFromGameMessage removedFromGameMessage = 30;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage, de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.Builder, de.pokerth.protocol.ProtoBuf.RemovedFromGameMessageOrBuilder> 
          getRemovedFromGameMessageFieldBuilder() {
        if (removedFromGameMessageBuilder_ == null) {
          removedFromGameMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage, de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.Builder, de.pokerth.protocol.ProtoBuf.RemovedFromGameMessageOrBuilder>(
                  getRemovedFromGameMessage(),
                  getParentForChildren(),
                  isClean());
          removedFromGameMessage_ = null;
        }
        return removedFromGameMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage kickPlayerRequestMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage, de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage.Builder, de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessageOrBuilder> kickPlayerRequestMessageBuilder_;
      /**
       * <code>optional .KickPlayerRequestMessage kickPlayerRequestMessage = 31;</code>
       * @return Whether the kickPlayerRequestMessage field is set.
       */
      public boolean hasKickPlayerRequestMessage() {
        return ((bitField0_ & 0x40000000) != 0);
      }
      /**
       * <code>optional .KickPlayerRequestMessage kickPlayerRequestMessage = 31;</code>
       * @return The kickPlayerRequestMessage.
       */
      public de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage getKickPlayerRequestMessage() {
        if (kickPlayerRequestMessageBuilder_ == null) {
          return kickPlayerRequestMessage_ == null ? de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage.getDefaultInstance() : kickPlayerRequestMessage_;
        } else {
          return kickPlayerRequestMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .KickPlayerRequestMessage kickPlayerRequestMessage = 31;</code>
       */
      public Builder setKickPlayerRequestMessage(de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage value) {
        if (kickPlayerRequestMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          kickPlayerRequestMessage_ = value;
        } else {
          kickPlayerRequestMessageBuilder_.setMessage(value);
        }
        bitField0_ |= 0x40000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .KickPlayerRequestMessage kickPlayerRequestMessage = 31;</code>
       */
      public Builder setKickPlayerRequestMessage(
          de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage.Builder builderForValue) {
        if (kickPlayerRequestMessageBuilder_ == null) {
          kickPlayerRequestMessage_ = builderForValue.build();
        } else {
          kickPlayerRequestMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x40000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .KickPlayerRequestMessage kickPlayerRequestMessage = 31;</code>
       */
      public Builder mergeKickPlayerRequestMessage(de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage value) {
        if (kickPlayerRequestMessageBuilder_ == null) {
          if (((bitField0_ & 0x40000000) != 0) &&
            kickPlayerRequestMessage_ != null &&
            kickPlayerRequestMessage_ != de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage.getDefaultInstance()) {
            getKickPlayerRequestMessageBuilder().mergeFrom(value);
          } else {
            kickPlayerRequestMessage_ = value;
          }
        } else {
          kickPlayerRequestMessageBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x40000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .KickPlayerRequestMessage kickPlayerRequestMessage = 31;</code>
       */
      public Builder clearKickPlayerRequestMessage() {
        bitField0_ = (bitField0_ & ~0x40000000);
        kickPlayerRequestMessage_ = null;
        if (kickPlayerRequestMessageBuilder_ != null) {
          kickPlayerRequestMessageBuilder_.dispose();
          kickPlayerRequestMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .KickPlayerRequestMessage kickPlayerRequestMessage = 31;</code>
       */
      public de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage.Builder getKickPlayerRequestMessageBuilder() {
        bitField0_ |= 0x40000000;
        onChanged();
        return getKickPlayerRequestMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .KickPlayerRequestMessage kickPlayerRequestMessage = 31;</code>
       */
      public de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessageOrBuilder getKickPlayerRequestMessageOrBuilder() {
        if (kickPlayerRequestMessageBuilder_ != null) {
          return kickPlayerRequestMessageBuilder_.getMessageOrBuilder();
        } else {
          return kickPlayerRequestMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage.getDefaultInstance() : kickPlayerRequestMessage_;
        }
      }
      /**
       * <code>optional .KickPlayerRequestMessage kickPlayerRequestMessage = 31;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage, de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage.Builder, de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessageOrBuilder> 
          getKickPlayerRequestMessageFieldBuilder() {
        if (kickPlayerRequestMessageBuilder_ == null) {
          kickPlayerRequestMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage, de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage.Builder, de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessageOrBuilder>(
                  getKickPlayerRequestMessage(),
                  getParentForChildren(),
                  isClean());
          kickPlayerRequestMessage_ = null;
        }
        return kickPlayerRequestMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage leaveGameRequestMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage, de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage.Builder, de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessageOrBuilder> leaveGameRequestMessageBuilder_;
      /**
       * <code>optional .LeaveGameRequestMessage leaveGameRequestMessage = 32;</code>
       * @return Whether the leaveGameRequestMessage field is set.
       */
      public boolean hasLeaveGameRequestMessage() {
        return ((bitField0_ & 0x80000000) != 0);
      }
      /**
       * <code>optional .LeaveGameRequestMessage leaveGameRequestMessage = 32;</code>
       * @return The leaveGameRequestMessage.
       */
      public de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage getLeaveGameRequestMessage() {
        if (leaveGameRequestMessageBuilder_ == null) {
          return leaveGameRequestMessage_ == null ? de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage.getDefaultInstance() : leaveGameRequestMessage_;
        } else {
          return leaveGameRequestMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .LeaveGameRequestMessage leaveGameRequestMessage = 32;</code>
       */
      public Builder setLeaveGameRequestMessage(de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage value) {
        if (leaveGameRequestMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          leaveGameRequestMessage_ = value;
        } else {
          leaveGameRequestMessageBuilder_.setMessage(value);
        }
        bitField0_ |= 0x80000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .LeaveGameRequestMessage leaveGameRequestMessage = 32;</code>
       */
      public Builder setLeaveGameRequestMessage(
          de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage.Builder builderForValue) {
        if (leaveGameRequestMessageBuilder_ == null) {
          leaveGameRequestMessage_ = builderForValue.build();
        } else {
          leaveGameRequestMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x80000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .LeaveGameRequestMessage leaveGameRequestMessage = 32;</code>
       */
      public Builder mergeLeaveGameRequestMessage(de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage value) {
        if (leaveGameRequestMessageBuilder_ == null) {
          if (((bitField0_ & 0x80000000) != 0) &&
            leaveGameRequestMessage_ != null &&
            leaveGameRequestMessage_ != de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage.getDefaultInstance()) {
            getLeaveGameRequestMessageBuilder().mergeFrom(value);
          } else {
            leaveGameRequestMessage_ = value;
          }
        } else {
          leaveGameRequestMessageBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x80000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .LeaveGameRequestMessage leaveGameRequestMessage = 32;</code>
       */
      public Builder clearLeaveGameRequestMessage() {
        bitField0_ = (bitField0_ & ~0x80000000);
        leaveGameRequestMessage_ = null;
        if (leaveGameRequestMessageBuilder_ != null) {
          leaveGameRequestMessageBuilder_.dispose();
          leaveGameRequestMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .LeaveGameRequestMessage leaveGameRequestMessage = 32;</code>
       */
      public de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage.Builder getLeaveGameRequestMessageBuilder() {
        bitField0_ |= 0x80000000;
        onChanged();
        return getLeaveGameRequestMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .LeaveGameRequestMessage leaveGameRequestMessage = 32;</code>
       */
      public de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessageOrBuilder getLeaveGameRequestMessageOrBuilder() {
        if (leaveGameRequestMessageBuilder_ != null) {
          return leaveGameRequestMessageBuilder_.getMessageOrBuilder();
        } else {
          return leaveGameRequestMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage.getDefaultInstance() : leaveGameRequestMessage_;
        }
      }
      /**
       * <code>optional .LeaveGameRequestMessage leaveGameRequestMessage = 32;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage, de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage.Builder, de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessageOrBuilder> 
          getLeaveGameRequestMessageFieldBuilder() {
        if (leaveGameRequestMessageBuilder_ == null) {
          leaveGameRequestMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage, de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage.Builder, de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessageOrBuilder>(
                  getLeaveGameRequestMessage(),
                  getParentForChildren(),
                  isClean());
          leaveGameRequestMessage_ = null;
        }
        return leaveGameRequestMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage invitePlayerToGameMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage, de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage.Builder, de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessageOrBuilder> invitePlayerToGameMessageBuilder_;
      /**
       * <code>optional .InvitePlayerToGameMessage invitePlayerToGameMessage = 33;</code>
       * @return Whether the invitePlayerToGameMessage field is set.
       */
      public boolean hasInvitePlayerToGameMessage() {
        return ((bitField1_ & 0x00000001) != 0);
      }
      /**
       * <code>optional .InvitePlayerToGameMessage invitePlayerToGameMessage = 33;</code>
       * @return The invitePlayerToGameMessage.
       */
      public de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage getInvitePlayerToGameMessage() {
        if (invitePlayerToGameMessageBuilder_ == null) {
          return invitePlayerToGameMessage_ == null ? de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage.getDefaultInstance() : invitePlayerToGameMessage_;
        } else {
          return invitePlayerToGameMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .InvitePlayerToGameMessage invitePlayerToGameMessage = 33;</code>
       */
      public Builder setInvitePlayerToGameMessage(de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage value) {
        if (invitePlayerToGameMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          invitePlayerToGameMessage_ = value;
        } else {
          invitePlayerToGameMessageBuilder_.setMessage(value);
        }
        bitField1_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>optional .InvitePlayerToGameMessage invitePlayerToGameMessage = 33;</code>
       */
      public Builder setInvitePlayerToGameMessage(
          de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage.Builder builderForValue) {
        if (invitePlayerToGameMessageBuilder_ == null) {
          invitePlayerToGameMessage_ = builderForValue.build();
        } else {
          invitePlayerToGameMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField1_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>optional .InvitePlayerToGameMessage invitePlayerToGameMessage = 33;</code>
       */
      public Builder mergeInvitePlayerToGameMessage(de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage value) {
        if (invitePlayerToGameMessageBuilder_ == null) {
          if (((bitField1_ & 0x00000001) != 0) &&
            invitePlayerToGameMessage_ != null &&
            invitePlayerToGameMessage_ != de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage.getDefaultInstance()) {
            getInvitePlayerToGameMessageBuilder().mergeFrom(value);
          } else {
            invitePlayerToGameMessage_ = value;
          }
        } else {
          invitePlayerToGameMessageBuilder_.mergeFrom(value);
        }
        bitField1_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>optional .InvitePlayerToGameMessage invitePlayerToGameMessage = 33;</code>
       */
      public Builder clearInvitePlayerToGameMessage() {
        bitField1_ = (bitField1_ & ~0x00000001);
        invitePlayerToGameMessage_ = null;
        if (invitePlayerToGameMessageBuilder_ != null) {
          invitePlayerToGameMessageBuilder_.dispose();
          invitePlayerToGameMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .InvitePlayerToGameMessage invitePlayerToGameMessage = 33;</code>
       */
      public de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage.Builder getInvitePlayerToGameMessageBuilder() {
        bitField1_ |= 0x00000001;
        onChanged();
        return getInvitePlayerToGameMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .InvitePlayerToGameMessage invitePlayerToGameMessage = 33;</code>
       */
      public de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessageOrBuilder getInvitePlayerToGameMessageOrBuilder() {
        if (invitePlayerToGameMessageBuilder_ != null) {
          return invitePlayerToGameMessageBuilder_.getMessageOrBuilder();
        } else {
          return invitePlayerToGameMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage.getDefaultInstance() : invitePlayerToGameMessage_;
        }
      }
      /**
       * <code>optional .InvitePlayerToGameMessage invitePlayerToGameMessage = 33;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage, de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage.Builder, de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessageOrBuilder> 
          getInvitePlayerToGameMessageFieldBuilder() {
        if (invitePlayerToGameMessageBuilder_ == null) {
          invitePlayerToGameMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage, de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage.Builder, de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessageOrBuilder>(
                  getInvitePlayerToGameMessage(),
                  getParentForChildren(),
                  isClean());
          invitePlayerToGameMessage_ = null;
        }
        return invitePlayerToGameMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.InviteNotifyMessage inviteNotifyMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.InviteNotifyMessage, de.pokerth.protocol.ProtoBuf.InviteNotifyMessage.Builder, de.pokerth.protocol.ProtoBuf.InviteNotifyMessageOrBuilder> inviteNotifyMessageBuilder_;
      /**
       * <code>optional .InviteNotifyMessage inviteNotifyMessage = 34;</code>
       * @return Whether the inviteNotifyMessage field is set.
       */
      public boolean hasInviteNotifyMessage() {
        return ((bitField1_ & 0x00000002) != 0);
      }
      /**
       * <code>optional .InviteNotifyMessage inviteNotifyMessage = 34;</code>
       * @return The inviteNotifyMessage.
       */
      public de.pokerth.protocol.ProtoBuf.InviteNotifyMessage getInviteNotifyMessage() {
        if (inviteNotifyMessageBuilder_ == null) {
          return inviteNotifyMessage_ == null ? de.pokerth.protocol.ProtoBuf.InviteNotifyMessage.getDefaultInstance() : inviteNotifyMessage_;
        } else {
          return inviteNotifyMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .InviteNotifyMessage inviteNotifyMessage = 34;</code>
       */
      public Builder setInviteNotifyMessage(de.pokerth.protocol.ProtoBuf.InviteNotifyMessage value) {
        if (inviteNotifyMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          inviteNotifyMessage_ = value;
        } else {
          inviteNotifyMessageBuilder_.setMessage(value);
        }
        bitField1_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>optional .InviteNotifyMessage inviteNotifyMessage = 34;</code>
       */
      public Builder setInviteNotifyMessage(
          de.pokerth.protocol.ProtoBuf.InviteNotifyMessage.Builder builderForValue) {
        if (inviteNotifyMessageBuilder_ == null) {
          inviteNotifyMessage_ = builderForValue.build();
        } else {
          inviteNotifyMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField1_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>optional .InviteNotifyMessage inviteNotifyMessage = 34;</code>
       */
      public Builder mergeInviteNotifyMessage(de.pokerth.protocol.ProtoBuf.InviteNotifyMessage value) {
        if (inviteNotifyMessageBuilder_ == null) {
          if (((bitField1_ & 0x00000002) != 0) &&
            inviteNotifyMessage_ != null &&
            inviteNotifyMessage_ != de.pokerth.protocol.ProtoBuf.InviteNotifyMessage.getDefaultInstance()) {
            getInviteNotifyMessageBuilder().mergeFrom(value);
          } else {
            inviteNotifyMessage_ = value;
          }
        } else {
          inviteNotifyMessageBuilder_.mergeFrom(value);
        }
        bitField1_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>optional .InviteNotifyMessage inviteNotifyMessage = 34;</code>
       */
      public Builder clearInviteNotifyMessage() {
        bitField1_ = (bitField1_ & ~0x00000002);
        inviteNotifyMessage_ = null;
        if (inviteNotifyMessageBuilder_ != null) {
          inviteNotifyMessageBuilder_.dispose();
          inviteNotifyMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .InviteNotifyMessage inviteNotifyMessage = 34;</code>
       */
      public de.pokerth.protocol.ProtoBuf.InviteNotifyMessage.Builder getInviteNotifyMessageBuilder() {
        bitField1_ |= 0x00000002;
        onChanged();
        return getInviteNotifyMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .InviteNotifyMessage inviteNotifyMessage = 34;</code>
       */
      public de.pokerth.protocol.ProtoBuf.InviteNotifyMessageOrBuilder getInviteNotifyMessageOrBuilder() {
        if (inviteNotifyMessageBuilder_ != null) {
          return inviteNotifyMessageBuilder_.getMessageOrBuilder();
        } else {
          return inviteNotifyMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.InviteNotifyMessage.getDefaultInstance() : inviteNotifyMessage_;
        }
      }
      /**
       * <code>optional .InviteNotifyMessage inviteNotifyMessage = 34;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.InviteNotifyMessage, de.pokerth.protocol.ProtoBuf.InviteNotifyMessage.Builder, de.pokerth.protocol.ProtoBuf.InviteNotifyMessageOrBuilder> 
          getInviteNotifyMessageFieldBuilder() {
        if (inviteNotifyMessageBuilder_ == null) {
          inviteNotifyMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.InviteNotifyMessage, de.pokerth.protocol.ProtoBuf.InviteNotifyMessage.Builder, de.pokerth.protocol.ProtoBuf.InviteNotifyMessageOrBuilder>(
                  getInviteNotifyMessage(),
                  getParentForChildren(),
                  isClean());
          inviteNotifyMessage_ = null;
        }
        return inviteNotifyMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage rejectGameInvitationMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage, de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.Builder, de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessageOrBuilder> rejectGameInvitationMessageBuilder_;
      /**
       * <code>optional .RejectGameInvitationMessage rejectGameInvitationMessage = 35;</code>
       * @return Whether the rejectGameInvitationMessage field is set.
       */
      public boolean hasRejectGameInvitationMessage() {
        return ((bitField1_ & 0x00000004) != 0);
      }
      /**
       * <code>optional .RejectGameInvitationMessage rejectGameInvitationMessage = 35;</code>
       * @return The rejectGameInvitationMessage.
       */
      public de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage getRejectGameInvitationMessage() {
        if (rejectGameInvitationMessageBuilder_ == null) {
          return rejectGameInvitationMessage_ == null ? de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.getDefaultInstance() : rejectGameInvitationMessage_;
        } else {
          return rejectGameInvitationMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .RejectGameInvitationMessage rejectGameInvitationMessage = 35;</code>
       */
      public Builder setRejectGameInvitationMessage(de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage value) {
        if (rejectGameInvitationMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          rejectGameInvitationMessage_ = value;
        } else {
          rejectGameInvitationMessageBuilder_.setMessage(value);
        }
        bitField1_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>optional .RejectGameInvitationMessage rejectGameInvitationMessage = 35;</code>
       */
      public Builder setRejectGameInvitationMessage(
          de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.Builder builderForValue) {
        if (rejectGameInvitationMessageBuilder_ == null) {
          rejectGameInvitationMessage_ = builderForValue.build();
        } else {
          rejectGameInvitationMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField1_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>optional .RejectGameInvitationMessage rejectGameInvitationMessage = 35;</code>
       */
      public Builder mergeRejectGameInvitationMessage(de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage value) {
        if (rejectGameInvitationMessageBuilder_ == null) {
          if (((bitField1_ & 0x00000004) != 0) &&
            rejectGameInvitationMessage_ != null &&
            rejectGameInvitationMessage_ != de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.getDefaultInstance()) {
            getRejectGameInvitationMessageBuilder().mergeFrom(value);
          } else {
            rejectGameInvitationMessage_ = value;
          }
        } else {
          rejectGameInvitationMessageBuilder_.mergeFrom(value);
        }
        bitField1_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>optional .RejectGameInvitationMessage rejectGameInvitationMessage = 35;</code>
       */
      public Builder clearRejectGameInvitationMessage() {
        bitField1_ = (bitField1_ & ~0x00000004);
        rejectGameInvitationMessage_ = null;
        if (rejectGameInvitationMessageBuilder_ != null) {
          rejectGameInvitationMessageBuilder_.dispose();
          rejectGameInvitationMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .RejectGameInvitationMessage rejectGameInvitationMessage = 35;</code>
       */
      public de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.Builder getRejectGameInvitationMessageBuilder() {
        bitField1_ |= 0x00000004;
        onChanged();
        return getRejectGameInvitationMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .RejectGameInvitationMessage rejectGameInvitationMessage = 35;</code>
       */
      public de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessageOrBuilder getRejectGameInvitationMessageOrBuilder() {
        if (rejectGameInvitationMessageBuilder_ != null) {
          return rejectGameInvitationMessageBuilder_.getMessageOrBuilder();
        } else {
          return rejectGameInvitationMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.getDefaultInstance() : rejectGameInvitationMessage_;
        }
      }
      /**
       * <code>optional .RejectGameInvitationMessage rejectGameInvitationMessage = 35;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage, de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.Builder, de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessageOrBuilder> 
          getRejectGameInvitationMessageFieldBuilder() {
        if (rejectGameInvitationMessageBuilder_ == null) {
          rejectGameInvitationMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage, de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.Builder, de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessageOrBuilder>(
                  getRejectGameInvitationMessage(),
                  getParentForChildren(),
                  isClean());
          rejectGameInvitationMessage_ = null;
        }
        return rejectGameInvitationMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage rejectInvNotifyMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage, de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage.Builder, de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessageOrBuilder> rejectInvNotifyMessageBuilder_;
      /**
       * <code>optional .RejectInvNotifyMessage rejectInvNotifyMessage = 36;</code>
       * @return Whether the rejectInvNotifyMessage field is set.
       */
      public boolean hasRejectInvNotifyMessage() {
        return ((bitField1_ & 0x00000008) != 0);
      }
      /**
       * <code>optional .RejectInvNotifyMessage rejectInvNotifyMessage = 36;</code>
       * @return The rejectInvNotifyMessage.
       */
      public de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage getRejectInvNotifyMessage() {
        if (rejectInvNotifyMessageBuilder_ == null) {
          return rejectInvNotifyMessage_ == null ? de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage.getDefaultInstance() : rejectInvNotifyMessage_;
        } else {
          return rejectInvNotifyMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .RejectInvNotifyMessage rejectInvNotifyMessage = 36;</code>
       */
      public Builder setRejectInvNotifyMessage(de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage value) {
        if (rejectInvNotifyMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          rejectInvNotifyMessage_ = value;
        } else {
          rejectInvNotifyMessageBuilder_.setMessage(value);
        }
        bitField1_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>optional .RejectInvNotifyMessage rejectInvNotifyMessage = 36;</code>
       */
      public Builder setRejectInvNotifyMessage(
          de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage.Builder builderForValue) {
        if (rejectInvNotifyMessageBuilder_ == null) {
          rejectInvNotifyMessage_ = builderForValue.build();
        } else {
          rejectInvNotifyMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField1_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>optional .RejectInvNotifyMessage rejectInvNotifyMessage = 36;</code>
       */
      public Builder mergeRejectInvNotifyMessage(de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage value) {
        if (rejectInvNotifyMessageBuilder_ == null) {
          if (((bitField1_ & 0x00000008) != 0) &&
            rejectInvNotifyMessage_ != null &&
            rejectInvNotifyMessage_ != de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage.getDefaultInstance()) {
            getRejectInvNotifyMessageBuilder().mergeFrom(value);
          } else {
            rejectInvNotifyMessage_ = value;
          }
        } else {
          rejectInvNotifyMessageBuilder_.mergeFrom(value);
        }
        bitField1_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>optional .RejectInvNotifyMessage rejectInvNotifyMessage = 36;</code>
       */
      public Builder clearRejectInvNotifyMessage() {
        bitField1_ = (bitField1_ & ~0x00000008);
        rejectInvNotifyMessage_ = null;
        if (rejectInvNotifyMessageBuilder_ != null) {
          rejectInvNotifyMessageBuilder_.dispose();
          rejectInvNotifyMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .RejectInvNotifyMessage rejectInvNotifyMessage = 36;</code>
       */
      public de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage.Builder getRejectInvNotifyMessageBuilder() {
        bitField1_ |= 0x00000008;
        onChanged();
        return getRejectInvNotifyMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .RejectInvNotifyMessage rejectInvNotifyMessage = 36;</code>
       */
      public de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessageOrBuilder getRejectInvNotifyMessageOrBuilder() {
        if (rejectInvNotifyMessageBuilder_ != null) {
          return rejectInvNotifyMessageBuilder_.getMessageOrBuilder();
        } else {
          return rejectInvNotifyMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage.getDefaultInstance() : rejectInvNotifyMessage_;
        }
      }
      /**
       * <code>optional .RejectInvNotifyMessage rejectInvNotifyMessage = 36;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage, de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage.Builder, de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessageOrBuilder> 
          getRejectInvNotifyMessageFieldBuilder() {
        if (rejectInvNotifyMessageBuilder_ == null) {
          rejectInvNotifyMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage, de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage.Builder, de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessageOrBuilder>(
                  getRejectInvNotifyMessage(),
                  getParentForChildren(),
                  isClean());
          rejectInvNotifyMessage_ = null;
        }
        return rejectInvNotifyMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.StartEventMessage startEventMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.StartEventMessage, de.pokerth.protocol.ProtoBuf.StartEventMessage.Builder, de.pokerth.protocol.ProtoBuf.StartEventMessageOrBuilder> startEventMessageBuilder_;
      /**
       * <code>optional .StartEventMessage startEventMessage = 37;</code>
       * @return Whether the startEventMessage field is set.
       */
      public boolean hasStartEventMessage() {
        return ((bitField1_ & 0x00000010) != 0);
      }
      /**
       * <code>optional .StartEventMessage startEventMessage = 37;</code>
       * @return The startEventMessage.
       */
      public de.pokerth.protocol.ProtoBuf.StartEventMessage getStartEventMessage() {
        if (startEventMessageBuilder_ == null) {
          return startEventMessage_ == null ? de.pokerth.protocol.ProtoBuf.StartEventMessage.getDefaultInstance() : startEventMessage_;
        } else {
          return startEventMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .StartEventMessage startEventMessage = 37;</code>
       */
      public Builder setStartEventMessage(de.pokerth.protocol.ProtoBuf.StartEventMessage value) {
        if (startEventMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          startEventMessage_ = value;
        } else {
          startEventMessageBuilder_.setMessage(value);
        }
        bitField1_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>optional .StartEventMessage startEventMessage = 37;</code>
       */
      public Builder setStartEventMessage(
          de.pokerth.protocol.ProtoBuf.StartEventMessage.Builder builderForValue) {
        if (startEventMessageBuilder_ == null) {
          startEventMessage_ = builderForValue.build();
        } else {
          startEventMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField1_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>optional .StartEventMessage startEventMessage = 37;</code>
       */
      public Builder mergeStartEventMessage(de.pokerth.protocol.ProtoBuf.StartEventMessage value) {
        if (startEventMessageBuilder_ == null) {
          if (((bitField1_ & 0x00000010) != 0) &&
            startEventMessage_ != null &&
            startEventMessage_ != de.pokerth.protocol.ProtoBuf.StartEventMessage.getDefaultInstance()) {
            getStartEventMessageBuilder().mergeFrom(value);
          } else {
            startEventMessage_ = value;
          }
        } else {
          startEventMessageBuilder_.mergeFrom(value);
        }
        bitField1_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>optional .StartEventMessage startEventMessage = 37;</code>
       */
      public Builder clearStartEventMessage() {
        bitField1_ = (bitField1_ & ~0x00000010);
        startEventMessage_ = null;
        if (startEventMessageBuilder_ != null) {
          startEventMessageBuilder_.dispose();
          startEventMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .StartEventMessage startEventMessage = 37;</code>
       */
      public de.pokerth.protocol.ProtoBuf.StartEventMessage.Builder getStartEventMessageBuilder() {
        bitField1_ |= 0x00000010;
        onChanged();
        return getStartEventMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .StartEventMessage startEventMessage = 37;</code>
       */
      public de.pokerth.protocol.ProtoBuf.StartEventMessageOrBuilder getStartEventMessageOrBuilder() {
        if (startEventMessageBuilder_ != null) {
          return startEventMessageBuilder_.getMessageOrBuilder();
        } else {
          return startEventMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.StartEventMessage.getDefaultInstance() : startEventMessage_;
        }
      }
      /**
       * <code>optional .StartEventMessage startEventMessage = 37;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.StartEventMessage, de.pokerth.protocol.ProtoBuf.StartEventMessage.Builder, de.pokerth.protocol.ProtoBuf.StartEventMessageOrBuilder> 
          getStartEventMessageFieldBuilder() {
        if (startEventMessageBuilder_ == null) {
          startEventMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.StartEventMessage, de.pokerth.protocol.ProtoBuf.StartEventMessage.Builder, de.pokerth.protocol.ProtoBuf.StartEventMessageOrBuilder>(
                  getStartEventMessage(),
                  getParentForChildren(),
                  isClean());
          startEventMessage_ = null;
        }
        return startEventMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.StartEventAckMessage startEventAckMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.StartEventAckMessage, de.pokerth.protocol.ProtoBuf.StartEventAckMessage.Builder, de.pokerth.protocol.ProtoBuf.StartEventAckMessageOrBuilder> startEventAckMessageBuilder_;
      /**
       * <code>optional .StartEventAckMessage startEventAckMessage = 38;</code>
       * @return Whether the startEventAckMessage field is set.
       */
      public boolean hasStartEventAckMessage() {
        return ((bitField1_ & 0x00000020) != 0);
      }
      /**
       * <code>optional .StartEventAckMessage startEventAckMessage = 38;</code>
       * @return The startEventAckMessage.
       */
      public de.pokerth.protocol.ProtoBuf.StartEventAckMessage getStartEventAckMessage() {
        if (startEventAckMessageBuilder_ == null) {
          return startEventAckMessage_ == null ? de.pokerth.protocol.ProtoBuf.StartEventAckMessage.getDefaultInstance() : startEventAckMessage_;
        } else {
          return startEventAckMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .StartEventAckMessage startEventAckMessage = 38;</code>
       */
      public Builder setStartEventAckMessage(de.pokerth.protocol.ProtoBuf.StartEventAckMessage value) {
        if (startEventAckMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          startEventAckMessage_ = value;
        } else {
          startEventAckMessageBuilder_.setMessage(value);
        }
        bitField1_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>optional .StartEventAckMessage startEventAckMessage = 38;</code>
       */
      public Builder setStartEventAckMessage(
          de.pokerth.protocol.ProtoBuf.StartEventAckMessage.Builder builderForValue) {
        if (startEventAckMessageBuilder_ == null) {
          startEventAckMessage_ = builderForValue.build();
        } else {
          startEventAckMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField1_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>optional .StartEventAckMessage startEventAckMessage = 38;</code>
       */
      public Builder mergeStartEventAckMessage(de.pokerth.protocol.ProtoBuf.StartEventAckMessage value) {
        if (startEventAckMessageBuilder_ == null) {
          if (((bitField1_ & 0x00000020) != 0) &&
            startEventAckMessage_ != null &&
            startEventAckMessage_ != de.pokerth.protocol.ProtoBuf.StartEventAckMessage.getDefaultInstance()) {
            getStartEventAckMessageBuilder().mergeFrom(value);
          } else {
            startEventAckMessage_ = value;
          }
        } else {
          startEventAckMessageBuilder_.mergeFrom(value);
        }
        bitField1_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>optional .StartEventAckMessage startEventAckMessage = 38;</code>
       */
      public Builder clearStartEventAckMessage() {
        bitField1_ = (bitField1_ & ~0x00000020);
        startEventAckMessage_ = null;
        if (startEventAckMessageBuilder_ != null) {
          startEventAckMessageBuilder_.dispose();
          startEventAckMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .StartEventAckMessage startEventAckMessage = 38;</code>
       */
      public de.pokerth.protocol.ProtoBuf.StartEventAckMessage.Builder getStartEventAckMessageBuilder() {
        bitField1_ |= 0x00000020;
        onChanged();
        return getStartEventAckMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .StartEventAckMessage startEventAckMessage = 38;</code>
       */
      public de.pokerth.protocol.ProtoBuf.StartEventAckMessageOrBuilder getStartEventAckMessageOrBuilder() {
        if (startEventAckMessageBuilder_ != null) {
          return startEventAckMessageBuilder_.getMessageOrBuilder();
        } else {
          return startEventAckMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.StartEventAckMessage.getDefaultInstance() : startEventAckMessage_;
        }
      }
      /**
       * <code>optional .StartEventAckMessage startEventAckMessage = 38;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.StartEventAckMessage, de.pokerth.protocol.ProtoBuf.StartEventAckMessage.Builder, de.pokerth.protocol.ProtoBuf.StartEventAckMessageOrBuilder> 
          getStartEventAckMessageFieldBuilder() {
        if (startEventAckMessageBuilder_ == null) {
          startEventAckMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.StartEventAckMessage, de.pokerth.protocol.ProtoBuf.StartEventAckMessage.Builder, de.pokerth.protocol.ProtoBuf.StartEventAckMessageOrBuilder>(
                  getStartEventAckMessage(),
                  getParentForChildren(),
                  isClean());
          startEventAckMessage_ = null;
        }
        return startEventAckMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.GameStartInitialMessage gameStartInitialMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.GameStartInitialMessage, de.pokerth.protocol.ProtoBuf.GameStartInitialMessage.Builder, de.pokerth.protocol.ProtoBuf.GameStartInitialMessageOrBuilder> gameStartInitialMessageBuilder_;
      /**
       * <code>optional .GameStartInitialMessage gameStartInitialMessage = 39;</code>
       * @return Whether the gameStartInitialMessage field is set.
       */
      public boolean hasGameStartInitialMessage() {
        return ((bitField1_ & 0x00000040) != 0);
      }
      /**
       * <code>optional .GameStartInitialMessage gameStartInitialMessage = 39;</code>
       * @return The gameStartInitialMessage.
       */
      public de.pokerth.protocol.ProtoBuf.GameStartInitialMessage getGameStartInitialMessage() {
        if (gameStartInitialMessageBuilder_ == null) {
          return gameStartInitialMessage_ == null ? de.pokerth.protocol.ProtoBuf.GameStartInitialMessage.getDefaultInstance() : gameStartInitialMessage_;
        } else {
          return gameStartInitialMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .GameStartInitialMessage gameStartInitialMessage = 39;</code>
       */
      public Builder setGameStartInitialMessage(de.pokerth.protocol.ProtoBuf.GameStartInitialMessage value) {
        if (gameStartInitialMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          gameStartInitialMessage_ = value;
        } else {
          gameStartInitialMessageBuilder_.setMessage(value);
        }
        bitField1_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <code>optional .GameStartInitialMessage gameStartInitialMessage = 39;</code>
       */
      public Builder setGameStartInitialMessage(
          de.pokerth.protocol.ProtoBuf.GameStartInitialMessage.Builder builderForValue) {
        if (gameStartInitialMessageBuilder_ == null) {
          gameStartInitialMessage_ = builderForValue.build();
        } else {
          gameStartInitialMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField1_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <code>optional .GameStartInitialMessage gameStartInitialMessage = 39;</code>
       */
      public Builder mergeGameStartInitialMessage(de.pokerth.protocol.ProtoBuf.GameStartInitialMessage value) {
        if (gameStartInitialMessageBuilder_ == null) {
          if (((bitField1_ & 0x00000040) != 0) &&
            gameStartInitialMessage_ != null &&
            gameStartInitialMessage_ != de.pokerth.protocol.ProtoBuf.GameStartInitialMessage.getDefaultInstance()) {
            getGameStartInitialMessageBuilder().mergeFrom(value);
          } else {
            gameStartInitialMessage_ = value;
          }
        } else {
          gameStartInitialMessageBuilder_.mergeFrom(value);
        }
        bitField1_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <code>optional .GameStartInitialMessage gameStartInitialMessage = 39;</code>
       */
      public Builder clearGameStartInitialMessage() {
        bitField1_ = (bitField1_ & ~0x00000040);
        gameStartInitialMessage_ = null;
        if (gameStartInitialMessageBuilder_ != null) {
          gameStartInitialMessageBuilder_.dispose();
          gameStartInitialMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .GameStartInitialMessage gameStartInitialMessage = 39;</code>
       */
      public de.pokerth.protocol.ProtoBuf.GameStartInitialMessage.Builder getGameStartInitialMessageBuilder() {
        bitField1_ |= 0x00000040;
        onChanged();
        return getGameStartInitialMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .GameStartInitialMessage gameStartInitialMessage = 39;</code>
       */
      public de.pokerth.protocol.ProtoBuf.GameStartInitialMessageOrBuilder getGameStartInitialMessageOrBuilder() {
        if (gameStartInitialMessageBuilder_ != null) {
          return gameStartInitialMessageBuilder_.getMessageOrBuilder();
        } else {
          return gameStartInitialMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.GameStartInitialMessage.getDefaultInstance() : gameStartInitialMessage_;
        }
      }
      /**
       * <code>optional .GameStartInitialMessage gameStartInitialMessage = 39;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.GameStartInitialMessage, de.pokerth.protocol.ProtoBuf.GameStartInitialMessage.Builder, de.pokerth.protocol.ProtoBuf.GameStartInitialMessageOrBuilder> 
          getGameStartInitialMessageFieldBuilder() {
        if (gameStartInitialMessageBuilder_ == null) {
          gameStartInitialMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.GameStartInitialMessage, de.pokerth.protocol.ProtoBuf.GameStartInitialMessage.Builder, de.pokerth.protocol.ProtoBuf.GameStartInitialMessageOrBuilder>(
                  getGameStartInitialMessage(),
                  getParentForChildren(),
                  isClean());
          gameStartInitialMessage_ = null;
        }
        return gameStartInitialMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage gameStartRejoinMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage, de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.Builder, de.pokerth.protocol.ProtoBuf.GameStartRejoinMessageOrBuilder> gameStartRejoinMessageBuilder_;
      /**
       * <code>optional .GameStartRejoinMessage gameStartRejoinMessage = 40;</code>
       * @return Whether the gameStartRejoinMessage field is set.
       */
      public boolean hasGameStartRejoinMessage() {
        return ((bitField1_ & 0x00000080) != 0);
      }
      /**
       * <code>optional .GameStartRejoinMessage gameStartRejoinMessage = 40;</code>
       * @return The gameStartRejoinMessage.
       */
      public de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage getGameStartRejoinMessage() {
        if (gameStartRejoinMessageBuilder_ == null) {
          return gameStartRejoinMessage_ == null ? de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.getDefaultInstance() : gameStartRejoinMessage_;
        } else {
          return gameStartRejoinMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .GameStartRejoinMessage gameStartRejoinMessage = 40;</code>
       */
      public Builder setGameStartRejoinMessage(de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage value) {
        if (gameStartRejoinMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          gameStartRejoinMessage_ = value;
        } else {
          gameStartRejoinMessageBuilder_.setMessage(value);
        }
        bitField1_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <code>optional .GameStartRejoinMessage gameStartRejoinMessage = 40;</code>
       */
      public Builder setGameStartRejoinMessage(
          de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.Builder builderForValue) {
        if (gameStartRejoinMessageBuilder_ == null) {
          gameStartRejoinMessage_ = builderForValue.build();
        } else {
          gameStartRejoinMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField1_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <code>optional .GameStartRejoinMessage gameStartRejoinMessage = 40;</code>
       */
      public Builder mergeGameStartRejoinMessage(de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage value) {
        if (gameStartRejoinMessageBuilder_ == null) {
          if (((bitField1_ & 0x00000080) != 0) &&
            gameStartRejoinMessage_ != null &&
            gameStartRejoinMessage_ != de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.getDefaultInstance()) {
            getGameStartRejoinMessageBuilder().mergeFrom(value);
          } else {
            gameStartRejoinMessage_ = value;
          }
        } else {
          gameStartRejoinMessageBuilder_.mergeFrom(value);
        }
        bitField1_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <code>optional .GameStartRejoinMessage gameStartRejoinMessage = 40;</code>
       */
      public Builder clearGameStartRejoinMessage() {
        bitField1_ = (bitField1_ & ~0x00000080);
        gameStartRejoinMessage_ = null;
        if (gameStartRejoinMessageBuilder_ != null) {
          gameStartRejoinMessageBuilder_.dispose();
          gameStartRejoinMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .GameStartRejoinMessage gameStartRejoinMessage = 40;</code>
       */
      public de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.Builder getGameStartRejoinMessageBuilder() {
        bitField1_ |= 0x00000080;
        onChanged();
        return getGameStartRejoinMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .GameStartRejoinMessage gameStartRejoinMessage = 40;</code>
       */
      public de.pokerth.protocol.ProtoBuf.GameStartRejoinMessageOrBuilder getGameStartRejoinMessageOrBuilder() {
        if (gameStartRejoinMessageBuilder_ != null) {
          return gameStartRejoinMessageBuilder_.getMessageOrBuilder();
        } else {
          return gameStartRejoinMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.getDefaultInstance() : gameStartRejoinMessage_;
        }
      }
      /**
       * <code>optional .GameStartRejoinMessage gameStartRejoinMessage = 40;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage, de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.Builder, de.pokerth.protocol.ProtoBuf.GameStartRejoinMessageOrBuilder> 
          getGameStartRejoinMessageFieldBuilder() {
        if (gameStartRejoinMessageBuilder_ == null) {
          gameStartRejoinMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage, de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.Builder, de.pokerth.protocol.ProtoBuf.GameStartRejoinMessageOrBuilder>(
                  getGameStartRejoinMessage(),
                  getParentForChildren(),
                  isClean());
          gameStartRejoinMessage_ = null;
        }
        return gameStartRejoinMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.HandStartMessage handStartMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.HandStartMessage, de.pokerth.protocol.ProtoBuf.HandStartMessage.Builder, de.pokerth.protocol.ProtoBuf.HandStartMessageOrBuilder> handStartMessageBuilder_;
      /**
       * <code>optional .HandStartMessage handStartMessage = 41;</code>
       * @return Whether the handStartMessage field is set.
       */
      public boolean hasHandStartMessage() {
        return ((bitField1_ & 0x00000100) != 0);
      }
      /**
       * <code>optional .HandStartMessage handStartMessage = 41;</code>
       * @return The handStartMessage.
       */
      public de.pokerth.protocol.ProtoBuf.HandStartMessage getHandStartMessage() {
        if (handStartMessageBuilder_ == null) {
          return handStartMessage_ == null ? de.pokerth.protocol.ProtoBuf.HandStartMessage.getDefaultInstance() : handStartMessage_;
        } else {
          return handStartMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .HandStartMessage handStartMessage = 41;</code>
       */
      public Builder setHandStartMessage(de.pokerth.protocol.ProtoBuf.HandStartMessage value) {
        if (handStartMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          handStartMessage_ = value;
        } else {
          handStartMessageBuilder_.setMessage(value);
        }
        bitField1_ |= 0x00000100;
        onChanged();
        return this;
      }
      /**
       * <code>optional .HandStartMessage handStartMessage = 41;</code>
       */
      public Builder setHandStartMessage(
          de.pokerth.protocol.ProtoBuf.HandStartMessage.Builder builderForValue) {
        if (handStartMessageBuilder_ == null) {
          handStartMessage_ = builderForValue.build();
        } else {
          handStartMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField1_ |= 0x00000100;
        onChanged();
        return this;
      }
      /**
       * <code>optional .HandStartMessage handStartMessage = 41;</code>
       */
      public Builder mergeHandStartMessage(de.pokerth.protocol.ProtoBuf.HandStartMessage value) {
        if (handStartMessageBuilder_ == null) {
          if (((bitField1_ & 0x00000100) != 0) &&
            handStartMessage_ != null &&
            handStartMessage_ != de.pokerth.protocol.ProtoBuf.HandStartMessage.getDefaultInstance()) {
            getHandStartMessageBuilder().mergeFrom(value);
          } else {
            handStartMessage_ = value;
          }
        } else {
          handStartMessageBuilder_.mergeFrom(value);
        }
        bitField1_ |= 0x00000100;
        onChanged();
        return this;
      }
      /**
       * <code>optional .HandStartMessage handStartMessage = 41;</code>
       */
      public Builder clearHandStartMessage() {
        bitField1_ = (bitField1_ & ~0x00000100);
        handStartMessage_ = null;
        if (handStartMessageBuilder_ != null) {
          handStartMessageBuilder_.dispose();
          handStartMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .HandStartMessage handStartMessage = 41;</code>
       */
      public de.pokerth.protocol.ProtoBuf.HandStartMessage.Builder getHandStartMessageBuilder() {
        bitField1_ |= 0x00000100;
        onChanged();
        return getHandStartMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .HandStartMessage handStartMessage = 41;</code>
       */
      public de.pokerth.protocol.ProtoBuf.HandStartMessageOrBuilder getHandStartMessageOrBuilder() {
        if (handStartMessageBuilder_ != null) {
          return handStartMessageBuilder_.getMessageOrBuilder();
        } else {
          return handStartMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.HandStartMessage.getDefaultInstance() : handStartMessage_;
        }
      }
      /**
       * <code>optional .HandStartMessage handStartMessage = 41;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.HandStartMessage, de.pokerth.protocol.ProtoBuf.HandStartMessage.Builder, de.pokerth.protocol.ProtoBuf.HandStartMessageOrBuilder> 
          getHandStartMessageFieldBuilder() {
        if (handStartMessageBuilder_ == null) {
          handStartMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.HandStartMessage, de.pokerth.protocol.ProtoBuf.HandStartMessage.Builder, de.pokerth.protocol.ProtoBuf.HandStartMessageOrBuilder>(
                  getHandStartMessage(),
                  getParentForChildren(),
                  isClean());
          handStartMessage_ = null;
        }
        return handStartMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.PlayersTurnMessage playersTurnMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.PlayersTurnMessage, de.pokerth.protocol.ProtoBuf.PlayersTurnMessage.Builder, de.pokerth.protocol.ProtoBuf.PlayersTurnMessageOrBuilder> playersTurnMessageBuilder_;
      /**
       * <code>optional .PlayersTurnMessage playersTurnMessage = 42;</code>
       * @return Whether the playersTurnMessage field is set.
       */
      public boolean hasPlayersTurnMessage() {
        return ((bitField1_ & 0x00000200) != 0);
      }
      /**
       * <code>optional .PlayersTurnMessage playersTurnMessage = 42;</code>
       * @return The playersTurnMessage.
       */
      public de.pokerth.protocol.ProtoBuf.PlayersTurnMessage getPlayersTurnMessage() {
        if (playersTurnMessageBuilder_ == null) {
          return playersTurnMessage_ == null ? de.pokerth.protocol.ProtoBuf.PlayersTurnMessage.getDefaultInstance() : playersTurnMessage_;
        } else {
          return playersTurnMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .PlayersTurnMessage playersTurnMessage = 42;</code>
       */
      public Builder setPlayersTurnMessage(de.pokerth.protocol.ProtoBuf.PlayersTurnMessage value) {
        if (playersTurnMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          playersTurnMessage_ = value;
        } else {
          playersTurnMessageBuilder_.setMessage(value);
        }
        bitField1_ |= 0x00000200;
        onChanged();
        return this;
      }
      /**
       * <code>optional .PlayersTurnMessage playersTurnMessage = 42;</code>
       */
      public Builder setPlayersTurnMessage(
          de.pokerth.protocol.ProtoBuf.PlayersTurnMessage.Builder builderForValue) {
        if (playersTurnMessageBuilder_ == null) {
          playersTurnMessage_ = builderForValue.build();
        } else {
          playersTurnMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField1_ |= 0x00000200;
        onChanged();
        return this;
      }
      /**
       * <code>optional .PlayersTurnMessage playersTurnMessage = 42;</code>
       */
      public Builder mergePlayersTurnMessage(de.pokerth.protocol.ProtoBuf.PlayersTurnMessage value) {
        if (playersTurnMessageBuilder_ == null) {
          if (((bitField1_ & 0x00000200) != 0) &&
            playersTurnMessage_ != null &&
            playersTurnMessage_ != de.pokerth.protocol.ProtoBuf.PlayersTurnMessage.getDefaultInstance()) {
            getPlayersTurnMessageBuilder().mergeFrom(value);
          } else {
            playersTurnMessage_ = value;
          }
        } else {
          playersTurnMessageBuilder_.mergeFrom(value);
        }
        bitField1_ |= 0x00000200;
        onChanged();
        return this;
      }
      /**
       * <code>optional .PlayersTurnMessage playersTurnMessage = 42;</code>
       */
      public Builder clearPlayersTurnMessage() {
        bitField1_ = (bitField1_ & ~0x00000200);
        playersTurnMessage_ = null;
        if (playersTurnMessageBuilder_ != null) {
          playersTurnMessageBuilder_.dispose();
          playersTurnMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .PlayersTurnMessage playersTurnMessage = 42;</code>
       */
      public de.pokerth.protocol.ProtoBuf.PlayersTurnMessage.Builder getPlayersTurnMessageBuilder() {
        bitField1_ |= 0x00000200;
        onChanged();
        return getPlayersTurnMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .PlayersTurnMessage playersTurnMessage = 42;</code>
       */
      public de.pokerth.protocol.ProtoBuf.PlayersTurnMessageOrBuilder getPlayersTurnMessageOrBuilder() {
        if (playersTurnMessageBuilder_ != null) {
          return playersTurnMessageBuilder_.getMessageOrBuilder();
        } else {
          return playersTurnMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.PlayersTurnMessage.getDefaultInstance() : playersTurnMessage_;
        }
      }
      /**
       * <code>optional .PlayersTurnMessage playersTurnMessage = 42;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.PlayersTurnMessage, de.pokerth.protocol.ProtoBuf.PlayersTurnMessage.Builder, de.pokerth.protocol.ProtoBuf.PlayersTurnMessageOrBuilder> 
          getPlayersTurnMessageFieldBuilder() {
        if (playersTurnMessageBuilder_ == null) {
          playersTurnMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.PlayersTurnMessage, de.pokerth.protocol.ProtoBuf.PlayersTurnMessage.Builder, de.pokerth.protocol.ProtoBuf.PlayersTurnMessageOrBuilder>(
                  getPlayersTurnMessage(),
                  getParentForChildren(),
                  isClean());
          playersTurnMessage_ = null;
        }
        return playersTurnMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.MyActionRequestMessage myActionRequestMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.MyActionRequestMessage, de.pokerth.protocol.ProtoBuf.MyActionRequestMessage.Builder, de.pokerth.protocol.ProtoBuf.MyActionRequestMessageOrBuilder> myActionRequestMessageBuilder_;
      /**
       * <code>optional .MyActionRequestMessage myActionRequestMessage = 43;</code>
       * @return Whether the myActionRequestMessage field is set.
       */
      public boolean hasMyActionRequestMessage() {
        return ((bitField1_ & 0x00000400) != 0);
      }
      /**
       * <code>optional .MyActionRequestMessage myActionRequestMessage = 43;</code>
       * @return The myActionRequestMessage.
       */
      public de.pokerth.protocol.ProtoBuf.MyActionRequestMessage getMyActionRequestMessage() {
        if (myActionRequestMessageBuilder_ == null) {
          return myActionRequestMessage_ == null ? de.pokerth.protocol.ProtoBuf.MyActionRequestMessage.getDefaultInstance() : myActionRequestMessage_;
        } else {
          return myActionRequestMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .MyActionRequestMessage myActionRequestMessage = 43;</code>
       */
      public Builder setMyActionRequestMessage(de.pokerth.protocol.ProtoBuf.MyActionRequestMessage value) {
        if (myActionRequestMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          myActionRequestMessage_ = value;
        } else {
          myActionRequestMessageBuilder_.setMessage(value);
        }
        bitField1_ |= 0x00000400;
        onChanged();
        return this;
      }
      /**
       * <code>optional .MyActionRequestMessage myActionRequestMessage = 43;</code>
       */
      public Builder setMyActionRequestMessage(
          de.pokerth.protocol.ProtoBuf.MyActionRequestMessage.Builder builderForValue) {
        if (myActionRequestMessageBuilder_ == null) {
          myActionRequestMessage_ = builderForValue.build();
        } else {
          myActionRequestMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField1_ |= 0x00000400;
        onChanged();
        return this;
      }
      /**
       * <code>optional .MyActionRequestMessage myActionRequestMessage = 43;</code>
       */
      public Builder mergeMyActionRequestMessage(de.pokerth.protocol.ProtoBuf.MyActionRequestMessage value) {
        if (myActionRequestMessageBuilder_ == null) {
          if (((bitField1_ & 0x00000400) != 0) &&
            myActionRequestMessage_ != null &&
            myActionRequestMessage_ != de.pokerth.protocol.ProtoBuf.MyActionRequestMessage.getDefaultInstance()) {
            getMyActionRequestMessageBuilder().mergeFrom(value);
          } else {
            myActionRequestMessage_ = value;
          }
        } else {
          myActionRequestMessageBuilder_.mergeFrom(value);
        }
        bitField1_ |= 0x00000400;
        onChanged();
        return this;
      }
      /**
       * <code>optional .MyActionRequestMessage myActionRequestMessage = 43;</code>
       */
      public Builder clearMyActionRequestMessage() {
        bitField1_ = (bitField1_ & ~0x00000400);
        myActionRequestMessage_ = null;
        if (myActionRequestMessageBuilder_ != null) {
          myActionRequestMessageBuilder_.dispose();
          myActionRequestMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .MyActionRequestMessage myActionRequestMessage = 43;</code>
       */
      public de.pokerth.protocol.ProtoBuf.MyActionRequestMessage.Builder getMyActionRequestMessageBuilder() {
        bitField1_ |= 0x00000400;
        onChanged();
        return getMyActionRequestMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .MyActionRequestMessage myActionRequestMessage = 43;</code>
       */
      public de.pokerth.protocol.ProtoBuf.MyActionRequestMessageOrBuilder getMyActionRequestMessageOrBuilder() {
        if (myActionRequestMessageBuilder_ != null) {
          return myActionRequestMessageBuilder_.getMessageOrBuilder();
        } else {
          return myActionRequestMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.MyActionRequestMessage.getDefaultInstance() : myActionRequestMessage_;
        }
      }
      /**
       * <code>optional .MyActionRequestMessage myActionRequestMessage = 43;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.MyActionRequestMessage, de.pokerth.protocol.ProtoBuf.MyActionRequestMessage.Builder, de.pokerth.protocol.ProtoBuf.MyActionRequestMessageOrBuilder> 
          getMyActionRequestMessageFieldBuilder() {
        if (myActionRequestMessageBuilder_ == null) {
          myActionRequestMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.MyActionRequestMessage, de.pokerth.protocol.ProtoBuf.MyActionRequestMessage.Builder, de.pokerth.protocol.ProtoBuf.MyActionRequestMessageOrBuilder>(
                  getMyActionRequestMessage(),
                  getParentForChildren(),
                  isClean());
          myActionRequestMessage_ = null;
        }
        return myActionRequestMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage yourActionRejectedMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage, de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.Builder, de.pokerth.protocol.ProtoBuf.YourActionRejectedMessageOrBuilder> yourActionRejectedMessageBuilder_;
      /**
       * <code>optional .YourActionRejectedMessage yourActionRejectedMessage = 44;</code>
       * @return Whether the yourActionRejectedMessage field is set.
       */
      public boolean hasYourActionRejectedMessage() {
        return ((bitField1_ & 0x00000800) != 0);
      }
      /**
       * <code>optional .YourActionRejectedMessage yourActionRejectedMessage = 44;</code>
       * @return The yourActionRejectedMessage.
       */
      public de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage getYourActionRejectedMessage() {
        if (yourActionRejectedMessageBuilder_ == null) {
          return yourActionRejectedMessage_ == null ? de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.getDefaultInstance() : yourActionRejectedMessage_;
        } else {
          return yourActionRejectedMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .YourActionRejectedMessage yourActionRejectedMessage = 44;</code>
       */
      public Builder setYourActionRejectedMessage(de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage value) {
        if (yourActionRejectedMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          yourActionRejectedMessage_ = value;
        } else {
          yourActionRejectedMessageBuilder_.setMessage(value);
        }
        bitField1_ |= 0x00000800;
        onChanged();
        return this;
      }
      /**
       * <code>optional .YourActionRejectedMessage yourActionRejectedMessage = 44;</code>
       */
      public Builder setYourActionRejectedMessage(
          de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.Builder builderForValue) {
        if (yourActionRejectedMessageBuilder_ == null) {
          yourActionRejectedMessage_ = builderForValue.build();
        } else {
          yourActionRejectedMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField1_ |= 0x00000800;
        onChanged();
        return this;
      }
      /**
       * <code>optional .YourActionRejectedMessage yourActionRejectedMessage = 44;</code>
       */
      public Builder mergeYourActionRejectedMessage(de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage value) {
        if (yourActionRejectedMessageBuilder_ == null) {
          if (((bitField1_ & 0x00000800) != 0) &&
            yourActionRejectedMessage_ != null &&
            yourActionRejectedMessage_ != de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.getDefaultInstance()) {
            getYourActionRejectedMessageBuilder().mergeFrom(value);
          } else {
            yourActionRejectedMessage_ = value;
          }
        } else {
          yourActionRejectedMessageBuilder_.mergeFrom(value);
        }
        bitField1_ |= 0x00000800;
        onChanged();
        return this;
      }
      /**
       * <code>optional .YourActionRejectedMessage yourActionRejectedMessage = 44;</code>
       */
      public Builder clearYourActionRejectedMessage() {
        bitField1_ = (bitField1_ & ~0x00000800);
        yourActionRejectedMessage_ = null;
        if (yourActionRejectedMessageBuilder_ != null) {
          yourActionRejectedMessageBuilder_.dispose();
          yourActionRejectedMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .YourActionRejectedMessage yourActionRejectedMessage = 44;</code>
       */
      public de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.Builder getYourActionRejectedMessageBuilder() {
        bitField1_ |= 0x00000800;
        onChanged();
        return getYourActionRejectedMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .YourActionRejectedMessage yourActionRejectedMessage = 44;</code>
       */
      public de.pokerth.protocol.ProtoBuf.YourActionRejectedMessageOrBuilder getYourActionRejectedMessageOrBuilder() {
        if (yourActionRejectedMessageBuilder_ != null) {
          return yourActionRejectedMessageBuilder_.getMessageOrBuilder();
        } else {
          return yourActionRejectedMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.getDefaultInstance() : yourActionRejectedMessage_;
        }
      }
      /**
       * <code>optional .YourActionRejectedMessage yourActionRejectedMessage = 44;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage, de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.Builder, de.pokerth.protocol.ProtoBuf.YourActionRejectedMessageOrBuilder> 
          getYourActionRejectedMessageFieldBuilder() {
        if (yourActionRejectedMessageBuilder_ == null) {
          yourActionRejectedMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage, de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.Builder, de.pokerth.protocol.ProtoBuf.YourActionRejectedMessageOrBuilder>(
                  getYourActionRejectedMessage(),
                  getParentForChildren(),
                  isClean());
          yourActionRejectedMessage_ = null;
        }
        return yourActionRejectedMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage playersActionDoneMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage, de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage.Builder, de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessageOrBuilder> playersActionDoneMessageBuilder_;
      /**
       * <code>optional .PlayersActionDoneMessage playersActionDoneMessage = 45;</code>
       * @return Whether the playersActionDoneMessage field is set.
       */
      public boolean hasPlayersActionDoneMessage() {
        return ((bitField1_ & 0x00001000) != 0);
      }
      /**
       * <code>optional .PlayersActionDoneMessage playersActionDoneMessage = 45;</code>
       * @return The playersActionDoneMessage.
       */
      public de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage getPlayersActionDoneMessage() {
        if (playersActionDoneMessageBuilder_ == null) {
          return playersActionDoneMessage_ == null ? de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage.getDefaultInstance() : playersActionDoneMessage_;
        } else {
          return playersActionDoneMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .PlayersActionDoneMessage playersActionDoneMessage = 45;</code>
       */
      public Builder setPlayersActionDoneMessage(de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage value) {
        if (playersActionDoneMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          playersActionDoneMessage_ = value;
        } else {
          playersActionDoneMessageBuilder_.setMessage(value);
        }
        bitField1_ |= 0x00001000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .PlayersActionDoneMessage playersActionDoneMessage = 45;</code>
       */
      public Builder setPlayersActionDoneMessage(
          de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage.Builder builderForValue) {
        if (playersActionDoneMessageBuilder_ == null) {
          playersActionDoneMessage_ = builderForValue.build();
        } else {
          playersActionDoneMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField1_ |= 0x00001000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .PlayersActionDoneMessage playersActionDoneMessage = 45;</code>
       */
      public Builder mergePlayersActionDoneMessage(de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage value) {
        if (playersActionDoneMessageBuilder_ == null) {
          if (((bitField1_ & 0x00001000) != 0) &&
            playersActionDoneMessage_ != null &&
            playersActionDoneMessage_ != de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage.getDefaultInstance()) {
            getPlayersActionDoneMessageBuilder().mergeFrom(value);
          } else {
            playersActionDoneMessage_ = value;
          }
        } else {
          playersActionDoneMessageBuilder_.mergeFrom(value);
        }
        bitField1_ |= 0x00001000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .PlayersActionDoneMessage playersActionDoneMessage = 45;</code>
       */
      public Builder clearPlayersActionDoneMessage() {
        bitField1_ = (bitField1_ & ~0x00001000);
        playersActionDoneMessage_ = null;
        if (playersActionDoneMessageBuilder_ != null) {
          playersActionDoneMessageBuilder_.dispose();
          playersActionDoneMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .PlayersActionDoneMessage playersActionDoneMessage = 45;</code>
       */
      public de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage.Builder getPlayersActionDoneMessageBuilder() {
        bitField1_ |= 0x00001000;
        onChanged();
        return getPlayersActionDoneMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .PlayersActionDoneMessage playersActionDoneMessage = 45;</code>
       */
      public de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessageOrBuilder getPlayersActionDoneMessageOrBuilder() {
        if (playersActionDoneMessageBuilder_ != null) {
          return playersActionDoneMessageBuilder_.getMessageOrBuilder();
        } else {
          return playersActionDoneMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage.getDefaultInstance() : playersActionDoneMessage_;
        }
      }
      /**
       * <code>optional .PlayersActionDoneMessage playersActionDoneMessage = 45;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage, de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage.Builder, de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessageOrBuilder> 
          getPlayersActionDoneMessageFieldBuilder() {
        if (playersActionDoneMessageBuilder_ == null) {
          playersActionDoneMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage, de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage.Builder, de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessageOrBuilder>(
                  getPlayersActionDoneMessage(),
                  getParentForChildren(),
                  isClean());
          playersActionDoneMessage_ = null;
        }
        return playersActionDoneMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage dealFlopCardsMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage, de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage.Builder, de.pokerth.protocol.ProtoBuf.DealFlopCardsMessageOrBuilder> dealFlopCardsMessageBuilder_;
      /**
       * <code>optional .DealFlopCardsMessage dealFlopCardsMessage = 46;</code>
       * @return Whether the dealFlopCardsMessage field is set.
       */
      public boolean hasDealFlopCardsMessage() {
        return ((bitField1_ & 0x00002000) != 0);
      }
      /**
       * <code>optional .DealFlopCardsMessage dealFlopCardsMessage = 46;</code>
       * @return The dealFlopCardsMessage.
       */
      public de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage getDealFlopCardsMessage() {
        if (dealFlopCardsMessageBuilder_ == null) {
          return dealFlopCardsMessage_ == null ? de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage.getDefaultInstance() : dealFlopCardsMessage_;
        } else {
          return dealFlopCardsMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .DealFlopCardsMessage dealFlopCardsMessage = 46;</code>
       */
      public Builder setDealFlopCardsMessage(de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage value) {
        if (dealFlopCardsMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          dealFlopCardsMessage_ = value;
        } else {
          dealFlopCardsMessageBuilder_.setMessage(value);
        }
        bitField1_ |= 0x00002000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .DealFlopCardsMessage dealFlopCardsMessage = 46;</code>
       */
      public Builder setDealFlopCardsMessage(
          de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage.Builder builderForValue) {
        if (dealFlopCardsMessageBuilder_ == null) {
          dealFlopCardsMessage_ = builderForValue.build();
        } else {
          dealFlopCardsMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField1_ |= 0x00002000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .DealFlopCardsMessage dealFlopCardsMessage = 46;</code>
       */
      public Builder mergeDealFlopCardsMessage(de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage value) {
        if (dealFlopCardsMessageBuilder_ == null) {
          if (((bitField1_ & 0x00002000) != 0) &&
            dealFlopCardsMessage_ != null &&
            dealFlopCardsMessage_ != de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage.getDefaultInstance()) {
            getDealFlopCardsMessageBuilder().mergeFrom(value);
          } else {
            dealFlopCardsMessage_ = value;
          }
        } else {
          dealFlopCardsMessageBuilder_.mergeFrom(value);
        }
        bitField1_ |= 0x00002000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .DealFlopCardsMessage dealFlopCardsMessage = 46;</code>
       */
      public Builder clearDealFlopCardsMessage() {
        bitField1_ = (bitField1_ & ~0x00002000);
        dealFlopCardsMessage_ = null;
        if (dealFlopCardsMessageBuilder_ != null) {
          dealFlopCardsMessageBuilder_.dispose();
          dealFlopCardsMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .DealFlopCardsMessage dealFlopCardsMessage = 46;</code>
       */
      public de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage.Builder getDealFlopCardsMessageBuilder() {
        bitField1_ |= 0x00002000;
        onChanged();
        return getDealFlopCardsMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .DealFlopCardsMessage dealFlopCardsMessage = 46;</code>
       */
      public de.pokerth.protocol.ProtoBuf.DealFlopCardsMessageOrBuilder getDealFlopCardsMessageOrBuilder() {
        if (dealFlopCardsMessageBuilder_ != null) {
          return dealFlopCardsMessageBuilder_.getMessageOrBuilder();
        } else {
          return dealFlopCardsMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage.getDefaultInstance() : dealFlopCardsMessage_;
        }
      }
      /**
       * <code>optional .DealFlopCardsMessage dealFlopCardsMessage = 46;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage, de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage.Builder, de.pokerth.protocol.ProtoBuf.DealFlopCardsMessageOrBuilder> 
          getDealFlopCardsMessageFieldBuilder() {
        if (dealFlopCardsMessageBuilder_ == null) {
          dealFlopCardsMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage, de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage.Builder, de.pokerth.protocol.ProtoBuf.DealFlopCardsMessageOrBuilder>(
                  getDealFlopCardsMessage(),
                  getParentForChildren(),
                  isClean());
          dealFlopCardsMessage_ = null;
        }
        return dealFlopCardsMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.DealTurnCardMessage dealTurnCardMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.DealTurnCardMessage, de.pokerth.protocol.ProtoBuf.DealTurnCardMessage.Builder, de.pokerth.protocol.ProtoBuf.DealTurnCardMessageOrBuilder> dealTurnCardMessageBuilder_;
      /**
       * <code>optional .DealTurnCardMessage dealTurnCardMessage = 47;</code>
       * @return Whether the dealTurnCardMessage field is set.
       */
      public boolean hasDealTurnCardMessage() {
        return ((bitField1_ & 0x00004000) != 0);
      }
      /**
       * <code>optional .DealTurnCardMessage dealTurnCardMessage = 47;</code>
       * @return The dealTurnCardMessage.
       */
      public de.pokerth.protocol.ProtoBuf.DealTurnCardMessage getDealTurnCardMessage() {
        if (dealTurnCardMessageBuilder_ == null) {
          return dealTurnCardMessage_ == null ? de.pokerth.protocol.ProtoBuf.DealTurnCardMessage.getDefaultInstance() : dealTurnCardMessage_;
        } else {
          return dealTurnCardMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .DealTurnCardMessage dealTurnCardMessage = 47;</code>
       */
      public Builder setDealTurnCardMessage(de.pokerth.protocol.ProtoBuf.DealTurnCardMessage value) {
        if (dealTurnCardMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          dealTurnCardMessage_ = value;
        } else {
          dealTurnCardMessageBuilder_.setMessage(value);
        }
        bitField1_ |= 0x00004000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .DealTurnCardMessage dealTurnCardMessage = 47;</code>
       */
      public Builder setDealTurnCardMessage(
          de.pokerth.protocol.ProtoBuf.DealTurnCardMessage.Builder builderForValue) {
        if (dealTurnCardMessageBuilder_ == null) {
          dealTurnCardMessage_ = builderForValue.build();
        } else {
          dealTurnCardMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField1_ |= 0x00004000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .DealTurnCardMessage dealTurnCardMessage = 47;</code>
       */
      public Builder mergeDealTurnCardMessage(de.pokerth.protocol.ProtoBuf.DealTurnCardMessage value) {
        if (dealTurnCardMessageBuilder_ == null) {
          if (((bitField1_ & 0x00004000) != 0) &&
            dealTurnCardMessage_ != null &&
            dealTurnCardMessage_ != de.pokerth.protocol.ProtoBuf.DealTurnCardMessage.getDefaultInstance()) {
            getDealTurnCardMessageBuilder().mergeFrom(value);
          } else {
            dealTurnCardMessage_ = value;
          }
        } else {
          dealTurnCardMessageBuilder_.mergeFrom(value);
        }
        bitField1_ |= 0x00004000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .DealTurnCardMessage dealTurnCardMessage = 47;</code>
       */
      public Builder clearDealTurnCardMessage() {
        bitField1_ = (bitField1_ & ~0x00004000);
        dealTurnCardMessage_ = null;
        if (dealTurnCardMessageBuilder_ != null) {
          dealTurnCardMessageBuilder_.dispose();
          dealTurnCardMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .DealTurnCardMessage dealTurnCardMessage = 47;</code>
       */
      public de.pokerth.protocol.ProtoBuf.DealTurnCardMessage.Builder getDealTurnCardMessageBuilder() {
        bitField1_ |= 0x00004000;
        onChanged();
        return getDealTurnCardMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .DealTurnCardMessage dealTurnCardMessage = 47;</code>
       */
      public de.pokerth.protocol.ProtoBuf.DealTurnCardMessageOrBuilder getDealTurnCardMessageOrBuilder() {
        if (dealTurnCardMessageBuilder_ != null) {
          return dealTurnCardMessageBuilder_.getMessageOrBuilder();
        } else {
          return dealTurnCardMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.DealTurnCardMessage.getDefaultInstance() : dealTurnCardMessage_;
        }
      }
      /**
       * <code>optional .DealTurnCardMessage dealTurnCardMessage = 47;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.DealTurnCardMessage, de.pokerth.protocol.ProtoBuf.DealTurnCardMessage.Builder, de.pokerth.protocol.ProtoBuf.DealTurnCardMessageOrBuilder> 
          getDealTurnCardMessageFieldBuilder() {
        if (dealTurnCardMessageBuilder_ == null) {
          dealTurnCardMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.DealTurnCardMessage, de.pokerth.protocol.ProtoBuf.DealTurnCardMessage.Builder, de.pokerth.protocol.ProtoBuf.DealTurnCardMessageOrBuilder>(
                  getDealTurnCardMessage(),
                  getParentForChildren(),
                  isClean());
          dealTurnCardMessage_ = null;
        }
        return dealTurnCardMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.DealRiverCardMessage dealRiverCardMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.DealRiverCardMessage, de.pokerth.protocol.ProtoBuf.DealRiverCardMessage.Builder, de.pokerth.protocol.ProtoBuf.DealRiverCardMessageOrBuilder> dealRiverCardMessageBuilder_;
      /**
       * <code>optional .DealRiverCardMessage dealRiverCardMessage = 48;</code>
       * @return Whether the dealRiverCardMessage field is set.
       */
      public boolean hasDealRiverCardMessage() {
        return ((bitField1_ & 0x00008000) != 0);
      }
      /**
       * <code>optional .DealRiverCardMessage dealRiverCardMessage = 48;</code>
       * @return The dealRiverCardMessage.
       */
      public de.pokerth.protocol.ProtoBuf.DealRiverCardMessage getDealRiverCardMessage() {
        if (dealRiverCardMessageBuilder_ == null) {
          return dealRiverCardMessage_ == null ? de.pokerth.protocol.ProtoBuf.DealRiverCardMessage.getDefaultInstance() : dealRiverCardMessage_;
        } else {
          return dealRiverCardMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .DealRiverCardMessage dealRiverCardMessage = 48;</code>
       */
      public Builder setDealRiverCardMessage(de.pokerth.protocol.ProtoBuf.DealRiverCardMessage value) {
        if (dealRiverCardMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          dealRiverCardMessage_ = value;
        } else {
          dealRiverCardMessageBuilder_.setMessage(value);
        }
        bitField1_ |= 0x00008000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .DealRiverCardMessage dealRiverCardMessage = 48;</code>
       */
      public Builder setDealRiverCardMessage(
          de.pokerth.protocol.ProtoBuf.DealRiverCardMessage.Builder builderForValue) {
        if (dealRiverCardMessageBuilder_ == null) {
          dealRiverCardMessage_ = builderForValue.build();
        } else {
          dealRiverCardMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField1_ |= 0x00008000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .DealRiverCardMessage dealRiverCardMessage = 48;</code>
       */
      public Builder mergeDealRiverCardMessage(de.pokerth.protocol.ProtoBuf.DealRiverCardMessage value) {
        if (dealRiverCardMessageBuilder_ == null) {
          if (((bitField1_ & 0x00008000) != 0) &&
            dealRiverCardMessage_ != null &&
            dealRiverCardMessage_ != de.pokerth.protocol.ProtoBuf.DealRiverCardMessage.getDefaultInstance()) {
            getDealRiverCardMessageBuilder().mergeFrom(value);
          } else {
            dealRiverCardMessage_ = value;
          }
        } else {
          dealRiverCardMessageBuilder_.mergeFrom(value);
        }
        bitField1_ |= 0x00008000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .DealRiverCardMessage dealRiverCardMessage = 48;</code>
       */
      public Builder clearDealRiverCardMessage() {
        bitField1_ = (bitField1_ & ~0x00008000);
        dealRiverCardMessage_ = null;
        if (dealRiverCardMessageBuilder_ != null) {
          dealRiverCardMessageBuilder_.dispose();
          dealRiverCardMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .DealRiverCardMessage dealRiverCardMessage = 48;</code>
       */
      public de.pokerth.protocol.ProtoBuf.DealRiverCardMessage.Builder getDealRiverCardMessageBuilder() {
        bitField1_ |= 0x00008000;
        onChanged();
        return getDealRiverCardMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .DealRiverCardMessage dealRiverCardMessage = 48;</code>
       */
      public de.pokerth.protocol.ProtoBuf.DealRiverCardMessageOrBuilder getDealRiverCardMessageOrBuilder() {
        if (dealRiverCardMessageBuilder_ != null) {
          return dealRiverCardMessageBuilder_.getMessageOrBuilder();
        } else {
          return dealRiverCardMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.DealRiverCardMessage.getDefaultInstance() : dealRiverCardMessage_;
        }
      }
      /**
       * <code>optional .DealRiverCardMessage dealRiverCardMessage = 48;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.DealRiverCardMessage, de.pokerth.protocol.ProtoBuf.DealRiverCardMessage.Builder, de.pokerth.protocol.ProtoBuf.DealRiverCardMessageOrBuilder> 
          getDealRiverCardMessageFieldBuilder() {
        if (dealRiverCardMessageBuilder_ == null) {
          dealRiverCardMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.DealRiverCardMessage, de.pokerth.protocol.ProtoBuf.DealRiverCardMessage.Builder, de.pokerth.protocol.ProtoBuf.DealRiverCardMessageOrBuilder>(
                  getDealRiverCardMessage(),
                  getParentForChildren(),
                  isClean());
          dealRiverCardMessage_ = null;
        }
        return dealRiverCardMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage allInShowCardsMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage, de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.Builder, de.pokerth.protocol.ProtoBuf.AllInShowCardsMessageOrBuilder> allInShowCardsMessageBuilder_;
      /**
       * <code>optional .AllInShowCardsMessage allInShowCardsMessage = 49;</code>
       * @return Whether the allInShowCardsMessage field is set.
       */
      public boolean hasAllInShowCardsMessage() {
        return ((bitField1_ & 0x00010000) != 0);
      }
      /**
       * <code>optional .AllInShowCardsMessage allInShowCardsMessage = 49;</code>
       * @return The allInShowCardsMessage.
       */
      public de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage getAllInShowCardsMessage() {
        if (allInShowCardsMessageBuilder_ == null) {
          return allInShowCardsMessage_ == null ? de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.getDefaultInstance() : allInShowCardsMessage_;
        } else {
          return allInShowCardsMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .AllInShowCardsMessage allInShowCardsMessage = 49;</code>
       */
      public Builder setAllInShowCardsMessage(de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage value) {
        if (allInShowCardsMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          allInShowCardsMessage_ = value;
        } else {
          allInShowCardsMessageBuilder_.setMessage(value);
        }
        bitField1_ |= 0x00010000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .AllInShowCardsMessage allInShowCardsMessage = 49;</code>
       */
      public Builder setAllInShowCardsMessage(
          de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.Builder builderForValue) {
        if (allInShowCardsMessageBuilder_ == null) {
          allInShowCardsMessage_ = builderForValue.build();
        } else {
          allInShowCardsMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField1_ |= 0x00010000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .AllInShowCardsMessage allInShowCardsMessage = 49;</code>
       */
      public Builder mergeAllInShowCardsMessage(de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage value) {
        if (allInShowCardsMessageBuilder_ == null) {
          if (((bitField1_ & 0x00010000) != 0) &&
            allInShowCardsMessage_ != null &&
            allInShowCardsMessage_ != de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.getDefaultInstance()) {
            getAllInShowCardsMessageBuilder().mergeFrom(value);
          } else {
            allInShowCardsMessage_ = value;
          }
        } else {
          allInShowCardsMessageBuilder_.mergeFrom(value);
        }
        bitField1_ |= 0x00010000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .AllInShowCardsMessage allInShowCardsMessage = 49;</code>
       */
      public Builder clearAllInShowCardsMessage() {
        bitField1_ = (bitField1_ & ~0x00010000);
        allInShowCardsMessage_ = null;
        if (allInShowCardsMessageBuilder_ != null) {
          allInShowCardsMessageBuilder_.dispose();
          allInShowCardsMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .AllInShowCardsMessage allInShowCardsMessage = 49;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.Builder getAllInShowCardsMessageBuilder() {
        bitField1_ |= 0x00010000;
        onChanged();
        return getAllInShowCardsMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .AllInShowCardsMessage allInShowCardsMessage = 49;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AllInShowCardsMessageOrBuilder getAllInShowCardsMessageOrBuilder() {
        if (allInShowCardsMessageBuilder_ != null) {
          return allInShowCardsMessageBuilder_.getMessageOrBuilder();
        } else {
          return allInShowCardsMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.getDefaultInstance() : allInShowCardsMessage_;
        }
      }
      /**
       * <code>optional .AllInShowCardsMessage allInShowCardsMessage = 49;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage, de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.Builder, de.pokerth.protocol.ProtoBuf.AllInShowCardsMessageOrBuilder> 
          getAllInShowCardsMessageFieldBuilder() {
        if (allInShowCardsMessageBuilder_ == null) {
          allInShowCardsMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage, de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.Builder, de.pokerth.protocol.ProtoBuf.AllInShowCardsMessageOrBuilder>(
                  getAllInShowCardsMessage(),
                  getParentForChildren(),
                  isClean());
          allInShowCardsMessage_ = null;
        }
        return allInShowCardsMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage endOfHandShowCardsMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage, de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage.Builder, de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessageOrBuilder> endOfHandShowCardsMessageBuilder_;
      /**
       * <code>optional .EndOfHandShowCardsMessage endOfHandShowCardsMessage = 50;</code>
       * @return Whether the endOfHandShowCardsMessage field is set.
       */
      public boolean hasEndOfHandShowCardsMessage() {
        return ((bitField1_ & 0x00020000) != 0);
      }
      /**
       * <code>optional .EndOfHandShowCardsMessage endOfHandShowCardsMessage = 50;</code>
       * @return The endOfHandShowCardsMessage.
       */
      public de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage getEndOfHandShowCardsMessage() {
        if (endOfHandShowCardsMessageBuilder_ == null) {
          return endOfHandShowCardsMessage_ == null ? de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage.getDefaultInstance() : endOfHandShowCardsMessage_;
        } else {
          return endOfHandShowCardsMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .EndOfHandShowCardsMessage endOfHandShowCardsMessage = 50;</code>
       */
      public Builder setEndOfHandShowCardsMessage(de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage value) {
        if (endOfHandShowCardsMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          endOfHandShowCardsMessage_ = value;
        } else {
          endOfHandShowCardsMessageBuilder_.setMessage(value);
        }
        bitField1_ |= 0x00020000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .EndOfHandShowCardsMessage endOfHandShowCardsMessage = 50;</code>
       */
      public Builder setEndOfHandShowCardsMessage(
          de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage.Builder builderForValue) {
        if (endOfHandShowCardsMessageBuilder_ == null) {
          endOfHandShowCardsMessage_ = builderForValue.build();
        } else {
          endOfHandShowCardsMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField1_ |= 0x00020000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .EndOfHandShowCardsMessage endOfHandShowCardsMessage = 50;</code>
       */
      public Builder mergeEndOfHandShowCardsMessage(de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage value) {
        if (endOfHandShowCardsMessageBuilder_ == null) {
          if (((bitField1_ & 0x00020000) != 0) &&
            endOfHandShowCardsMessage_ != null &&
            endOfHandShowCardsMessage_ != de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage.getDefaultInstance()) {
            getEndOfHandShowCardsMessageBuilder().mergeFrom(value);
          } else {
            endOfHandShowCardsMessage_ = value;
          }
        } else {
          endOfHandShowCardsMessageBuilder_.mergeFrom(value);
        }
        bitField1_ |= 0x00020000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .EndOfHandShowCardsMessage endOfHandShowCardsMessage = 50;</code>
       */
      public Builder clearEndOfHandShowCardsMessage() {
        bitField1_ = (bitField1_ & ~0x00020000);
        endOfHandShowCardsMessage_ = null;
        if (endOfHandShowCardsMessageBuilder_ != null) {
          endOfHandShowCardsMessageBuilder_.dispose();
          endOfHandShowCardsMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .EndOfHandShowCardsMessage endOfHandShowCardsMessage = 50;</code>
       */
      public de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage.Builder getEndOfHandShowCardsMessageBuilder() {
        bitField1_ |= 0x00020000;
        onChanged();
        return getEndOfHandShowCardsMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .EndOfHandShowCardsMessage endOfHandShowCardsMessage = 50;</code>
       */
      public de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessageOrBuilder getEndOfHandShowCardsMessageOrBuilder() {
        if (endOfHandShowCardsMessageBuilder_ != null) {
          return endOfHandShowCardsMessageBuilder_.getMessageOrBuilder();
        } else {
          return endOfHandShowCardsMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage.getDefaultInstance() : endOfHandShowCardsMessage_;
        }
      }
      /**
       * <code>optional .EndOfHandShowCardsMessage endOfHandShowCardsMessage = 50;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage, de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage.Builder, de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessageOrBuilder> 
          getEndOfHandShowCardsMessageFieldBuilder() {
        if (endOfHandShowCardsMessageBuilder_ == null) {
          endOfHandShowCardsMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage, de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage.Builder, de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessageOrBuilder>(
                  getEndOfHandShowCardsMessage(),
                  getParentForChildren(),
                  isClean());
          endOfHandShowCardsMessage_ = null;
        }
        return endOfHandShowCardsMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage endOfHandHideCardsMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage, de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage.Builder, de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessageOrBuilder> endOfHandHideCardsMessageBuilder_;
      /**
       * <code>optional .EndOfHandHideCardsMessage endOfHandHideCardsMessage = 51;</code>
       * @return Whether the endOfHandHideCardsMessage field is set.
       */
      public boolean hasEndOfHandHideCardsMessage() {
        return ((bitField1_ & 0x00040000) != 0);
      }
      /**
       * <code>optional .EndOfHandHideCardsMessage endOfHandHideCardsMessage = 51;</code>
       * @return The endOfHandHideCardsMessage.
       */
      public de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage getEndOfHandHideCardsMessage() {
        if (endOfHandHideCardsMessageBuilder_ == null) {
          return endOfHandHideCardsMessage_ == null ? de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage.getDefaultInstance() : endOfHandHideCardsMessage_;
        } else {
          return endOfHandHideCardsMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .EndOfHandHideCardsMessage endOfHandHideCardsMessage = 51;</code>
       */
      public Builder setEndOfHandHideCardsMessage(de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage value) {
        if (endOfHandHideCardsMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          endOfHandHideCardsMessage_ = value;
        } else {
          endOfHandHideCardsMessageBuilder_.setMessage(value);
        }
        bitField1_ |= 0x00040000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .EndOfHandHideCardsMessage endOfHandHideCardsMessage = 51;</code>
       */
      public Builder setEndOfHandHideCardsMessage(
          de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage.Builder builderForValue) {
        if (endOfHandHideCardsMessageBuilder_ == null) {
          endOfHandHideCardsMessage_ = builderForValue.build();
        } else {
          endOfHandHideCardsMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField1_ |= 0x00040000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .EndOfHandHideCardsMessage endOfHandHideCardsMessage = 51;</code>
       */
      public Builder mergeEndOfHandHideCardsMessage(de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage value) {
        if (endOfHandHideCardsMessageBuilder_ == null) {
          if (((bitField1_ & 0x00040000) != 0) &&
            endOfHandHideCardsMessage_ != null &&
            endOfHandHideCardsMessage_ != de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage.getDefaultInstance()) {
            getEndOfHandHideCardsMessageBuilder().mergeFrom(value);
          } else {
            endOfHandHideCardsMessage_ = value;
          }
        } else {
          endOfHandHideCardsMessageBuilder_.mergeFrom(value);
        }
        bitField1_ |= 0x00040000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .EndOfHandHideCardsMessage endOfHandHideCardsMessage = 51;</code>
       */
      public Builder clearEndOfHandHideCardsMessage() {
        bitField1_ = (bitField1_ & ~0x00040000);
        endOfHandHideCardsMessage_ = null;
        if (endOfHandHideCardsMessageBuilder_ != null) {
          endOfHandHideCardsMessageBuilder_.dispose();
          endOfHandHideCardsMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .EndOfHandHideCardsMessage endOfHandHideCardsMessage = 51;</code>
       */
      public de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage.Builder getEndOfHandHideCardsMessageBuilder() {
        bitField1_ |= 0x00040000;
        onChanged();
        return getEndOfHandHideCardsMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .EndOfHandHideCardsMessage endOfHandHideCardsMessage = 51;</code>
       */
      public de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessageOrBuilder getEndOfHandHideCardsMessageOrBuilder() {
        if (endOfHandHideCardsMessageBuilder_ != null) {
          return endOfHandHideCardsMessageBuilder_.getMessageOrBuilder();
        } else {
          return endOfHandHideCardsMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage.getDefaultInstance() : endOfHandHideCardsMessage_;
        }
      }
      /**
       * <code>optional .EndOfHandHideCardsMessage endOfHandHideCardsMessage = 51;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage, de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage.Builder, de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessageOrBuilder> 
          getEndOfHandHideCardsMessageFieldBuilder() {
        if (endOfHandHideCardsMessageBuilder_ == null) {
          endOfHandHideCardsMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage, de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage.Builder, de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessageOrBuilder>(
                  getEndOfHandHideCardsMessage(),
                  getParentForChildren(),
                  isClean());
          endOfHandHideCardsMessage_ = null;
        }
        return endOfHandHideCardsMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage showMyCardsRequestMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage, de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage.Builder, de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessageOrBuilder> showMyCardsRequestMessageBuilder_;
      /**
       * <code>optional .ShowMyCardsRequestMessage showMyCardsRequestMessage = 52;</code>
       * @return Whether the showMyCardsRequestMessage field is set.
       */
      public boolean hasShowMyCardsRequestMessage() {
        return ((bitField1_ & 0x00080000) != 0);
      }
      /**
       * <code>optional .ShowMyCardsRequestMessage showMyCardsRequestMessage = 52;</code>
       * @return The showMyCardsRequestMessage.
       */
      public de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage getShowMyCardsRequestMessage() {
        if (showMyCardsRequestMessageBuilder_ == null) {
          return showMyCardsRequestMessage_ == null ? de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage.getDefaultInstance() : showMyCardsRequestMessage_;
        } else {
          return showMyCardsRequestMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .ShowMyCardsRequestMessage showMyCardsRequestMessage = 52;</code>
       */
      public Builder setShowMyCardsRequestMessage(de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage value) {
        if (showMyCardsRequestMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          showMyCardsRequestMessage_ = value;
        } else {
          showMyCardsRequestMessageBuilder_.setMessage(value);
        }
        bitField1_ |= 0x00080000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .ShowMyCardsRequestMessage showMyCardsRequestMessage = 52;</code>
       */
      public Builder setShowMyCardsRequestMessage(
          de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage.Builder builderForValue) {
        if (showMyCardsRequestMessageBuilder_ == null) {
          showMyCardsRequestMessage_ = builderForValue.build();
        } else {
          showMyCardsRequestMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField1_ |= 0x00080000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .ShowMyCardsRequestMessage showMyCardsRequestMessage = 52;</code>
       */
      public Builder mergeShowMyCardsRequestMessage(de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage value) {
        if (showMyCardsRequestMessageBuilder_ == null) {
          if (((bitField1_ & 0x00080000) != 0) &&
            showMyCardsRequestMessage_ != null &&
            showMyCardsRequestMessage_ != de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage.getDefaultInstance()) {
            getShowMyCardsRequestMessageBuilder().mergeFrom(value);
          } else {
            showMyCardsRequestMessage_ = value;
          }
        } else {
          showMyCardsRequestMessageBuilder_.mergeFrom(value);
        }
        bitField1_ |= 0x00080000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .ShowMyCardsRequestMessage showMyCardsRequestMessage = 52;</code>
       */
      public Builder clearShowMyCardsRequestMessage() {
        bitField1_ = (bitField1_ & ~0x00080000);
        showMyCardsRequestMessage_ = null;
        if (showMyCardsRequestMessageBuilder_ != null) {
          showMyCardsRequestMessageBuilder_.dispose();
          showMyCardsRequestMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .ShowMyCardsRequestMessage showMyCardsRequestMessage = 52;</code>
       */
      public de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage.Builder getShowMyCardsRequestMessageBuilder() {
        bitField1_ |= 0x00080000;
        onChanged();
        return getShowMyCardsRequestMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .ShowMyCardsRequestMessage showMyCardsRequestMessage = 52;</code>
       */
      public de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessageOrBuilder getShowMyCardsRequestMessageOrBuilder() {
        if (showMyCardsRequestMessageBuilder_ != null) {
          return showMyCardsRequestMessageBuilder_.getMessageOrBuilder();
        } else {
          return showMyCardsRequestMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage.getDefaultInstance() : showMyCardsRequestMessage_;
        }
      }
      /**
       * <code>optional .ShowMyCardsRequestMessage showMyCardsRequestMessage = 52;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage, de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage.Builder, de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessageOrBuilder> 
          getShowMyCardsRequestMessageFieldBuilder() {
        if (showMyCardsRequestMessageBuilder_ == null) {
          showMyCardsRequestMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage, de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage.Builder, de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessageOrBuilder>(
                  getShowMyCardsRequestMessage(),
                  getParentForChildren(),
                  isClean());
          showMyCardsRequestMessage_ = null;
        }
        return showMyCardsRequestMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage afterHandShowCardsMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage, de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage.Builder, de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessageOrBuilder> afterHandShowCardsMessageBuilder_;
      /**
       * <code>optional .AfterHandShowCardsMessage afterHandShowCardsMessage = 53;</code>
       * @return Whether the afterHandShowCardsMessage field is set.
       */
      public boolean hasAfterHandShowCardsMessage() {
        return ((bitField1_ & 0x00100000) != 0);
      }
      /**
       * <code>optional .AfterHandShowCardsMessage afterHandShowCardsMessage = 53;</code>
       * @return The afterHandShowCardsMessage.
       */
      public de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage getAfterHandShowCardsMessage() {
        if (afterHandShowCardsMessageBuilder_ == null) {
          return afterHandShowCardsMessage_ == null ? de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage.getDefaultInstance() : afterHandShowCardsMessage_;
        } else {
          return afterHandShowCardsMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .AfterHandShowCardsMessage afterHandShowCardsMessage = 53;</code>
       */
      public Builder setAfterHandShowCardsMessage(de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage value) {
        if (afterHandShowCardsMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          afterHandShowCardsMessage_ = value;
        } else {
          afterHandShowCardsMessageBuilder_.setMessage(value);
        }
        bitField1_ |= 0x00100000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .AfterHandShowCardsMessage afterHandShowCardsMessage = 53;</code>
       */
      public Builder setAfterHandShowCardsMessage(
          de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage.Builder builderForValue) {
        if (afterHandShowCardsMessageBuilder_ == null) {
          afterHandShowCardsMessage_ = builderForValue.build();
        } else {
          afterHandShowCardsMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField1_ |= 0x00100000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .AfterHandShowCardsMessage afterHandShowCardsMessage = 53;</code>
       */
      public Builder mergeAfterHandShowCardsMessage(de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage value) {
        if (afterHandShowCardsMessageBuilder_ == null) {
          if (((bitField1_ & 0x00100000) != 0) &&
            afterHandShowCardsMessage_ != null &&
            afterHandShowCardsMessage_ != de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage.getDefaultInstance()) {
            getAfterHandShowCardsMessageBuilder().mergeFrom(value);
          } else {
            afterHandShowCardsMessage_ = value;
          }
        } else {
          afterHandShowCardsMessageBuilder_.mergeFrom(value);
        }
        bitField1_ |= 0x00100000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .AfterHandShowCardsMessage afterHandShowCardsMessage = 53;</code>
       */
      public Builder clearAfterHandShowCardsMessage() {
        bitField1_ = (bitField1_ & ~0x00100000);
        afterHandShowCardsMessage_ = null;
        if (afterHandShowCardsMessageBuilder_ != null) {
          afterHandShowCardsMessageBuilder_.dispose();
          afterHandShowCardsMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .AfterHandShowCardsMessage afterHandShowCardsMessage = 53;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage.Builder getAfterHandShowCardsMessageBuilder() {
        bitField1_ |= 0x00100000;
        onChanged();
        return getAfterHandShowCardsMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .AfterHandShowCardsMessage afterHandShowCardsMessage = 53;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessageOrBuilder getAfterHandShowCardsMessageOrBuilder() {
        if (afterHandShowCardsMessageBuilder_ != null) {
          return afterHandShowCardsMessageBuilder_.getMessageOrBuilder();
        } else {
          return afterHandShowCardsMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage.getDefaultInstance() : afterHandShowCardsMessage_;
        }
      }
      /**
       * <code>optional .AfterHandShowCardsMessage afterHandShowCardsMessage = 53;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage, de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage.Builder, de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessageOrBuilder> 
          getAfterHandShowCardsMessageFieldBuilder() {
        if (afterHandShowCardsMessageBuilder_ == null) {
          afterHandShowCardsMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage, de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage.Builder, de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessageOrBuilder>(
                  getAfterHandShowCardsMessage(),
                  getParentForChildren(),
                  isClean());
          afterHandShowCardsMessage_ = null;
        }
        return afterHandShowCardsMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.EndOfGameMessage endOfGameMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.EndOfGameMessage, de.pokerth.protocol.ProtoBuf.EndOfGameMessage.Builder, de.pokerth.protocol.ProtoBuf.EndOfGameMessageOrBuilder> endOfGameMessageBuilder_;
      /**
       * <code>optional .EndOfGameMessage endOfGameMessage = 54;</code>
       * @return Whether the endOfGameMessage field is set.
       */
      public boolean hasEndOfGameMessage() {
        return ((bitField1_ & 0x00200000) != 0);
      }
      /**
       * <code>optional .EndOfGameMessage endOfGameMessage = 54;</code>
       * @return The endOfGameMessage.
       */
      public de.pokerth.protocol.ProtoBuf.EndOfGameMessage getEndOfGameMessage() {
        if (endOfGameMessageBuilder_ == null) {
          return endOfGameMessage_ == null ? de.pokerth.protocol.ProtoBuf.EndOfGameMessage.getDefaultInstance() : endOfGameMessage_;
        } else {
          return endOfGameMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .EndOfGameMessage endOfGameMessage = 54;</code>
       */
      public Builder setEndOfGameMessage(de.pokerth.protocol.ProtoBuf.EndOfGameMessage value) {
        if (endOfGameMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          endOfGameMessage_ = value;
        } else {
          endOfGameMessageBuilder_.setMessage(value);
        }
        bitField1_ |= 0x00200000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .EndOfGameMessage endOfGameMessage = 54;</code>
       */
      public Builder setEndOfGameMessage(
          de.pokerth.protocol.ProtoBuf.EndOfGameMessage.Builder builderForValue) {
        if (endOfGameMessageBuilder_ == null) {
          endOfGameMessage_ = builderForValue.build();
        } else {
          endOfGameMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField1_ |= 0x00200000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .EndOfGameMessage endOfGameMessage = 54;</code>
       */
      public Builder mergeEndOfGameMessage(de.pokerth.protocol.ProtoBuf.EndOfGameMessage value) {
        if (endOfGameMessageBuilder_ == null) {
          if (((bitField1_ & 0x00200000) != 0) &&
            endOfGameMessage_ != null &&
            endOfGameMessage_ != de.pokerth.protocol.ProtoBuf.EndOfGameMessage.getDefaultInstance()) {
            getEndOfGameMessageBuilder().mergeFrom(value);
          } else {
            endOfGameMessage_ = value;
          }
        } else {
          endOfGameMessageBuilder_.mergeFrom(value);
        }
        bitField1_ |= 0x00200000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .EndOfGameMessage endOfGameMessage = 54;</code>
       */
      public Builder clearEndOfGameMessage() {
        bitField1_ = (bitField1_ & ~0x00200000);
        endOfGameMessage_ = null;
        if (endOfGameMessageBuilder_ != null) {
          endOfGameMessageBuilder_.dispose();
          endOfGameMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .EndOfGameMessage endOfGameMessage = 54;</code>
       */
      public de.pokerth.protocol.ProtoBuf.EndOfGameMessage.Builder getEndOfGameMessageBuilder() {
        bitField1_ |= 0x00200000;
        onChanged();
        return getEndOfGameMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .EndOfGameMessage endOfGameMessage = 54;</code>
       */
      public de.pokerth.protocol.ProtoBuf.EndOfGameMessageOrBuilder getEndOfGameMessageOrBuilder() {
        if (endOfGameMessageBuilder_ != null) {
          return endOfGameMessageBuilder_.getMessageOrBuilder();
        } else {
          return endOfGameMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.EndOfGameMessage.getDefaultInstance() : endOfGameMessage_;
        }
      }
      /**
       * <code>optional .EndOfGameMessage endOfGameMessage = 54;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.EndOfGameMessage, de.pokerth.protocol.ProtoBuf.EndOfGameMessage.Builder, de.pokerth.protocol.ProtoBuf.EndOfGameMessageOrBuilder> 
          getEndOfGameMessageFieldBuilder() {
        if (endOfGameMessageBuilder_ == null) {
          endOfGameMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.EndOfGameMessage, de.pokerth.protocol.ProtoBuf.EndOfGameMessage.Builder, de.pokerth.protocol.ProtoBuf.EndOfGameMessageOrBuilder>(
                  getEndOfGameMessage(),
                  getParentForChildren(),
                  isClean());
          endOfGameMessage_ = null;
        }
        return endOfGameMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage playerIdChangedMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage, de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage.Builder, de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessageOrBuilder> playerIdChangedMessageBuilder_;
      /**
       * <code>optional .PlayerIdChangedMessage playerIdChangedMessage = 55;</code>
       * @return Whether the playerIdChangedMessage field is set.
       */
      public boolean hasPlayerIdChangedMessage() {
        return ((bitField1_ & 0x00400000) != 0);
      }
      /**
       * <code>optional .PlayerIdChangedMessage playerIdChangedMessage = 55;</code>
       * @return The playerIdChangedMessage.
       */
      public de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage getPlayerIdChangedMessage() {
        if (playerIdChangedMessageBuilder_ == null) {
          return playerIdChangedMessage_ == null ? de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage.getDefaultInstance() : playerIdChangedMessage_;
        } else {
          return playerIdChangedMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .PlayerIdChangedMessage playerIdChangedMessage = 55;</code>
       */
      public Builder setPlayerIdChangedMessage(de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage value) {
        if (playerIdChangedMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          playerIdChangedMessage_ = value;
        } else {
          playerIdChangedMessageBuilder_.setMessage(value);
        }
        bitField1_ |= 0x00400000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .PlayerIdChangedMessage playerIdChangedMessage = 55;</code>
       */
      public Builder setPlayerIdChangedMessage(
          de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage.Builder builderForValue) {
        if (playerIdChangedMessageBuilder_ == null) {
          playerIdChangedMessage_ = builderForValue.build();
        } else {
          playerIdChangedMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField1_ |= 0x00400000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .PlayerIdChangedMessage playerIdChangedMessage = 55;</code>
       */
      public Builder mergePlayerIdChangedMessage(de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage value) {
        if (playerIdChangedMessageBuilder_ == null) {
          if (((bitField1_ & 0x00400000) != 0) &&
            playerIdChangedMessage_ != null &&
            playerIdChangedMessage_ != de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage.getDefaultInstance()) {
            getPlayerIdChangedMessageBuilder().mergeFrom(value);
          } else {
            playerIdChangedMessage_ = value;
          }
        } else {
          playerIdChangedMessageBuilder_.mergeFrom(value);
        }
        bitField1_ |= 0x00400000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .PlayerIdChangedMessage playerIdChangedMessage = 55;</code>
       */
      public Builder clearPlayerIdChangedMessage() {
        bitField1_ = (bitField1_ & ~0x00400000);
        playerIdChangedMessage_ = null;
        if (playerIdChangedMessageBuilder_ != null) {
          playerIdChangedMessageBuilder_.dispose();
          playerIdChangedMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .PlayerIdChangedMessage playerIdChangedMessage = 55;</code>
       */
      public de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage.Builder getPlayerIdChangedMessageBuilder() {
        bitField1_ |= 0x00400000;
        onChanged();
        return getPlayerIdChangedMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .PlayerIdChangedMessage playerIdChangedMessage = 55;</code>
       */
      public de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessageOrBuilder getPlayerIdChangedMessageOrBuilder() {
        if (playerIdChangedMessageBuilder_ != null) {
          return playerIdChangedMessageBuilder_.getMessageOrBuilder();
        } else {
          return playerIdChangedMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage.getDefaultInstance() : playerIdChangedMessage_;
        }
      }
      /**
       * <code>optional .PlayerIdChangedMessage playerIdChangedMessage = 55;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage, de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage.Builder, de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessageOrBuilder> 
          getPlayerIdChangedMessageFieldBuilder() {
        if (playerIdChangedMessageBuilder_ == null) {
          playerIdChangedMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage, de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage.Builder, de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessageOrBuilder>(
                  getPlayerIdChangedMessage(),
                  getParentForChildren(),
                  isClean());
          playerIdChangedMessage_ = null;
        }
        return playerIdChangedMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage askKickPlayerMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage, de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage.Builder, de.pokerth.protocol.ProtoBuf.AskKickPlayerMessageOrBuilder> askKickPlayerMessageBuilder_;
      /**
       * <code>optional .AskKickPlayerMessage askKickPlayerMessage = 56;</code>
       * @return Whether the askKickPlayerMessage field is set.
       */
      public boolean hasAskKickPlayerMessage() {
        return ((bitField1_ & 0x00800000) != 0);
      }
      /**
       * <code>optional .AskKickPlayerMessage askKickPlayerMessage = 56;</code>
       * @return The askKickPlayerMessage.
       */
      public de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage getAskKickPlayerMessage() {
        if (askKickPlayerMessageBuilder_ == null) {
          return askKickPlayerMessage_ == null ? de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage.getDefaultInstance() : askKickPlayerMessage_;
        } else {
          return askKickPlayerMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .AskKickPlayerMessage askKickPlayerMessage = 56;</code>
       */
      public Builder setAskKickPlayerMessage(de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage value) {
        if (askKickPlayerMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          askKickPlayerMessage_ = value;
        } else {
          askKickPlayerMessageBuilder_.setMessage(value);
        }
        bitField1_ |= 0x00800000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .AskKickPlayerMessage askKickPlayerMessage = 56;</code>
       */
      public Builder setAskKickPlayerMessage(
          de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage.Builder builderForValue) {
        if (askKickPlayerMessageBuilder_ == null) {
          askKickPlayerMessage_ = builderForValue.build();
        } else {
          askKickPlayerMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField1_ |= 0x00800000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .AskKickPlayerMessage askKickPlayerMessage = 56;</code>
       */
      public Builder mergeAskKickPlayerMessage(de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage value) {
        if (askKickPlayerMessageBuilder_ == null) {
          if (((bitField1_ & 0x00800000) != 0) &&
            askKickPlayerMessage_ != null &&
            askKickPlayerMessage_ != de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage.getDefaultInstance()) {
            getAskKickPlayerMessageBuilder().mergeFrom(value);
          } else {
            askKickPlayerMessage_ = value;
          }
        } else {
          askKickPlayerMessageBuilder_.mergeFrom(value);
        }
        bitField1_ |= 0x00800000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .AskKickPlayerMessage askKickPlayerMessage = 56;</code>
       */
      public Builder clearAskKickPlayerMessage() {
        bitField1_ = (bitField1_ & ~0x00800000);
        askKickPlayerMessage_ = null;
        if (askKickPlayerMessageBuilder_ != null) {
          askKickPlayerMessageBuilder_.dispose();
          askKickPlayerMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .AskKickPlayerMessage askKickPlayerMessage = 56;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage.Builder getAskKickPlayerMessageBuilder() {
        bitField1_ |= 0x00800000;
        onChanged();
        return getAskKickPlayerMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .AskKickPlayerMessage askKickPlayerMessage = 56;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AskKickPlayerMessageOrBuilder getAskKickPlayerMessageOrBuilder() {
        if (askKickPlayerMessageBuilder_ != null) {
          return askKickPlayerMessageBuilder_.getMessageOrBuilder();
        } else {
          return askKickPlayerMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage.getDefaultInstance() : askKickPlayerMessage_;
        }
      }
      /**
       * <code>optional .AskKickPlayerMessage askKickPlayerMessage = 56;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage, de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage.Builder, de.pokerth.protocol.ProtoBuf.AskKickPlayerMessageOrBuilder> 
          getAskKickPlayerMessageFieldBuilder() {
        if (askKickPlayerMessageBuilder_ == null) {
          askKickPlayerMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage, de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage.Builder, de.pokerth.protocol.ProtoBuf.AskKickPlayerMessageOrBuilder>(
                  getAskKickPlayerMessage(),
                  getParentForChildren(),
                  isClean());
          askKickPlayerMessage_ = null;
        }
        return askKickPlayerMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage askKickDeniedMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage, de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.Builder, de.pokerth.protocol.ProtoBuf.AskKickDeniedMessageOrBuilder> askKickDeniedMessageBuilder_;
      /**
       * <code>optional .AskKickDeniedMessage askKickDeniedMessage = 57;</code>
       * @return Whether the askKickDeniedMessage field is set.
       */
      public boolean hasAskKickDeniedMessage() {
        return ((bitField1_ & 0x01000000) != 0);
      }
      /**
       * <code>optional .AskKickDeniedMessage askKickDeniedMessage = 57;</code>
       * @return The askKickDeniedMessage.
       */
      public de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage getAskKickDeniedMessage() {
        if (askKickDeniedMessageBuilder_ == null) {
          return askKickDeniedMessage_ == null ? de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.getDefaultInstance() : askKickDeniedMessage_;
        } else {
          return askKickDeniedMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .AskKickDeniedMessage askKickDeniedMessage = 57;</code>
       */
      public Builder setAskKickDeniedMessage(de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage value) {
        if (askKickDeniedMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          askKickDeniedMessage_ = value;
        } else {
          askKickDeniedMessageBuilder_.setMessage(value);
        }
        bitField1_ |= 0x01000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .AskKickDeniedMessage askKickDeniedMessage = 57;</code>
       */
      public Builder setAskKickDeniedMessage(
          de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.Builder builderForValue) {
        if (askKickDeniedMessageBuilder_ == null) {
          askKickDeniedMessage_ = builderForValue.build();
        } else {
          askKickDeniedMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField1_ |= 0x01000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .AskKickDeniedMessage askKickDeniedMessage = 57;</code>
       */
      public Builder mergeAskKickDeniedMessage(de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage value) {
        if (askKickDeniedMessageBuilder_ == null) {
          if (((bitField1_ & 0x01000000) != 0) &&
            askKickDeniedMessage_ != null &&
            askKickDeniedMessage_ != de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.getDefaultInstance()) {
            getAskKickDeniedMessageBuilder().mergeFrom(value);
          } else {
            askKickDeniedMessage_ = value;
          }
        } else {
          askKickDeniedMessageBuilder_.mergeFrom(value);
        }
        bitField1_ |= 0x01000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .AskKickDeniedMessage askKickDeniedMessage = 57;</code>
       */
      public Builder clearAskKickDeniedMessage() {
        bitField1_ = (bitField1_ & ~0x01000000);
        askKickDeniedMessage_ = null;
        if (askKickDeniedMessageBuilder_ != null) {
          askKickDeniedMessageBuilder_.dispose();
          askKickDeniedMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .AskKickDeniedMessage askKickDeniedMessage = 57;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.Builder getAskKickDeniedMessageBuilder() {
        bitField1_ |= 0x01000000;
        onChanged();
        return getAskKickDeniedMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .AskKickDeniedMessage askKickDeniedMessage = 57;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AskKickDeniedMessageOrBuilder getAskKickDeniedMessageOrBuilder() {
        if (askKickDeniedMessageBuilder_ != null) {
          return askKickDeniedMessageBuilder_.getMessageOrBuilder();
        } else {
          return askKickDeniedMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.getDefaultInstance() : askKickDeniedMessage_;
        }
      }
      /**
       * <code>optional .AskKickDeniedMessage askKickDeniedMessage = 57;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage, de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.Builder, de.pokerth.protocol.ProtoBuf.AskKickDeniedMessageOrBuilder> 
          getAskKickDeniedMessageFieldBuilder() {
        if (askKickDeniedMessageBuilder_ == null) {
          askKickDeniedMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage, de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.Builder, de.pokerth.protocol.ProtoBuf.AskKickDeniedMessageOrBuilder>(
                  getAskKickDeniedMessage(),
                  getParentForChildren(),
                  isClean());
          askKickDeniedMessage_ = null;
        }
        return askKickDeniedMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage startKickPetitionMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage, de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage.Builder, de.pokerth.protocol.ProtoBuf.StartKickPetitionMessageOrBuilder> startKickPetitionMessageBuilder_;
      /**
       * <code>optional .StartKickPetitionMessage startKickPetitionMessage = 58;</code>
       * @return Whether the startKickPetitionMessage field is set.
       */
      public boolean hasStartKickPetitionMessage() {
        return ((bitField1_ & 0x02000000) != 0);
      }
      /**
       * <code>optional .StartKickPetitionMessage startKickPetitionMessage = 58;</code>
       * @return The startKickPetitionMessage.
       */
      public de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage getStartKickPetitionMessage() {
        if (startKickPetitionMessageBuilder_ == null) {
          return startKickPetitionMessage_ == null ? de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage.getDefaultInstance() : startKickPetitionMessage_;
        } else {
          return startKickPetitionMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .StartKickPetitionMessage startKickPetitionMessage = 58;</code>
       */
      public Builder setStartKickPetitionMessage(de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage value) {
        if (startKickPetitionMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          startKickPetitionMessage_ = value;
        } else {
          startKickPetitionMessageBuilder_.setMessage(value);
        }
        bitField1_ |= 0x02000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .StartKickPetitionMessage startKickPetitionMessage = 58;</code>
       */
      public Builder setStartKickPetitionMessage(
          de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage.Builder builderForValue) {
        if (startKickPetitionMessageBuilder_ == null) {
          startKickPetitionMessage_ = builderForValue.build();
        } else {
          startKickPetitionMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField1_ |= 0x02000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .StartKickPetitionMessage startKickPetitionMessage = 58;</code>
       */
      public Builder mergeStartKickPetitionMessage(de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage value) {
        if (startKickPetitionMessageBuilder_ == null) {
          if (((bitField1_ & 0x02000000) != 0) &&
            startKickPetitionMessage_ != null &&
            startKickPetitionMessage_ != de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage.getDefaultInstance()) {
            getStartKickPetitionMessageBuilder().mergeFrom(value);
          } else {
            startKickPetitionMessage_ = value;
          }
        } else {
          startKickPetitionMessageBuilder_.mergeFrom(value);
        }
        bitField1_ |= 0x02000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .StartKickPetitionMessage startKickPetitionMessage = 58;</code>
       */
      public Builder clearStartKickPetitionMessage() {
        bitField1_ = (bitField1_ & ~0x02000000);
        startKickPetitionMessage_ = null;
        if (startKickPetitionMessageBuilder_ != null) {
          startKickPetitionMessageBuilder_.dispose();
          startKickPetitionMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .StartKickPetitionMessage startKickPetitionMessage = 58;</code>
       */
      public de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage.Builder getStartKickPetitionMessageBuilder() {
        bitField1_ |= 0x02000000;
        onChanged();
        return getStartKickPetitionMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .StartKickPetitionMessage startKickPetitionMessage = 58;</code>
       */
      public de.pokerth.protocol.ProtoBuf.StartKickPetitionMessageOrBuilder getStartKickPetitionMessageOrBuilder() {
        if (startKickPetitionMessageBuilder_ != null) {
          return startKickPetitionMessageBuilder_.getMessageOrBuilder();
        } else {
          return startKickPetitionMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage.getDefaultInstance() : startKickPetitionMessage_;
        }
      }
      /**
       * <code>optional .StartKickPetitionMessage startKickPetitionMessage = 58;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage, de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage.Builder, de.pokerth.protocol.ProtoBuf.StartKickPetitionMessageOrBuilder> 
          getStartKickPetitionMessageFieldBuilder() {
        if (startKickPetitionMessageBuilder_ == null) {
          startKickPetitionMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage, de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage.Builder, de.pokerth.protocol.ProtoBuf.StartKickPetitionMessageOrBuilder>(
                  getStartKickPetitionMessage(),
                  getParentForChildren(),
                  isClean());
          startKickPetitionMessage_ = null;
        }
        return startKickPetitionMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage voteKickRequestMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage, de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage.Builder, de.pokerth.protocol.ProtoBuf.VoteKickRequestMessageOrBuilder> voteKickRequestMessageBuilder_;
      /**
       * <code>optional .VoteKickRequestMessage voteKickRequestMessage = 59;</code>
       * @return Whether the voteKickRequestMessage field is set.
       */
      public boolean hasVoteKickRequestMessage() {
        return ((bitField1_ & 0x04000000) != 0);
      }
      /**
       * <code>optional .VoteKickRequestMessage voteKickRequestMessage = 59;</code>
       * @return The voteKickRequestMessage.
       */
      public de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage getVoteKickRequestMessage() {
        if (voteKickRequestMessageBuilder_ == null) {
          return voteKickRequestMessage_ == null ? de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage.getDefaultInstance() : voteKickRequestMessage_;
        } else {
          return voteKickRequestMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .VoteKickRequestMessage voteKickRequestMessage = 59;</code>
       */
      public Builder setVoteKickRequestMessage(de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage value) {
        if (voteKickRequestMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          voteKickRequestMessage_ = value;
        } else {
          voteKickRequestMessageBuilder_.setMessage(value);
        }
        bitField1_ |= 0x04000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .VoteKickRequestMessage voteKickRequestMessage = 59;</code>
       */
      public Builder setVoteKickRequestMessage(
          de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage.Builder builderForValue) {
        if (voteKickRequestMessageBuilder_ == null) {
          voteKickRequestMessage_ = builderForValue.build();
        } else {
          voteKickRequestMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField1_ |= 0x04000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .VoteKickRequestMessage voteKickRequestMessage = 59;</code>
       */
      public Builder mergeVoteKickRequestMessage(de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage value) {
        if (voteKickRequestMessageBuilder_ == null) {
          if (((bitField1_ & 0x04000000) != 0) &&
            voteKickRequestMessage_ != null &&
            voteKickRequestMessage_ != de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage.getDefaultInstance()) {
            getVoteKickRequestMessageBuilder().mergeFrom(value);
          } else {
            voteKickRequestMessage_ = value;
          }
        } else {
          voteKickRequestMessageBuilder_.mergeFrom(value);
        }
        bitField1_ |= 0x04000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .VoteKickRequestMessage voteKickRequestMessage = 59;</code>
       */
      public Builder clearVoteKickRequestMessage() {
        bitField1_ = (bitField1_ & ~0x04000000);
        voteKickRequestMessage_ = null;
        if (voteKickRequestMessageBuilder_ != null) {
          voteKickRequestMessageBuilder_.dispose();
          voteKickRequestMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .VoteKickRequestMessage voteKickRequestMessage = 59;</code>
       */
      public de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage.Builder getVoteKickRequestMessageBuilder() {
        bitField1_ |= 0x04000000;
        onChanged();
        return getVoteKickRequestMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .VoteKickRequestMessage voteKickRequestMessage = 59;</code>
       */
      public de.pokerth.protocol.ProtoBuf.VoteKickRequestMessageOrBuilder getVoteKickRequestMessageOrBuilder() {
        if (voteKickRequestMessageBuilder_ != null) {
          return voteKickRequestMessageBuilder_.getMessageOrBuilder();
        } else {
          return voteKickRequestMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage.getDefaultInstance() : voteKickRequestMessage_;
        }
      }
      /**
       * <code>optional .VoteKickRequestMessage voteKickRequestMessage = 59;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage, de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage.Builder, de.pokerth.protocol.ProtoBuf.VoteKickRequestMessageOrBuilder> 
          getVoteKickRequestMessageFieldBuilder() {
        if (voteKickRequestMessageBuilder_ == null) {
          voteKickRequestMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage, de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage.Builder, de.pokerth.protocol.ProtoBuf.VoteKickRequestMessageOrBuilder>(
                  getVoteKickRequestMessage(),
                  getParentForChildren(),
                  isClean());
          voteKickRequestMessage_ = null;
        }
        return voteKickRequestMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage voteKickReplyMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage, de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.Builder, de.pokerth.protocol.ProtoBuf.VoteKickReplyMessageOrBuilder> voteKickReplyMessageBuilder_;
      /**
       * <code>optional .VoteKickReplyMessage voteKickReplyMessage = 60;</code>
       * @return Whether the voteKickReplyMessage field is set.
       */
      public boolean hasVoteKickReplyMessage() {
        return ((bitField1_ & 0x08000000) != 0);
      }
      /**
       * <code>optional .VoteKickReplyMessage voteKickReplyMessage = 60;</code>
       * @return The voteKickReplyMessage.
       */
      public de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage getVoteKickReplyMessage() {
        if (voteKickReplyMessageBuilder_ == null) {
          return voteKickReplyMessage_ == null ? de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.getDefaultInstance() : voteKickReplyMessage_;
        } else {
          return voteKickReplyMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .VoteKickReplyMessage voteKickReplyMessage = 60;</code>
       */
      public Builder setVoteKickReplyMessage(de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage value) {
        if (voteKickReplyMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          voteKickReplyMessage_ = value;
        } else {
          voteKickReplyMessageBuilder_.setMessage(value);
        }
        bitField1_ |= 0x08000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .VoteKickReplyMessage voteKickReplyMessage = 60;</code>
       */
      public Builder setVoteKickReplyMessage(
          de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.Builder builderForValue) {
        if (voteKickReplyMessageBuilder_ == null) {
          voteKickReplyMessage_ = builderForValue.build();
        } else {
          voteKickReplyMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField1_ |= 0x08000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .VoteKickReplyMessage voteKickReplyMessage = 60;</code>
       */
      public Builder mergeVoteKickReplyMessage(de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage value) {
        if (voteKickReplyMessageBuilder_ == null) {
          if (((bitField1_ & 0x08000000) != 0) &&
            voteKickReplyMessage_ != null &&
            voteKickReplyMessage_ != de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.getDefaultInstance()) {
            getVoteKickReplyMessageBuilder().mergeFrom(value);
          } else {
            voteKickReplyMessage_ = value;
          }
        } else {
          voteKickReplyMessageBuilder_.mergeFrom(value);
        }
        bitField1_ |= 0x08000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .VoteKickReplyMessage voteKickReplyMessage = 60;</code>
       */
      public Builder clearVoteKickReplyMessage() {
        bitField1_ = (bitField1_ & ~0x08000000);
        voteKickReplyMessage_ = null;
        if (voteKickReplyMessageBuilder_ != null) {
          voteKickReplyMessageBuilder_.dispose();
          voteKickReplyMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .VoteKickReplyMessage voteKickReplyMessage = 60;</code>
       */
      public de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.Builder getVoteKickReplyMessageBuilder() {
        bitField1_ |= 0x08000000;
        onChanged();
        return getVoteKickReplyMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .VoteKickReplyMessage voteKickReplyMessage = 60;</code>
       */
      public de.pokerth.protocol.ProtoBuf.VoteKickReplyMessageOrBuilder getVoteKickReplyMessageOrBuilder() {
        if (voteKickReplyMessageBuilder_ != null) {
          return voteKickReplyMessageBuilder_.getMessageOrBuilder();
        } else {
          return voteKickReplyMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.getDefaultInstance() : voteKickReplyMessage_;
        }
      }
      /**
       * <code>optional .VoteKickReplyMessage voteKickReplyMessage = 60;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage, de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.Builder, de.pokerth.protocol.ProtoBuf.VoteKickReplyMessageOrBuilder> 
          getVoteKickReplyMessageFieldBuilder() {
        if (voteKickReplyMessageBuilder_ == null) {
          voteKickReplyMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage, de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.Builder, de.pokerth.protocol.ProtoBuf.VoteKickReplyMessageOrBuilder>(
                  getVoteKickReplyMessage(),
                  getParentForChildren(),
                  isClean());
          voteKickReplyMessage_ = null;
        }
        return voteKickReplyMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage kickPetitionUpdateMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage, de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage.Builder, de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessageOrBuilder> kickPetitionUpdateMessageBuilder_;
      /**
       * <code>optional .KickPetitionUpdateMessage kickPetitionUpdateMessage = 61;</code>
       * @return Whether the kickPetitionUpdateMessage field is set.
       */
      public boolean hasKickPetitionUpdateMessage() {
        return ((bitField1_ & 0x10000000) != 0);
      }
      /**
       * <code>optional .KickPetitionUpdateMessage kickPetitionUpdateMessage = 61;</code>
       * @return The kickPetitionUpdateMessage.
       */
      public de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage getKickPetitionUpdateMessage() {
        if (kickPetitionUpdateMessageBuilder_ == null) {
          return kickPetitionUpdateMessage_ == null ? de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage.getDefaultInstance() : kickPetitionUpdateMessage_;
        } else {
          return kickPetitionUpdateMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .KickPetitionUpdateMessage kickPetitionUpdateMessage = 61;</code>
       */
      public Builder setKickPetitionUpdateMessage(de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage value) {
        if (kickPetitionUpdateMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          kickPetitionUpdateMessage_ = value;
        } else {
          kickPetitionUpdateMessageBuilder_.setMessage(value);
        }
        bitField1_ |= 0x10000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .KickPetitionUpdateMessage kickPetitionUpdateMessage = 61;</code>
       */
      public Builder setKickPetitionUpdateMessage(
          de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage.Builder builderForValue) {
        if (kickPetitionUpdateMessageBuilder_ == null) {
          kickPetitionUpdateMessage_ = builderForValue.build();
        } else {
          kickPetitionUpdateMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField1_ |= 0x10000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .KickPetitionUpdateMessage kickPetitionUpdateMessage = 61;</code>
       */
      public Builder mergeKickPetitionUpdateMessage(de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage value) {
        if (kickPetitionUpdateMessageBuilder_ == null) {
          if (((bitField1_ & 0x10000000) != 0) &&
            kickPetitionUpdateMessage_ != null &&
            kickPetitionUpdateMessage_ != de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage.getDefaultInstance()) {
            getKickPetitionUpdateMessageBuilder().mergeFrom(value);
          } else {
            kickPetitionUpdateMessage_ = value;
          }
        } else {
          kickPetitionUpdateMessageBuilder_.mergeFrom(value);
        }
        bitField1_ |= 0x10000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .KickPetitionUpdateMessage kickPetitionUpdateMessage = 61;</code>
       */
      public Builder clearKickPetitionUpdateMessage() {
        bitField1_ = (bitField1_ & ~0x10000000);
        kickPetitionUpdateMessage_ = null;
        if (kickPetitionUpdateMessageBuilder_ != null) {
          kickPetitionUpdateMessageBuilder_.dispose();
          kickPetitionUpdateMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .KickPetitionUpdateMessage kickPetitionUpdateMessage = 61;</code>
       */
      public de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage.Builder getKickPetitionUpdateMessageBuilder() {
        bitField1_ |= 0x10000000;
        onChanged();
        return getKickPetitionUpdateMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .KickPetitionUpdateMessage kickPetitionUpdateMessage = 61;</code>
       */
      public de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessageOrBuilder getKickPetitionUpdateMessageOrBuilder() {
        if (kickPetitionUpdateMessageBuilder_ != null) {
          return kickPetitionUpdateMessageBuilder_.getMessageOrBuilder();
        } else {
          return kickPetitionUpdateMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage.getDefaultInstance() : kickPetitionUpdateMessage_;
        }
      }
      /**
       * <code>optional .KickPetitionUpdateMessage kickPetitionUpdateMessage = 61;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage, de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage.Builder, de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessageOrBuilder> 
          getKickPetitionUpdateMessageFieldBuilder() {
        if (kickPetitionUpdateMessageBuilder_ == null) {
          kickPetitionUpdateMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage, de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage.Builder, de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessageOrBuilder>(
                  getKickPetitionUpdateMessage(),
                  getParentForChildren(),
                  isClean());
          kickPetitionUpdateMessage_ = null;
        }
        return kickPetitionUpdateMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage endKickPetitionMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage, de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.Builder, de.pokerth.protocol.ProtoBuf.EndKickPetitionMessageOrBuilder> endKickPetitionMessageBuilder_;
      /**
       * <code>optional .EndKickPetitionMessage endKickPetitionMessage = 62;</code>
       * @return Whether the endKickPetitionMessage field is set.
       */
      public boolean hasEndKickPetitionMessage() {
        return ((bitField1_ & 0x20000000) != 0);
      }
      /**
       * <code>optional .EndKickPetitionMessage endKickPetitionMessage = 62;</code>
       * @return The endKickPetitionMessage.
       */
      public de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage getEndKickPetitionMessage() {
        if (endKickPetitionMessageBuilder_ == null) {
          return endKickPetitionMessage_ == null ? de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.getDefaultInstance() : endKickPetitionMessage_;
        } else {
          return endKickPetitionMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .EndKickPetitionMessage endKickPetitionMessage = 62;</code>
       */
      public Builder setEndKickPetitionMessage(de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage value) {
        if (endKickPetitionMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          endKickPetitionMessage_ = value;
        } else {
          endKickPetitionMessageBuilder_.setMessage(value);
        }
        bitField1_ |= 0x20000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .EndKickPetitionMessage endKickPetitionMessage = 62;</code>
       */
      public Builder setEndKickPetitionMessage(
          de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.Builder builderForValue) {
        if (endKickPetitionMessageBuilder_ == null) {
          endKickPetitionMessage_ = builderForValue.build();
        } else {
          endKickPetitionMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField1_ |= 0x20000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .EndKickPetitionMessage endKickPetitionMessage = 62;</code>
       */
      public Builder mergeEndKickPetitionMessage(de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage value) {
        if (endKickPetitionMessageBuilder_ == null) {
          if (((bitField1_ & 0x20000000) != 0) &&
            endKickPetitionMessage_ != null &&
            endKickPetitionMessage_ != de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.getDefaultInstance()) {
            getEndKickPetitionMessageBuilder().mergeFrom(value);
          } else {
            endKickPetitionMessage_ = value;
          }
        } else {
          endKickPetitionMessageBuilder_.mergeFrom(value);
        }
        bitField1_ |= 0x20000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .EndKickPetitionMessage endKickPetitionMessage = 62;</code>
       */
      public Builder clearEndKickPetitionMessage() {
        bitField1_ = (bitField1_ & ~0x20000000);
        endKickPetitionMessage_ = null;
        if (endKickPetitionMessageBuilder_ != null) {
          endKickPetitionMessageBuilder_.dispose();
          endKickPetitionMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .EndKickPetitionMessage endKickPetitionMessage = 62;</code>
       */
      public de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.Builder getEndKickPetitionMessageBuilder() {
        bitField1_ |= 0x20000000;
        onChanged();
        return getEndKickPetitionMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .EndKickPetitionMessage endKickPetitionMessage = 62;</code>
       */
      public de.pokerth.protocol.ProtoBuf.EndKickPetitionMessageOrBuilder getEndKickPetitionMessageOrBuilder() {
        if (endKickPetitionMessageBuilder_ != null) {
          return endKickPetitionMessageBuilder_.getMessageOrBuilder();
        } else {
          return endKickPetitionMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.getDefaultInstance() : endKickPetitionMessage_;
        }
      }
      /**
       * <code>optional .EndKickPetitionMessage endKickPetitionMessage = 62;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage, de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.Builder, de.pokerth.protocol.ProtoBuf.EndKickPetitionMessageOrBuilder> 
          getEndKickPetitionMessageFieldBuilder() {
        if (endKickPetitionMessageBuilder_ == null) {
          endKickPetitionMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage, de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.Builder, de.pokerth.protocol.ProtoBuf.EndKickPetitionMessageOrBuilder>(
                  getEndKickPetitionMessage(),
                  getParentForChildren(),
                  isClean());
          endKickPetitionMessage_ = null;
        }
        return endKickPetitionMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.StatisticsMessage statisticsMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.StatisticsMessage, de.pokerth.protocol.ProtoBuf.StatisticsMessage.Builder, de.pokerth.protocol.ProtoBuf.StatisticsMessageOrBuilder> statisticsMessageBuilder_;
      /**
       * <code>optional .StatisticsMessage statisticsMessage = 63;</code>
       * @return Whether the statisticsMessage field is set.
       */
      public boolean hasStatisticsMessage() {
        return ((bitField1_ & 0x40000000) != 0);
      }
      /**
       * <code>optional .StatisticsMessage statisticsMessage = 63;</code>
       * @return The statisticsMessage.
       */
      public de.pokerth.protocol.ProtoBuf.StatisticsMessage getStatisticsMessage() {
        if (statisticsMessageBuilder_ == null) {
          return statisticsMessage_ == null ? de.pokerth.protocol.ProtoBuf.StatisticsMessage.getDefaultInstance() : statisticsMessage_;
        } else {
          return statisticsMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .StatisticsMessage statisticsMessage = 63;</code>
       */
      public Builder setStatisticsMessage(de.pokerth.protocol.ProtoBuf.StatisticsMessage value) {
        if (statisticsMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          statisticsMessage_ = value;
        } else {
          statisticsMessageBuilder_.setMessage(value);
        }
        bitField1_ |= 0x40000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .StatisticsMessage statisticsMessage = 63;</code>
       */
      public Builder setStatisticsMessage(
          de.pokerth.protocol.ProtoBuf.StatisticsMessage.Builder builderForValue) {
        if (statisticsMessageBuilder_ == null) {
          statisticsMessage_ = builderForValue.build();
        } else {
          statisticsMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField1_ |= 0x40000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .StatisticsMessage statisticsMessage = 63;</code>
       */
      public Builder mergeStatisticsMessage(de.pokerth.protocol.ProtoBuf.StatisticsMessage value) {
        if (statisticsMessageBuilder_ == null) {
          if (((bitField1_ & 0x40000000) != 0) &&
            statisticsMessage_ != null &&
            statisticsMessage_ != de.pokerth.protocol.ProtoBuf.StatisticsMessage.getDefaultInstance()) {
            getStatisticsMessageBuilder().mergeFrom(value);
          } else {
            statisticsMessage_ = value;
          }
        } else {
          statisticsMessageBuilder_.mergeFrom(value);
        }
        bitField1_ |= 0x40000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .StatisticsMessage statisticsMessage = 63;</code>
       */
      public Builder clearStatisticsMessage() {
        bitField1_ = (bitField1_ & ~0x40000000);
        statisticsMessage_ = null;
        if (statisticsMessageBuilder_ != null) {
          statisticsMessageBuilder_.dispose();
          statisticsMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .StatisticsMessage statisticsMessage = 63;</code>
       */
      public de.pokerth.protocol.ProtoBuf.StatisticsMessage.Builder getStatisticsMessageBuilder() {
        bitField1_ |= 0x40000000;
        onChanged();
        return getStatisticsMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .StatisticsMessage statisticsMessage = 63;</code>
       */
      public de.pokerth.protocol.ProtoBuf.StatisticsMessageOrBuilder getStatisticsMessageOrBuilder() {
        if (statisticsMessageBuilder_ != null) {
          return statisticsMessageBuilder_.getMessageOrBuilder();
        } else {
          return statisticsMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.StatisticsMessage.getDefaultInstance() : statisticsMessage_;
        }
      }
      /**
       * <code>optional .StatisticsMessage statisticsMessage = 63;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.StatisticsMessage, de.pokerth.protocol.ProtoBuf.StatisticsMessage.Builder, de.pokerth.protocol.ProtoBuf.StatisticsMessageOrBuilder> 
          getStatisticsMessageFieldBuilder() {
        if (statisticsMessageBuilder_ == null) {
          statisticsMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.StatisticsMessage, de.pokerth.protocol.ProtoBuf.StatisticsMessage.Builder, de.pokerth.protocol.ProtoBuf.StatisticsMessageOrBuilder>(
                  getStatisticsMessage(),
                  getParentForChildren(),
                  isClean());
          statisticsMessage_ = null;
        }
        return statisticsMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.ChatRequestMessage chatRequestMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.ChatRequestMessage, de.pokerth.protocol.ProtoBuf.ChatRequestMessage.Builder, de.pokerth.protocol.ProtoBuf.ChatRequestMessageOrBuilder> chatRequestMessageBuilder_;
      /**
       * <code>optional .ChatRequestMessage chatRequestMessage = 64;</code>
       * @return Whether the chatRequestMessage field is set.
       */
      public boolean hasChatRequestMessage() {
        return ((bitField1_ & 0x80000000) != 0);
      }
      /**
       * <code>optional .ChatRequestMessage chatRequestMessage = 64;</code>
       * @return The chatRequestMessage.
       */
      public de.pokerth.protocol.ProtoBuf.ChatRequestMessage getChatRequestMessage() {
        if (chatRequestMessageBuilder_ == null) {
          return chatRequestMessage_ == null ? de.pokerth.protocol.ProtoBuf.ChatRequestMessage.getDefaultInstance() : chatRequestMessage_;
        } else {
          return chatRequestMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .ChatRequestMessage chatRequestMessage = 64;</code>
       */
      public Builder setChatRequestMessage(de.pokerth.protocol.ProtoBuf.ChatRequestMessage value) {
        if (chatRequestMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          chatRequestMessage_ = value;
        } else {
          chatRequestMessageBuilder_.setMessage(value);
        }
        bitField1_ |= 0x80000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .ChatRequestMessage chatRequestMessage = 64;</code>
       */
      public Builder setChatRequestMessage(
          de.pokerth.protocol.ProtoBuf.ChatRequestMessage.Builder builderForValue) {
        if (chatRequestMessageBuilder_ == null) {
          chatRequestMessage_ = builderForValue.build();
        } else {
          chatRequestMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField1_ |= 0x80000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .ChatRequestMessage chatRequestMessage = 64;</code>
       */
      public Builder mergeChatRequestMessage(de.pokerth.protocol.ProtoBuf.ChatRequestMessage value) {
        if (chatRequestMessageBuilder_ == null) {
          if (((bitField1_ & 0x80000000) != 0) &&
            chatRequestMessage_ != null &&
            chatRequestMessage_ != de.pokerth.protocol.ProtoBuf.ChatRequestMessage.getDefaultInstance()) {
            getChatRequestMessageBuilder().mergeFrom(value);
          } else {
            chatRequestMessage_ = value;
          }
        } else {
          chatRequestMessageBuilder_.mergeFrom(value);
        }
        bitField1_ |= 0x80000000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .ChatRequestMessage chatRequestMessage = 64;</code>
       */
      public Builder clearChatRequestMessage() {
        bitField1_ = (bitField1_ & ~0x80000000);
        chatRequestMessage_ = null;
        if (chatRequestMessageBuilder_ != null) {
          chatRequestMessageBuilder_.dispose();
          chatRequestMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .ChatRequestMessage chatRequestMessage = 64;</code>
       */
      public de.pokerth.protocol.ProtoBuf.ChatRequestMessage.Builder getChatRequestMessageBuilder() {
        bitField1_ |= 0x80000000;
        onChanged();
        return getChatRequestMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .ChatRequestMessage chatRequestMessage = 64;</code>
       */
      public de.pokerth.protocol.ProtoBuf.ChatRequestMessageOrBuilder getChatRequestMessageOrBuilder() {
        if (chatRequestMessageBuilder_ != null) {
          return chatRequestMessageBuilder_.getMessageOrBuilder();
        } else {
          return chatRequestMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.ChatRequestMessage.getDefaultInstance() : chatRequestMessage_;
        }
      }
      /**
       * <code>optional .ChatRequestMessage chatRequestMessage = 64;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.ChatRequestMessage, de.pokerth.protocol.ProtoBuf.ChatRequestMessage.Builder, de.pokerth.protocol.ProtoBuf.ChatRequestMessageOrBuilder> 
          getChatRequestMessageFieldBuilder() {
        if (chatRequestMessageBuilder_ == null) {
          chatRequestMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.ChatRequestMessage, de.pokerth.protocol.ProtoBuf.ChatRequestMessage.Builder, de.pokerth.protocol.ProtoBuf.ChatRequestMessageOrBuilder>(
                  getChatRequestMessage(),
                  getParentForChildren(),
                  isClean());
          chatRequestMessage_ = null;
        }
        return chatRequestMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.ChatMessage chatMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.ChatMessage, de.pokerth.protocol.ProtoBuf.ChatMessage.Builder, de.pokerth.protocol.ProtoBuf.ChatMessageOrBuilder> chatMessageBuilder_;
      /**
       * <code>optional .ChatMessage chatMessage = 65;</code>
       * @return Whether the chatMessage field is set.
       */
      public boolean hasChatMessage() {
        return ((bitField2_ & 0x00000001) != 0);
      }
      /**
       * <code>optional .ChatMessage chatMessage = 65;</code>
       * @return The chatMessage.
       */
      public de.pokerth.protocol.ProtoBuf.ChatMessage getChatMessage() {
        if (chatMessageBuilder_ == null) {
          return chatMessage_ == null ? de.pokerth.protocol.ProtoBuf.ChatMessage.getDefaultInstance() : chatMessage_;
        } else {
          return chatMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .ChatMessage chatMessage = 65;</code>
       */
      public Builder setChatMessage(de.pokerth.protocol.ProtoBuf.ChatMessage value) {
        if (chatMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          chatMessage_ = value;
        } else {
          chatMessageBuilder_.setMessage(value);
        }
        bitField2_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>optional .ChatMessage chatMessage = 65;</code>
       */
      public Builder setChatMessage(
          de.pokerth.protocol.ProtoBuf.ChatMessage.Builder builderForValue) {
        if (chatMessageBuilder_ == null) {
          chatMessage_ = builderForValue.build();
        } else {
          chatMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField2_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>optional .ChatMessage chatMessage = 65;</code>
       */
      public Builder mergeChatMessage(de.pokerth.protocol.ProtoBuf.ChatMessage value) {
        if (chatMessageBuilder_ == null) {
          if (((bitField2_ & 0x00000001) != 0) &&
            chatMessage_ != null &&
            chatMessage_ != de.pokerth.protocol.ProtoBuf.ChatMessage.getDefaultInstance()) {
            getChatMessageBuilder().mergeFrom(value);
          } else {
            chatMessage_ = value;
          }
        } else {
          chatMessageBuilder_.mergeFrom(value);
        }
        bitField2_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>optional .ChatMessage chatMessage = 65;</code>
       */
      public Builder clearChatMessage() {
        bitField2_ = (bitField2_ & ~0x00000001);
        chatMessage_ = null;
        if (chatMessageBuilder_ != null) {
          chatMessageBuilder_.dispose();
          chatMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .ChatMessage chatMessage = 65;</code>
       */
      public de.pokerth.protocol.ProtoBuf.ChatMessage.Builder getChatMessageBuilder() {
        bitField2_ |= 0x00000001;
        onChanged();
        return getChatMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .ChatMessage chatMessage = 65;</code>
       */
      public de.pokerth.protocol.ProtoBuf.ChatMessageOrBuilder getChatMessageOrBuilder() {
        if (chatMessageBuilder_ != null) {
          return chatMessageBuilder_.getMessageOrBuilder();
        } else {
          return chatMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.ChatMessage.getDefaultInstance() : chatMessage_;
        }
      }
      /**
       * <code>optional .ChatMessage chatMessage = 65;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.ChatMessage, de.pokerth.protocol.ProtoBuf.ChatMessage.Builder, de.pokerth.protocol.ProtoBuf.ChatMessageOrBuilder> 
          getChatMessageFieldBuilder() {
        if (chatMessageBuilder_ == null) {
          chatMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.ChatMessage, de.pokerth.protocol.ProtoBuf.ChatMessage.Builder, de.pokerth.protocol.ProtoBuf.ChatMessageOrBuilder>(
                  getChatMessage(),
                  getParentForChildren(),
                  isClean());
          chatMessage_ = null;
        }
        return chatMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.ChatRejectMessage chatRejectMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.ChatRejectMessage, de.pokerth.protocol.ProtoBuf.ChatRejectMessage.Builder, de.pokerth.protocol.ProtoBuf.ChatRejectMessageOrBuilder> chatRejectMessageBuilder_;
      /**
       * <code>optional .ChatRejectMessage chatRejectMessage = 66;</code>
       * @return Whether the chatRejectMessage field is set.
       */
      public boolean hasChatRejectMessage() {
        return ((bitField2_ & 0x00000002) != 0);
      }
      /**
       * <code>optional .ChatRejectMessage chatRejectMessage = 66;</code>
       * @return The chatRejectMessage.
       */
      public de.pokerth.protocol.ProtoBuf.ChatRejectMessage getChatRejectMessage() {
        if (chatRejectMessageBuilder_ == null) {
          return chatRejectMessage_ == null ? de.pokerth.protocol.ProtoBuf.ChatRejectMessage.getDefaultInstance() : chatRejectMessage_;
        } else {
          return chatRejectMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .ChatRejectMessage chatRejectMessage = 66;</code>
       */
      public Builder setChatRejectMessage(de.pokerth.protocol.ProtoBuf.ChatRejectMessage value) {
        if (chatRejectMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          chatRejectMessage_ = value;
        } else {
          chatRejectMessageBuilder_.setMessage(value);
        }
        bitField2_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>optional .ChatRejectMessage chatRejectMessage = 66;</code>
       */
      public Builder setChatRejectMessage(
          de.pokerth.protocol.ProtoBuf.ChatRejectMessage.Builder builderForValue) {
        if (chatRejectMessageBuilder_ == null) {
          chatRejectMessage_ = builderForValue.build();
        } else {
          chatRejectMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField2_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>optional .ChatRejectMessage chatRejectMessage = 66;</code>
       */
      public Builder mergeChatRejectMessage(de.pokerth.protocol.ProtoBuf.ChatRejectMessage value) {
        if (chatRejectMessageBuilder_ == null) {
          if (((bitField2_ & 0x00000002) != 0) &&
            chatRejectMessage_ != null &&
            chatRejectMessage_ != de.pokerth.protocol.ProtoBuf.ChatRejectMessage.getDefaultInstance()) {
            getChatRejectMessageBuilder().mergeFrom(value);
          } else {
            chatRejectMessage_ = value;
          }
        } else {
          chatRejectMessageBuilder_.mergeFrom(value);
        }
        bitField2_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>optional .ChatRejectMessage chatRejectMessage = 66;</code>
       */
      public Builder clearChatRejectMessage() {
        bitField2_ = (bitField2_ & ~0x00000002);
        chatRejectMessage_ = null;
        if (chatRejectMessageBuilder_ != null) {
          chatRejectMessageBuilder_.dispose();
          chatRejectMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .ChatRejectMessage chatRejectMessage = 66;</code>
       */
      public de.pokerth.protocol.ProtoBuf.ChatRejectMessage.Builder getChatRejectMessageBuilder() {
        bitField2_ |= 0x00000002;
        onChanged();
        return getChatRejectMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .ChatRejectMessage chatRejectMessage = 66;</code>
       */
      public de.pokerth.protocol.ProtoBuf.ChatRejectMessageOrBuilder getChatRejectMessageOrBuilder() {
        if (chatRejectMessageBuilder_ != null) {
          return chatRejectMessageBuilder_.getMessageOrBuilder();
        } else {
          return chatRejectMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.ChatRejectMessage.getDefaultInstance() : chatRejectMessage_;
        }
      }
      /**
       * <code>optional .ChatRejectMessage chatRejectMessage = 66;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.ChatRejectMessage, de.pokerth.protocol.ProtoBuf.ChatRejectMessage.Builder, de.pokerth.protocol.ProtoBuf.ChatRejectMessageOrBuilder> 
          getChatRejectMessageFieldBuilder() {
        if (chatRejectMessageBuilder_ == null) {
          chatRejectMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.ChatRejectMessage, de.pokerth.protocol.ProtoBuf.ChatRejectMessage.Builder, de.pokerth.protocol.ProtoBuf.ChatRejectMessageOrBuilder>(
                  getChatRejectMessage(),
                  getParentForChildren(),
                  isClean());
          chatRejectMessage_ = null;
        }
        return chatRejectMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.DialogMessage dialogMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.DialogMessage, de.pokerth.protocol.ProtoBuf.DialogMessage.Builder, de.pokerth.protocol.ProtoBuf.DialogMessageOrBuilder> dialogMessageBuilder_;
      /**
       * <code>optional .DialogMessage dialogMessage = 67;</code>
       * @return Whether the dialogMessage field is set.
       */
      public boolean hasDialogMessage() {
        return ((bitField2_ & 0x00000004) != 0);
      }
      /**
       * <code>optional .DialogMessage dialogMessage = 67;</code>
       * @return The dialogMessage.
       */
      public de.pokerth.protocol.ProtoBuf.DialogMessage getDialogMessage() {
        if (dialogMessageBuilder_ == null) {
          return dialogMessage_ == null ? de.pokerth.protocol.ProtoBuf.DialogMessage.getDefaultInstance() : dialogMessage_;
        } else {
          return dialogMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .DialogMessage dialogMessage = 67;</code>
       */
      public Builder setDialogMessage(de.pokerth.protocol.ProtoBuf.DialogMessage value) {
        if (dialogMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          dialogMessage_ = value;
        } else {
          dialogMessageBuilder_.setMessage(value);
        }
        bitField2_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>optional .DialogMessage dialogMessage = 67;</code>
       */
      public Builder setDialogMessage(
          de.pokerth.protocol.ProtoBuf.DialogMessage.Builder builderForValue) {
        if (dialogMessageBuilder_ == null) {
          dialogMessage_ = builderForValue.build();
        } else {
          dialogMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField2_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>optional .DialogMessage dialogMessage = 67;</code>
       */
      public Builder mergeDialogMessage(de.pokerth.protocol.ProtoBuf.DialogMessage value) {
        if (dialogMessageBuilder_ == null) {
          if (((bitField2_ & 0x00000004) != 0) &&
            dialogMessage_ != null &&
            dialogMessage_ != de.pokerth.protocol.ProtoBuf.DialogMessage.getDefaultInstance()) {
            getDialogMessageBuilder().mergeFrom(value);
          } else {
            dialogMessage_ = value;
          }
        } else {
          dialogMessageBuilder_.mergeFrom(value);
        }
        bitField2_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>optional .DialogMessage dialogMessage = 67;</code>
       */
      public Builder clearDialogMessage() {
        bitField2_ = (bitField2_ & ~0x00000004);
        dialogMessage_ = null;
        if (dialogMessageBuilder_ != null) {
          dialogMessageBuilder_.dispose();
          dialogMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .DialogMessage dialogMessage = 67;</code>
       */
      public de.pokerth.protocol.ProtoBuf.DialogMessage.Builder getDialogMessageBuilder() {
        bitField2_ |= 0x00000004;
        onChanged();
        return getDialogMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .DialogMessage dialogMessage = 67;</code>
       */
      public de.pokerth.protocol.ProtoBuf.DialogMessageOrBuilder getDialogMessageOrBuilder() {
        if (dialogMessageBuilder_ != null) {
          return dialogMessageBuilder_.getMessageOrBuilder();
        } else {
          return dialogMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.DialogMessage.getDefaultInstance() : dialogMessage_;
        }
      }
      /**
       * <code>optional .DialogMessage dialogMessage = 67;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.DialogMessage, de.pokerth.protocol.ProtoBuf.DialogMessage.Builder, de.pokerth.protocol.ProtoBuf.DialogMessageOrBuilder> 
          getDialogMessageFieldBuilder() {
        if (dialogMessageBuilder_ == null) {
          dialogMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.DialogMessage, de.pokerth.protocol.ProtoBuf.DialogMessage.Builder, de.pokerth.protocol.ProtoBuf.DialogMessageOrBuilder>(
                  getDialogMessage(),
                  getParentForChildren(),
                  isClean());
          dialogMessage_ = null;
        }
        return dialogMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage timeoutWarningMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage, de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.Builder, de.pokerth.protocol.ProtoBuf.TimeoutWarningMessageOrBuilder> timeoutWarningMessageBuilder_;
      /**
       * <code>optional .TimeoutWarningMessage timeoutWarningMessage = 68;</code>
       * @return Whether the timeoutWarningMessage field is set.
       */
      public boolean hasTimeoutWarningMessage() {
        return ((bitField2_ & 0x00000008) != 0);
      }
      /**
       * <code>optional .TimeoutWarningMessage timeoutWarningMessage = 68;</code>
       * @return The timeoutWarningMessage.
       */
      public de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage getTimeoutWarningMessage() {
        if (timeoutWarningMessageBuilder_ == null) {
          return timeoutWarningMessage_ == null ? de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.getDefaultInstance() : timeoutWarningMessage_;
        } else {
          return timeoutWarningMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .TimeoutWarningMessage timeoutWarningMessage = 68;</code>
       */
      public Builder setTimeoutWarningMessage(de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage value) {
        if (timeoutWarningMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          timeoutWarningMessage_ = value;
        } else {
          timeoutWarningMessageBuilder_.setMessage(value);
        }
        bitField2_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>optional .TimeoutWarningMessage timeoutWarningMessage = 68;</code>
       */
      public Builder setTimeoutWarningMessage(
          de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.Builder builderForValue) {
        if (timeoutWarningMessageBuilder_ == null) {
          timeoutWarningMessage_ = builderForValue.build();
        } else {
          timeoutWarningMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField2_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>optional .TimeoutWarningMessage timeoutWarningMessage = 68;</code>
       */
      public Builder mergeTimeoutWarningMessage(de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage value) {
        if (timeoutWarningMessageBuilder_ == null) {
          if (((bitField2_ & 0x00000008) != 0) &&
            timeoutWarningMessage_ != null &&
            timeoutWarningMessage_ != de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.getDefaultInstance()) {
            getTimeoutWarningMessageBuilder().mergeFrom(value);
          } else {
            timeoutWarningMessage_ = value;
          }
        } else {
          timeoutWarningMessageBuilder_.mergeFrom(value);
        }
        bitField2_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>optional .TimeoutWarningMessage timeoutWarningMessage = 68;</code>
       */
      public Builder clearTimeoutWarningMessage() {
        bitField2_ = (bitField2_ & ~0x00000008);
        timeoutWarningMessage_ = null;
        if (timeoutWarningMessageBuilder_ != null) {
          timeoutWarningMessageBuilder_.dispose();
          timeoutWarningMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .TimeoutWarningMessage timeoutWarningMessage = 68;</code>
       */
      public de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.Builder getTimeoutWarningMessageBuilder() {
        bitField2_ |= 0x00000008;
        onChanged();
        return getTimeoutWarningMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .TimeoutWarningMessage timeoutWarningMessage = 68;</code>
       */
      public de.pokerth.protocol.ProtoBuf.TimeoutWarningMessageOrBuilder getTimeoutWarningMessageOrBuilder() {
        if (timeoutWarningMessageBuilder_ != null) {
          return timeoutWarningMessageBuilder_.getMessageOrBuilder();
        } else {
          return timeoutWarningMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.getDefaultInstance() : timeoutWarningMessage_;
        }
      }
      /**
       * <code>optional .TimeoutWarningMessage timeoutWarningMessage = 68;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage, de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.Builder, de.pokerth.protocol.ProtoBuf.TimeoutWarningMessageOrBuilder> 
          getTimeoutWarningMessageFieldBuilder() {
        if (timeoutWarningMessageBuilder_ == null) {
          timeoutWarningMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage, de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.Builder, de.pokerth.protocol.ProtoBuf.TimeoutWarningMessageOrBuilder>(
                  getTimeoutWarningMessage(),
                  getParentForChildren(),
                  isClean());
          timeoutWarningMessage_ = null;
        }
        return timeoutWarningMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage resetTimeoutMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage, de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage.Builder, de.pokerth.protocol.ProtoBuf.ResetTimeoutMessageOrBuilder> resetTimeoutMessageBuilder_;
      /**
       * <code>optional .ResetTimeoutMessage resetTimeoutMessage = 69;</code>
       * @return Whether the resetTimeoutMessage field is set.
       */
      public boolean hasResetTimeoutMessage() {
        return ((bitField2_ & 0x00000010) != 0);
      }
      /**
       * <code>optional .ResetTimeoutMessage resetTimeoutMessage = 69;</code>
       * @return The resetTimeoutMessage.
       */
      public de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage getResetTimeoutMessage() {
        if (resetTimeoutMessageBuilder_ == null) {
          return resetTimeoutMessage_ == null ? de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage.getDefaultInstance() : resetTimeoutMessage_;
        } else {
          return resetTimeoutMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .ResetTimeoutMessage resetTimeoutMessage = 69;</code>
       */
      public Builder setResetTimeoutMessage(de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage value) {
        if (resetTimeoutMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          resetTimeoutMessage_ = value;
        } else {
          resetTimeoutMessageBuilder_.setMessage(value);
        }
        bitField2_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>optional .ResetTimeoutMessage resetTimeoutMessage = 69;</code>
       */
      public Builder setResetTimeoutMessage(
          de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage.Builder builderForValue) {
        if (resetTimeoutMessageBuilder_ == null) {
          resetTimeoutMessage_ = builderForValue.build();
        } else {
          resetTimeoutMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField2_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>optional .ResetTimeoutMessage resetTimeoutMessage = 69;</code>
       */
      public Builder mergeResetTimeoutMessage(de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage value) {
        if (resetTimeoutMessageBuilder_ == null) {
          if (((bitField2_ & 0x00000010) != 0) &&
            resetTimeoutMessage_ != null &&
            resetTimeoutMessage_ != de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage.getDefaultInstance()) {
            getResetTimeoutMessageBuilder().mergeFrom(value);
          } else {
            resetTimeoutMessage_ = value;
          }
        } else {
          resetTimeoutMessageBuilder_.mergeFrom(value);
        }
        bitField2_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>optional .ResetTimeoutMessage resetTimeoutMessage = 69;</code>
       */
      public Builder clearResetTimeoutMessage() {
        bitField2_ = (bitField2_ & ~0x00000010);
        resetTimeoutMessage_ = null;
        if (resetTimeoutMessageBuilder_ != null) {
          resetTimeoutMessageBuilder_.dispose();
          resetTimeoutMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .ResetTimeoutMessage resetTimeoutMessage = 69;</code>
       */
      public de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage.Builder getResetTimeoutMessageBuilder() {
        bitField2_ |= 0x00000010;
        onChanged();
        return getResetTimeoutMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .ResetTimeoutMessage resetTimeoutMessage = 69;</code>
       */
      public de.pokerth.protocol.ProtoBuf.ResetTimeoutMessageOrBuilder getResetTimeoutMessageOrBuilder() {
        if (resetTimeoutMessageBuilder_ != null) {
          return resetTimeoutMessageBuilder_.getMessageOrBuilder();
        } else {
          return resetTimeoutMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage.getDefaultInstance() : resetTimeoutMessage_;
        }
      }
      /**
       * <code>optional .ResetTimeoutMessage resetTimeoutMessage = 69;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage, de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage.Builder, de.pokerth.protocol.ProtoBuf.ResetTimeoutMessageOrBuilder> 
          getResetTimeoutMessageFieldBuilder() {
        if (resetTimeoutMessageBuilder_ == null) {
          resetTimeoutMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage, de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage.Builder, de.pokerth.protocol.ProtoBuf.ResetTimeoutMessageOrBuilder>(
                  getResetTimeoutMessage(),
                  getParentForChildren(),
                  isClean());
          resetTimeoutMessage_ = null;
        }
        return resetTimeoutMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.ReportAvatarMessage reportAvatarMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.ReportAvatarMessage, de.pokerth.protocol.ProtoBuf.ReportAvatarMessage.Builder, de.pokerth.protocol.ProtoBuf.ReportAvatarMessageOrBuilder> reportAvatarMessageBuilder_;
      /**
       * <code>optional .ReportAvatarMessage reportAvatarMessage = 70;</code>
       * @return Whether the reportAvatarMessage field is set.
       */
      public boolean hasReportAvatarMessage() {
        return ((bitField2_ & 0x00000020) != 0);
      }
      /**
       * <code>optional .ReportAvatarMessage reportAvatarMessage = 70;</code>
       * @return The reportAvatarMessage.
       */
      public de.pokerth.protocol.ProtoBuf.ReportAvatarMessage getReportAvatarMessage() {
        if (reportAvatarMessageBuilder_ == null) {
          return reportAvatarMessage_ == null ? de.pokerth.protocol.ProtoBuf.ReportAvatarMessage.getDefaultInstance() : reportAvatarMessage_;
        } else {
          return reportAvatarMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .ReportAvatarMessage reportAvatarMessage = 70;</code>
       */
      public Builder setReportAvatarMessage(de.pokerth.protocol.ProtoBuf.ReportAvatarMessage value) {
        if (reportAvatarMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          reportAvatarMessage_ = value;
        } else {
          reportAvatarMessageBuilder_.setMessage(value);
        }
        bitField2_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>optional .ReportAvatarMessage reportAvatarMessage = 70;</code>
       */
      public Builder setReportAvatarMessage(
          de.pokerth.protocol.ProtoBuf.ReportAvatarMessage.Builder builderForValue) {
        if (reportAvatarMessageBuilder_ == null) {
          reportAvatarMessage_ = builderForValue.build();
        } else {
          reportAvatarMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField2_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>optional .ReportAvatarMessage reportAvatarMessage = 70;</code>
       */
      public Builder mergeReportAvatarMessage(de.pokerth.protocol.ProtoBuf.ReportAvatarMessage value) {
        if (reportAvatarMessageBuilder_ == null) {
          if (((bitField2_ & 0x00000020) != 0) &&
            reportAvatarMessage_ != null &&
            reportAvatarMessage_ != de.pokerth.protocol.ProtoBuf.ReportAvatarMessage.getDefaultInstance()) {
            getReportAvatarMessageBuilder().mergeFrom(value);
          } else {
            reportAvatarMessage_ = value;
          }
        } else {
          reportAvatarMessageBuilder_.mergeFrom(value);
        }
        bitField2_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>optional .ReportAvatarMessage reportAvatarMessage = 70;</code>
       */
      public Builder clearReportAvatarMessage() {
        bitField2_ = (bitField2_ & ~0x00000020);
        reportAvatarMessage_ = null;
        if (reportAvatarMessageBuilder_ != null) {
          reportAvatarMessageBuilder_.dispose();
          reportAvatarMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .ReportAvatarMessage reportAvatarMessage = 70;</code>
       */
      public de.pokerth.protocol.ProtoBuf.ReportAvatarMessage.Builder getReportAvatarMessageBuilder() {
        bitField2_ |= 0x00000020;
        onChanged();
        return getReportAvatarMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .ReportAvatarMessage reportAvatarMessage = 70;</code>
       */
      public de.pokerth.protocol.ProtoBuf.ReportAvatarMessageOrBuilder getReportAvatarMessageOrBuilder() {
        if (reportAvatarMessageBuilder_ != null) {
          return reportAvatarMessageBuilder_.getMessageOrBuilder();
        } else {
          return reportAvatarMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.ReportAvatarMessage.getDefaultInstance() : reportAvatarMessage_;
        }
      }
      /**
       * <code>optional .ReportAvatarMessage reportAvatarMessage = 70;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.ReportAvatarMessage, de.pokerth.protocol.ProtoBuf.ReportAvatarMessage.Builder, de.pokerth.protocol.ProtoBuf.ReportAvatarMessageOrBuilder> 
          getReportAvatarMessageFieldBuilder() {
        if (reportAvatarMessageBuilder_ == null) {
          reportAvatarMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.ReportAvatarMessage, de.pokerth.protocol.ProtoBuf.ReportAvatarMessage.Builder, de.pokerth.protocol.ProtoBuf.ReportAvatarMessageOrBuilder>(
                  getReportAvatarMessage(),
                  getParentForChildren(),
                  isClean());
          reportAvatarMessage_ = null;
        }
        return reportAvatarMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage reportAvatarAckMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage, de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.Builder, de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessageOrBuilder> reportAvatarAckMessageBuilder_;
      /**
       * <code>optional .ReportAvatarAckMessage reportAvatarAckMessage = 71;</code>
       * @return Whether the reportAvatarAckMessage field is set.
       */
      public boolean hasReportAvatarAckMessage() {
        return ((bitField2_ & 0x00000040) != 0);
      }
      /**
       * <code>optional .ReportAvatarAckMessage reportAvatarAckMessage = 71;</code>
       * @return The reportAvatarAckMessage.
       */
      public de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage getReportAvatarAckMessage() {
        if (reportAvatarAckMessageBuilder_ == null) {
          return reportAvatarAckMessage_ == null ? de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.getDefaultInstance() : reportAvatarAckMessage_;
        } else {
          return reportAvatarAckMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .ReportAvatarAckMessage reportAvatarAckMessage = 71;</code>
       */
      public Builder setReportAvatarAckMessage(de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage value) {
        if (reportAvatarAckMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          reportAvatarAckMessage_ = value;
        } else {
          reportAvatarAckMessageBuilder_.setMessage(value);
        }
        bitField2_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <code>optional .ReportAvatarAckMessage reportAvatarAckMessage = 71;</code>
       */
      public Builder setReportAvatarAckMessage(
          de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.Builder builderForValue) {
        if (reportAvatarAckMessageBuilder_ == null) {
          reportAvatarAckMessage_ = builderForValue.build();
        } else {
          reportAvatarAckMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField2_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <code>optional .ReportAvatarAckMessage reportAvatarAckMessage = 71;</code>
       */
      public Builder mergeReportAvatarAckMessage(de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage value) {
        if (reportAvatarAckMessageBuilder_ == null) {
          if (((bitField2_ & 0x00000040) != 0) &&
            reportAvatarAckMessage_ != null &&
            reportAvatarAckMessage_ != de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.getDefaultInstance()) {
            getReportAvatarAckMessageBuilder().mergeFrom(value);
          } else {
            reportAvatarAckMessage_ = value;
          }
        } else {
          reportAvatarAckMessageBuilder_.mergeFrom(value);
        }
        bitField2_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <code>optional .ReportAvatarAckMessage reportAvatarAckMessage = 71;</code>
       */
      public Builder clearReportAvatarAckMessage() {
        bitField2_ = (bitField2_ & ~0x00000040);
        reportAvatarAckMessage_ = null;
        if (reportAvatarAckMessageBuilder_ != null) {
          reportAvatarAckMessageBuilder_.dispose();
          reportAvatarAckMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .ReportAvatarAckMessage reportAvatarAckMessage = 71;</code>
       */
      public de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.Builder getReportAvatarAckMessageBuilder() {
        bitField2_ |= 0x00000040;
        onChanged();
        return getReportAvatarAckMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .ReportAvatarAckMessage reportAvatarAckMessage = 71;</code>
       */
      public de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessageOrBuilder getReportAvatarAckMessageOrBuilder() {
        if (reportAvatarAckMessageBuilder_ != null) {
          return reportAvatarAckMessageBuilder_.getMessageOrBuilder();
        } else {
          return reportAvatarAckMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.getDefaultInstance() : reportAvatarAckMessage_;
        }
      }
      /**
       * <code>optional .ReportAvatarAckMessage reportAvatarAckMessage = 71;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage, de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.Builder, de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessageOrBuilder> 
          getReportAvatarAckMessageFieldBuilder() {
        if (reportAvatarAckMessageBuilder_ == null) {
          reportAvatarAckMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage, de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.Builder, de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessageOrBuilder>(
                  getReportAvatarAckMessage(),
                  getParentForChildren(),
                  isClean());
          reportAvatarAckMessage_ = null;
        }
        return reportAvatarAckMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.ReportGameMessage reportGameMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.ReportGameMessage, de.pokerth.protocol.ProtoBuf.ReportGameMessage.Builder, de.pokerth.protocol.ProtoBuf.ReportGameMessageOrBuilder> reportGameMessageBuilder_;
      /**
       * <code>optional .ReportGameMessage reportGameMessage = 72;</code>
       * @return Whether the reportGameMessage field is set.
       */
      public boolean hasReportGameMessage() {
        return ((bitField2_ & 0x00000080) != 0);
      }
      /**
       * <code>optional .ReportGameMessage reportGameMessage = 72;</code>
       * @return The reportGameMessage.
       */
      public de.pokerth.protocol.ProtoBuf.ReportGameMessage getReportGameMessage() {
        if (reportGameMessageBuilder_ == null) {
          return reportGameMessage_ == null ? de.pokerth.protocol.ProtoBuf.ReportGameMessage.getDefaultInstance() : reportGameMessage_;
        } else {
          return reportGameMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .ReportGameMessage reportGameMessage = 72;</code>
       */
      public Builder setReportGameMessage(de.pokerth.protocol.ProtoBuf.ReportGameMessage value) {
        if (reportGameMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          reportGameMessage_ = value;
        } else {
          reportGameMessageBuilder_.setMessage(value);
        }
        bitField2_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <code>optional .ReportGameMessage reportGameMessage = 72;</code>
       */
      public Builder setReportGameMessage(
          de.pokerth.protocol.ProtoBuf.ReportGameMessage.Builder builderForValue) {
        if (reportGameMessageBuilder_ == null) {
          reportGameMessage_ = builderForValue.build();
        } else {
          reportGameMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField2_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <code>optional .ReportGameMessage reportGameMessage = 72;</code>
       */
      public Builder mergeReportGameMessage(de.pokerth.protocol.ProtoBuf.ReportGameMessage value) {
        if (reportGameMessageBuilder_ == null) {
          if (((bitField2_ & 0x00000080) != 0) &&
            reportGameMessage_ != null &&
            reportGameMessage_ != de.pokerth.protocol.ProtoBuf.ReportGameMessage.getDefaultInstance()) {
            getReportGameMessageBuilder().mergeFrom(value);
          } else {
            reportGameMessage_ = value;
          }
        } else {
          reportGameMessageBuilder_.mergeFrom(value);
        }
        bitField2_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <code>optional .ReportGameMessage reportGameMessage = 72;</code>
       */
      public Builder clearReportGameMessage() {
        bitField2_ = (bitField2_ & ~0x00000080);
        reportGameMessage_ = null;
        if (reportGameMessageBuilder_ != null) {
          reportGameMessageBuilder_.dispose();
          reportGameMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .ReportGameMessage reportGameMessage = 72;</code>
       */
      public de.pokerth.protocol.ProtoBuf.ReportGameMessage.Builder getReportGameMessageBuilder() {
        bitField2_ |= 0x00000080;
        onChanged();
        return getReportGameMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .ReportGameMessage reportGameMessage = 72;</code>
       */
      public de.pokerth.protocol.ProtoBuf.ReportGameMessageOrBuilder getReportGameMessageOrBuilder() {
        if (reportGameMessageBuilder_ != null) {
          return reportGameMessageBuilder_.getMessageOrBuilder();
        } else {
          return reportGameMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.ReportGameMessage.getDefaultInstance() : reportGameMessage_;
        }
      }
      /**
       * <code>optional .ReportGameMessage reportGameMessage = 72;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.ReportGameMessage, de.pokerth.protocol.ProtoBuf.ReportGameMessage.Builder, de.pokerth.protocol.ProtoBuf.ReportGameMessageOrBuilder> 
          getReportGameMessageFieldBuilder() {
        if (reportGameMessageBuilder_ == null) {
          reportGameMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.ReportGameMessage, de.pokerth.protocol.ProtoBuf.ReportGameMessage.Builder, de.pokerth.protocol.ProtoBuf.ReportGameMessageOrBuilder>(
                  getReportGameMessage(),
                  getParentForChildren(),
                  isClean());
          reportGameMessage_ = null;
        }
        return reportGameMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.ReportGameAckMessage reportGameAckMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.ReportGameAckMessage, de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.Builder, de.pokerth.protocol.ProtoBuf.ReportGameAckMessageOrBuilder> reportGameAckMessageBuilder_;
      /**
       * <code>optional .ReportGameAckMessage reportGameAckMessage = 73;</code>
       * @return Whether the reportGameAckMessage field is set.
       */
      public boolean hasReportGameAckMessage() {
        return ((bitField2_ & 0x00000100) != 0);
      }
      /**
       * <code>optional .ReportGameAckMessage reportGameAckMessage = 73;</code>
       * @return The reportGameAckMessage.
       */
      public de.pokerth.protocol.ProtoBuf.ReportGameAckMessage getReportGameAckMessage() {
        if (reportGameAckMessageBuilder_ == null) {
          return reportGameAckMessage_ == null ? de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.getDefaultInstance() : reportGameAckMessage_;
        } else {
          return reportGameAckMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .ReportGameAckMessage reportGameAckMessage = 73;</code>
       */
      public Builder setReportGameAckMessage(de.pokerth.protocol.ProtoBuf.ReportGameAckMessage value) {
        if (reportGameAckMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          reportGameAckMessage_ = value;
        } else {
          reportGameAckMessageBuilder_.setMessage(value);
        }
        bitField2_ |= 0x00000100;
        onChanged();
        return this;
      }
      /**
       * <code>optional .ReportGameAckMessage reportGameAckMessage = 73;</code>
       */
      public Builder setReportGameAckMessage(
          de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.Builder builderForValue) {
        if (reportGameAckMessageBuilder_ == null) {
          reportGameAckMessage_ = builderForValue.build();
        } else {
          reportGameAckMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField2_ |= 0x00000100;
        onChanged();
        return this;
      }
      /**
       * <code>optional .ReportGameAckMessage reportGameAckMessage = 73;</code>
       */
      public Builder mergeReportGameAckMessage(de.pokerth.protocol.ProtoBuf.ReportGameAckMessage value) {
        if (reportGameAckMessageBuilder_ == null) {
          if (((bitField2_ & 0x00000100) != 0) &&
            reportGameAckMessage_ != null &&
            reportGameAckMessage_ != de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.getDefaultInstance()) {
            getReportGameAckMessageBuilder().mergeFrom(value);
          } else {
            reportGameAckMessage_ = value;
          }
        } else {
          reportGameAckMessageBuilder_.mergeFrom(value);
        }
        bitField2_ |= 0x00000100;
        onChanged();
        return this;
      }
      /**
       * <code>optional .ReportGameAckMessage reportGameAckMessage = 73;</code>
       */
      public Builder clearReportGameAckMessage() {
        bitField2_ = (bitField2_ & ~0x00000100);
        reportGameAckMessage_ = null;
        if (reportGameAckMessageBuilder_ != null) {
          reportGameAckMessageBuilder_.dispose();
          reportGameAckMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .ReportGameAckMessage reportGameAckMessage = 73;</code>
       */
      public de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.Builder getReportGameAckMessageBuilder() {
        bitField2_ |= 0x00000100;
        onChanged();
        return getReportGameAckMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .ReportGameAckMessage reportGameAckMessage = 73;</code>
       */
      public de.pokerth.protocol.ProtoBuf.ReportGameAckMessageOrBuilder getReportGameAckMessageOrBuilder() {
        if (reportGameAckMessageBuilder_ != null) {
          return reportGameAckMessageBuilder_.getMessageOrBuilder();
        } else {
          return reportGameAckMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.getDefaultInstance() : reportGameAckMessage_;
        }
      }
      /**
       * <code>optional .ReportGameAckMessage reportGameAckMessage = 73;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.ReportGameAckMessage, de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.Builder, de.pokerth.protocol.ProtoBuf.ReportGameAckMessageOrBuilder> 
          getReportGameAckMessageFieldBuilder() {
        if (reportGameAckMessageBuilder_ == null) {
          reportGameAckMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.ReportGameAckMessage, de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.Builder, de.pokerth.protocol.ProtoBuf.ReportGameAckMessageOrBuilder>(
                  getReportGameAckMessage(),
                  getParentForChildren(),
                  isClean());
          reportGameAckMessage_ = null;
        }
        return reportGameAckMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.ErrorMessage errorMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.ErrorMessage, de.pokerth.protocol.ProtoBuf.ErrorMessage.Builder, de.pokerth.protocol.ProtoBuf.ErrorMessageOrBuilder> errorMessageBuilder_;
      /**
       * <code>optional .ErrorMessage errorMessage = 74;</code>
       * @return Whether the errorMessage field is set.
       */
      public boolean hasErrorMessage() {
        return ((bitField2_ & 0x00000200) != 0);
      }
      /**
       * <code>optional .ErrorMessage errorMessage = 74;</code>
       * @return The errorMessage.
       */
      public de.pokerth.protocol.ProtoBuf.ErrorMessage getErrorMessage() {
        if (errorMessageBuilder_ == null) {
          return errorMessage_ == null ? de.pokerth.protocol.ProtoBuf.ErrorMessage.getDefaultInstance() : errorMessage_;
        } else {
          return errorMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .ErrorMessage errorMessage = 74;</code>
       */
      public Builder setErrorMessage(de.pokerth.protocol.ProtoBuf.ErrorMessage value) {
        if (errorMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          errorMessage_ = value;
        } else {
          errorMessageBuilder_.setMessage(value);
        }
        bitField2_ |= 0x00000200;
        onChanged();
        return this;
      }
      /**
       * <code>optional .ErrorMessage errorMessage = 74;</code>
       */
      public Builder setErrorMessage(
          de.pokerth.protocol.ProtoBuf.ErrorMessage.Builder builderForValue) {
        if (errorMessageBuilder_ == null) {
          errorMessage_ = builderForValue.build();
        } else {
          errorMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField2_ |= 0x00000200;
        onChanged();
        return this;
      }
      /**
       * <code>optional .ErrorMessage errorMessage = 74;</code>
       */
      public Builder mergeErrorMessage(de.pokerth.protocol.ProtoBuf.ErrorMessage value) {
        if (errorMessageBuilder_ == null) {
          if (((bitField2_ & 0x00000200) != 0) &&
            errorMessage_ != null &&
            errorMessage_ != de.pokerth.protocol.ProtoBuf.ErrorMessage.getDefaultInstance()) {
            getErrorMessageBuilder().mergeFrom(value);
          } else {
            errorMessage_ = value;
          }
        } else {
          errorMessageBuilder_.mergeFrom(value);
        }
        bitField2_ |= 0x00000200;
        onChanged();
        return this;
      }
      /**
       * <code>optional .ErrorMessage errorMessage = 74;</code>
       */
      public Builder clearErrorMessage() {
        bitField2_ = (bitField2_ & ~0x00000200);
        errorMessage_ = null;
        if (errorMessageBuilder_ != null) {
          errorMessageBuilder_.dispose();
          errorMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .ErrorMessage errorMessage = 74;</code>
       */
      public de.pokerth.protocol.ProtoBuf.ErrorMessage.Builder getErrorMessageBuilder() {
        bitField2_ |= 0x00000200;
        onChanged();
        return getErrorMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .ErrorMessage errorMessage = 74;</code>
       */
      public de.pokerth.protocol.ProtoBuf.ErrorMessageOrBuilder getErrorMessageOrBuilder() {
        if (errorMessageBuilder_ != null) {
          return errorMessageBuilder_.getMessageOrBuilder();
        } else {
          return errorMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.ErrorMessage.getDefaultInstance() : errorMessage_;
        }
      }
      /**
       * <code>optional .ErrorMessage errorMessage = 74;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.ErrorMessage, de.pokerth.protocol.ProtoBuf.ErrorMessage.Builder, de.pokerth.protocol.ProtoBuf.ErrorMessageOrBuilder> 
          getErrorMessageFieldBuilder() {
        if (errorMessageBuilder_ == null) {
          errorMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.ErrorMessage, de.pokerth.protocol.ProtoBuf.ErrorMessage.Builder, de.pokerth.protocol.ProtoBuf.ErrorMessageOrBuilder>(
                  getErrorMessage(),
                  getParentForChildren(),
                  isClean());
          errorMessage_ = null;
        }
        return errorMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage adminRemoveGameMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage, de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage.Builder, de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessageOrBuilder> adminRemoveGameMessageBuilder_;
      /**
       * <code>optional .AdminRemoveGameMessage adminRemoveGameMessage = 75;</code>
       * @return Whether the adminRemoveGameMessage field is set.
       */
      public boolean hasAdminRemoveGameMessage() {
        return ((bitField2_ & 0x00000400) != 0);
      }
      /**
       * <code>optional .AdminRemoveGameMessage adminRemoveGameMessage = 75;</code>
       * @return The adminRemoveGameMessage.
       */
      public de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage getAdminRemoveGameMessage() {
        if (adminRemoveGameMessageBuilder_ == null) {
          return adminRemoveGameMessage_ == null ? de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage.getDefaultInstance() : adminRemoveGameMessage_;
        } else {
          return adminRemoveGameMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .AdminRemoveGameMessage adminRemoveGameMessage = 75;</code>
       */
      public Builder setAdminRemoveGameMessage(de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage value) {
        if (adminRemoveGameMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          adminRemoveGameMessage_ = value;
        } else {
          adminRemoveGameMessageBuilder_.setMessage(value);
        }
        bitField2_ |= 0x00000400;
        onChanged();
        return this;
      }
      /**
       * <code>optional .AdminRemoveGameMessage adminRemoveGameMessage = 75;</code>
       */
      public Builder setAdminRemoveGameMessage(
          de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage.Builder builderForValue) {
        if (adminRemoveGameMessageBuilder_ == null) {
          adminRemoveGameMessage_ = builderForValue.build();
        } else {
          adminRemoveGameMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField2_ |= 0x00000400;
        onChanged();
        return this;
      }
      /**
       * <code>optional .AdminRemoveGameMessage adminRemoveGameMessage = 75;</code>
       */
      public Builder mergeAdminRemoveGameMessage(de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage value) {
        if (adminRemoveGameMessageBuilder_ == null) {
          if (((bitField2_ & 0x00000400) != 0) &&
            adminRemoveGameMessage_ != null &&
            adminRemoveGameMessage_ != de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage.getDefaultInstance()) {
            getAdminRemoveGameMessageBuilder().mergeFrom(value);
          } else {
            adminRemoveGameMessage_ = value;
          }
        } else {
          adminRemoveGameMessageBuilder_.mergeFrom(value);
        }
        bitField2_ |= 0x00000400;
        onChanged();
        return this;
      }
      /**
       * <code>optional .AdminRemoveGameMessage adminRemoveGameMessage = 75;</code>
       */
      public Builder clearAdminRemoveGameMessage() {
        bitField2_ = (bitField2_ & ~0x00000400);
        adminRemoveGameMessage_ = null;
        if (adminRemoveGameMessageBuilder_ != null) {
          adminRemoveGameMessageBuilder_.dispose();
          adminRemoveGameMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .AdminRemoveGameMessage adminRemoveGameMessage = 75;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage.Builder getAdminRemoveGameMessageBuilder() {
        bitField2_ |= 0x00000400;
        onChanged();
        return getAdminRemoveGameMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .AdminRemoveGameMessage adminRemoveGameMessage = 75;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessageOrBuilder getAdminRemoveGameMessageOrBuilder() {
        if (adminRemoveGameMessageBuilder_ != null) {
          return adminRemoveGameMessageBuilder_.getMessageOrBuilder();
        } else {
          return adminRemoveGameMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage.getDefaultInstance() : adminRemoveGameMessage_;
        }
      }
      /**
       * <code>optional .AdminRemoveGameMessage adminRemoveGameMessage = 75;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage, de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage.Builder, de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessageOrBuilder> 
          getAdminRemoveGameMessageFieldBuilder() {
        if (adminRemoveGameMessageBuilder_ == null) {
          adminRemoveGameMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage, de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage.Builder, de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessageOrBuilder>(
                  getAdminRemoveGameMessage(),
                  getParentForChildren(),
                  isClean());
          adminRemoveGameMessage_ = null;
        }
        return adminRemoveGameMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage adminRemoveGameAckMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage, de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.Builder, de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessageOrBuilder> adminRemoveGameAckMessageBuilder_;
      /**
       * <code>optional .AdminRemoveGameAckMessage adminRemoveGameAckMessage = 76;</code>
       * @return Whether the adminRemoveGameAckMessage field is set.
       */
      public boolean hasAdminRemoveGameAckMessage() {
        return ((bitField2_ & 0x00000800) != 0);
      }
      /**
       * <code>optional .AdminRemoveGameAckMessage adminRemoveGameAckMessage = 76;</code>
       * @return The adminRemoveGameAckMessage.
       */
      public de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage getAdminRemoveGameAckMessage() {
        if (adminRemoveGameAckMessageBuilder_ == null) {
          return adminRemoveGameAckMessage_ == null ? de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.getDefaultInstance() : adminRemoveGameAckMessage_;
        } else {
          return adminRemoveGameAckMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .AdminRemoveGameAckMessage adminRemoveGameAckMessage = 76;</code>
       */
      public Builder setAdminRemoveGameAckMessage(de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage value) {
        if (adminRemoveGameAckMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          adminRemoveGameAckMessage_ = value;
        } else {
          adminRemoveGameAckMessageBuilder_.setMessage(value);
        }
        bitField2_ |= 0x00000800;
        onChanged();
        return this;
      }
      /**
       * <code>optional .AdminRemoveGameAckMessage adminRemoveGameAckMessage = 76;</code>
       */
      public Builder setAdminRemoveGameAckMessage(
          de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.Builder builderForValue) {
        if (adminRemoveGameAckMessageBuilder_ == null) {
          adminRemoveGameAckMessage_ = builderForValue.build();
        } else {
          adminRemoveGameAckMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField2_ |= 0x00000800;
        onChanged();
        return this;
      }
      /**
       * <code>optional .AdminRemoveGameAckMessage adminRemoveGameAckMessage = 76;</code>
       */
      public Builder mergeAdminRemoveGameAckMessage(de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage value) {
        if (adminRemoveGameAckMessageBuilder_ == null) {
          if (((bitField2_ & 0x00000800) != 0) &&
            adminRemoveGameAckMessage_ != null &&
            adminRemoveGameAckMessage_ != de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.getDefaultInstance()) {
            getAdminRemoveGameAckMessageBuilder().mergeFrom(value);
          } else {
            adminRemoveGameAckMessage_ = value;
          }
        } else {
          adminRemoveGameAckMessageBuilder_.mergeFrom(value);
        }
        bitField2_ |= 0x00000800;
        onChanged();
        return this;
      }
      /**
       * <code>optional .AdminRemoveGameAckMessage adminRemoveGameAckMessage = 76;</code>
       */
      public Builder clearAdminRemoveGameAckMessage() {
        bitField2_ = (bitField2_ & ~0x00000800);
        adminRemoveGameAckMessage_ = null;
        if (adminRemoveGameAckMessageBuilder_ != null) {
          adminRemoveGameAckMessageBuilder_.dispose();
          adminRemoveGameAckMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .AdminRemoveGameAckMessage adminRemoveGameAckMessage = 76;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.Builder getAdminRemoveGameAckMessageBuilder() {
        bitField2_ |= 0x00000800;
        onChanged();
        return getAdminRemoveGameAckMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .AdminRemoveGameAckMessage adminRemoveGameAckMessage = 76;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessageOrBuilder getAdminRemoveGameAckMessageOrBuilder() {
        if (adminRemoveGameAckMessageBuilder_ != null) {
          return adminRemoveGameAckMessageBuilder_.getMessageOrBuilder();
        } else {
          return adminRemoveGameAckMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.getDefaultInstance() : adminRemoveGameAckMessage_;
        }
      }
      /**
       * <code>optional .AdminRemoveGameAckMessage adminRemoveGameAckMessage = 76;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage, de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.Builder, de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessageOrBuilder> 
          getAdminRemoveGameAckMessageFieldBuilder() {
        if (adminRemoveGameAckMessageBuilder_ == null) {
          adminRemoveGameAckMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage, de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.Builder, de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessageOrBuilder>(
                  getAdminRemoveGameAckMessage(),
                  getParentForChildren(),
                  isClean());
          adminRemoveGameAckMessage_ = null;
        }
        return adminRemoveGameAckMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage adminBanPlayerMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage, de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage.Builder, de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessageOrBuilder> adminBanPlayerMessageBuilder_;
      /**
       * <code>optional .AdminBanPlayerMessage adminBanPlayerMessage = 77;</code>
       * @return Whether the adminBanPlayerMessage field is set.
       */
      public boolean hasAdminBanPlayerMessage() {
        return ((bitField2_ & 0x00001000) != 0);
      }
      /**
       * <code>optional .AdminBanPlayerMessage adminBanPlayerMessage = 77;</code>
       * @return The adminBanPlayerMessage.
       */
      public de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage getAdminBanPlayerMessage() {
        if (adminBanPlayerMessageBuilder_ == null) {
          return adminBanPlayerMessage_ == null ? de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage.getDefaultInstance() : adminBanPlayerMessage_;
        } else {
          return adminBanPlayerMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .AdminBanPlayerMessage adminBanPlayerMessage = 77;</code>
       */
      public Builder setAdminBanPlayerMessage(de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage value) {
        if (adminBanPlayerMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          adminBanPlayerMessage_ = value;
        } else {
          adminBanPlayerMessageBuilder_.setMessage(value);
        }
        bitField2_ |= 0x00001000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .AdminBanPlayerMessage adminBanPlayerMessage = 77;</code>
       */
      public Builder setAdminBanPlayerMessage(
          de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage.Builder builderForValue) {
        if (adminBanPlayerMessageBuilder_ == null) {
          adminBanPlayerMessage_ = builderForValue.build();
        } else {
          adminBanPlayerMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField2_ |= 0x00001000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .AdminBanPlayerMessage adminBanPlayerMessage = 77;</code>
       */
      public Builder mergeAdminBanPlayerMessage(de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage value) {
        if (adminBanPlayerMessageBuilder_ == null) {
          if (((bitField2_ & 0x00001000) != 0) &&
            adminBanPlayerMessage_ != null &&
            adminBanPlayerMessage_ != de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage.getDefaultInstance()) {
            getAdminBanPlayerMessageBuilder().mergeFrom(value);
          } else {
            adminBanPlayerMessage_ = value;
          }
        } else {
          adminBanPlayerMessageBuilder_.mergeFrom(value);
        }
        bitField2_ |= 0x00001000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .AdminBanPlayerMessage adminBanPlayerMessage = 77;</code>
       */
      public Builder clearAdminBanPlayerMessage() {
        bitField2_ = (bitField2_ & ~0x00001000);
        adminBanPlayerMessage_ = null;
        if (adminBanPlayerMessageBuilder_ != null) {
          adminBanPlayerMessageBuilder_.dispose();
          adminBanPlayerMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .AdminBanPlayerMessage adminBanPlayerMessage = 77;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage.Builder getAdminBanPlayerMessageBuilder() {
        bitField2_ |= 0x00001000;
        onChanged();
        return getAdminBanPlayerMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .AdminBanPlayerMessage adminBanPlayerMessage = 77;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessageOrBuilder getAdminBanPlayerMessageOrBuilder() {
        if (adminBanPlayerMessageBuilder_ != null) {
          return adminBanPlayerMessageBuilder_.getMessageOrBuilder();
        } else {
          return adminBanPlayerMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage.getDefaultInstance() : adminBanPlayerMessage_;
        }
      }
      /**
       * <code>optional .AdminBanPlayerMessage adminBanPlayerMessage = 77;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage, de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage.Builder, de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessageOrBuilder> 
          getAdminBanPlayerMessageFieldBuilder() {
        if (adminBanPlayerMessageBuilder_ == null) {
          adminBanPlayerMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage, de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage.Builder, de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessageOrBuilder>(
                  getAdminBanPlayerMessage(),
                  getParentForChildren(),
                  isClean());
          adminBanPlayerMessage_ = null;
        }
        return adminBanPlayerMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage adminBanPlayerAckMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage, de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.Builder, de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessageOrBuilder> adminBanPlayerAckMessageBuilder_;
      /**
       * <code>optional .AdminBanPlayerAckMessage adminBanPlayerAckMessage = 78;</code>
       * @return Whether the adminBanPlayerAckMessage field is set.
       */
      public boolean hasAdminBanPlayerAckMessage() {
        return ((bitField2_ & 0x00002000) != 0);
      }
      /**
       * <code>optional .AdminBanPlayerAckMessage adminBanPlayerAckMessage = 78;</code>
       * @return The adminBanPlayerAckMessage.
       */
      public de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage getAdminBanPlayerAckMessage() {
        if (adminBanPlayerAckMessageBuilder_ == null) {
          return adminBanPlayerAckMessage_ == null ? de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.getDefaultInstance() : adminBanPlayerAckMessage_;
        } else {
          return adminBanPlayerAckMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .AdminBanPlayerAckMessage adminBanPlayerAckMessage = 78;</code>
       */
      public Builder setAdminBanPlayerAckMessage(de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage value) {
        if (adminBanPlayerAckMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          adminBanPlayerAckMessage_ = value;
        } else {
          adminBanPlayerAckMessageBuilder_.setMessage(value);
        }
        bitField2_ |= 0x00002000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .AdminBanPlayerAckMessage adminBanPlayerAckMessage = 78;</code>
       */
      public Builder setAdminBanPlayerAckMessage(
          de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.Builder builderForValue) {
        if (adminBanPlayerAckMessageBuilder_ == null) {
          adminBanPlayerAckMessage_ = builderForValue.build();
        } else {
          adminBanPlayerAckMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField2_ |= 0x00002000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .AdminBanPlayerAckMessage adminBanPlayerAckMessage = 78;</code>
       */
      public Builder mergeAdminBanPlayerAckMessage(de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage value) {
        if (adminBanPlayerAckMessageBuilder_ == null) {
          if (((bitField2_ & 0x00002000) != 0) &&
            adminBanPlayerAckMessage_ != null &&
            adminBanPlayerAckMessage_ != de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.getDefaultInstance()) {
            getAdminBanPlayerAckMessageBuilder().mergeFrom(value);
          } else {
            adminBanPlayerAckMessage_ = value;
          }
        } else {
          adminBanPlayerAckMessageBuilder_.mergeFrom(value);
        }
        bitField2_ |= 0x00002000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .AdminBanPlayerAckMessage adminBanPlayerAckMessage = 78;</code>
       */
      public Builder clearAdminBanPlayerAckMessage() {
        bitField2_ = (bitField2_ & ~0x00002000);
        adminBanPlayerAckMessage_ = null;
        if (adminBanPlayerAckMessageBuilder_ != null) {
          adminBanPlayerAckMessageBuilder_.dispose();
          adminBanPlayerAckMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .AdminBanPlayerAckMessage adminBanPlayerAckMessage = 78;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.Builder getAdminBanPlayerAckMessageBuilder() {
        bitField2_ |= 0x00002000;
        onChanged();
        return getAdminBanPlayerAckMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .AdminBanPlayerAckMessage adminBanPlayerAckMessage = 78;</code>
       */
      public de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessageOrBuilder getAdminBanPlayerAckMessageOrBuilder() {
        if (adminBanPlayerAckMessageBuilder_ != null) {
          return adminBanPlayerAckMessageBuilder_.getMessageOrBuilder();
        } else {
          return adminBanPlayerAckMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.getDefaultInstance() : adminBanPlayerAckMessage_;
        }
      }
      /**
       * <code>optional .AdminBanPlayerAckMessage adminBanPlayerAckMessage = 78;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage, de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.Builder, de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessageOrBuilder> 
          getAdminBanPlayerAckMessageFieldBuilder() {
        if (adminBanPlayerAckMessageBuilder_ == null) {
          adminBanPlayerAckMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage, de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.Builder, de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessageOrBuilder>(
                  getAdminBanPlayerAckMessage(),
                  getParentForChildren(),
                  isClean());
          adminBanPlayerAckMessage_ = null;
        }
        return adminBanPlayerAckMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage gameListSpectatorJoinedMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage, de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage.Builder, de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessageOrBuilder> gameListSpectatorJoinedMessageBuilder_;
      /**
       * <code>optional .GameListSpectatorJoinedMessage gameListSpectatorJoinedMessage = 79;</code>
       * @return Whether the gameListSpectatorJoinedMessage field is set.
       */
      public boolean hasGameListSpectatorJoinedMessage() {
        return ((bitField2_ & 0x00004000) != 0);
      }
      /**
       * <code>optional .GameListSpectatorJoinedMessage gameListSpectatorJoinedMessage = 79;</code>
       * @return The gameListSpectatorJoinedMessage.
       */
      public de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage getGameListSpectatorJoinedMessage() {
        if (gameListSpectatorJoinedMessageBuilder_ == null) {
          return gameListSpectatorJoinedMessage_ == null ? de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage.getDefaultInstance() : gameListSpectatorJoinedMessage_;
        } else {
          return gameListSpectatorJoinedMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .GameListSpectatorJoinedMessage gameListSpectatorJoinedMessage = 79;</code>
       */
      public Builder setGameListSpectatorJoinedMessage(de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage value) {
        if (gameListSpectatorJoinedMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          gameListSpectatorJoinedMessage_ = value;
        } else {
          gameListSpectatorJoinedMessageBuilder_.setMessage(value);
        }
        bitField2_ |= 0x00004000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .GameListSpectatorJoinedMessage gameListSpectatorJoinedMessage = 79;</code>
       */
      public Builder setGameListSpectatorJoinedMessage(
          de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage.Builder builderForValue) {
        if (gameListSpectatorJoinedMessageBuilder_ == null) {
          gameListSpectatorJoinedMessage_ = builderForValue.build();
        } else {
          gameListSpectatorJoinedMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField2_ |= 0x00004000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .GameListSpectatorJoinedMessage gameListSpectatorJoinedMessage = 79;</code>
       */
      public Builder mergeGameListSpectatorJoinedMessage(de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage value) {
        if (gameListSpectatorJoinedMessageBuilder_ == null) {
          if (((bitField2_ & 0x00004000) != 0) &&
            gameListSpectatorJoinedMessage_ != null &&
            gameListSpectatorJoinedMessage_ != de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage.getDefaultInstance()) {
            getGameListSpectatorJoinedMessageBuilder().mergeFrom(value);
          } else {
            gameListSpectatorJoinedMessage_ = value;
          }
        } else {
          gameListSpectatorJoinedMessageBuilder_.mergeFrom(value);
        }
        bitField2_ |= 0x00004000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .GameListSpectatorJoinedMessage gameListSpectatorJoinedMessage = 79;</code>
       */
      public Builder clearGameListSpectatorJoinedMessage() {
        bitField2_ = (bitField2_ & ~0x00004000);
        gameListSpectatorJoinedMessage_ = null;
        if (gameListSpectatorJoinedMessageBuilder_ != null) {
          gameListSpectatorJoinedMessageBuilder_.dispose();
          gameListSpectatorJoinedMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .GameListSpectatorJoinedMessage gameListSpectatorJoinedMessage = 79;</code>
       */
      public de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage.Builder getGameListSpectatorJoinedMessageBuilder() {
        bitField2_ |= 0x00004000;
        onChanged();
        return getGameListSpectatorJoinedMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .GameListSpectatorJoinedMessage gameListSpectatorJoinedMessage = 79;</code>
       */
      public de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessageOrBuilder getGameListSpectatorJoinedMessageOrBuilder() {
        if (gameListSpectatorJoinedMessageBuilder_ != null) {
          return gameListSpectatorJoinedMessageBuilder_.getMessageOrBuilder();
        } else {
          return gameListSpectatorJoinedMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage.getDefaultInstance() : gameListSpectatorJoinedMessage_;
        }
      }
      /**
       * <code>optional .GameListSpectatorJoinedMessage gameListSpectatorJoinedMessage = 79;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage, de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage.Builder, de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessageOrBuilder> 
          getGameListSpectatorJoinedMessageFieldBuilder() {
        if (gameListSpectatorJoinedMessageBuilder_ == null) {
          gameListSpectatorJoinedMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage, de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage.Builder, de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessageOrBuilder>(
                  getGameListSpectatorJoinedMessage(),
                  getParentForChildren(),
                  isClean());
          gameListSpectatorJoinedMessage_ = null;
        }
        return gameListSpectatorJoinedMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage gameListSpectatorLeftMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage, de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage.Builder, de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessageOrBuilder> gameListSpectatorLeftMessageBuilder_;
      /**
       * <code>optional .GameListSpectatorLeftMessage gameListSpectatorLeftMessage = 80;</code>
       * @return Whether the gameListSpectatorLeftMessage field is set.
       */
      public boolean hasGameListSpectatorLeftMessage() {
        return ((bitField2_ & 0x00008000) != 0);
      }
      /**
       * <code>optional .GameListSpectatorLeftMessage gameListSpectatorLeftMessage = 80;</code>
       * @return The gameListSpectatorLeftMessage.
       */
      public de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage getGameListSpectatorLeftMessage() {
        if (gameListSpectatorLeftMessageBuilder_ == null) {
          return gameListSpectatorLeftMessage_ == null ? de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage.getDefaultInstance() : gameListSpectatorLeftMessage_;
        } else {
          return gameListSpectatorLeftMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .GameListSpectatorLeftMessage gameListSpectatorLeftMessage = 80;</code>
       */
      public Builder setGameListSpectatorLeftMessage(de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage value) {
        if (gameListSpectatorLeftMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          gameListSpectatorLeftMessage_ = value;
        } else {
          gameListSpectatorLeftMessageBuilder_.setMessage(value);
        }
        bitField2_ |= 0x00008000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .GameListSpectatorLeftMessage gameListSpectatorLeftMessage = 80;</code>
       */
      public Builder setGameListSpectatorLeftMessage(
          de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage.Builder builderForValue) {
        if (gameListSpectatorLeftMessageBuilder_ == null) {
          gameListSpectatorLeftMessage_ = builderForValue.build();
        } else {
          gameListSpectatorLeftMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField2_ |= 0x00008000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .GameListSpectatorLeftMessage gameListSpectatorLeftMessage = 80;</code>
       */
      public Builder mergeGameListSpectatorLeftMessage(de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage value) {
        if (gameListSpectatorLeftMessageBuilder_ == null) {
          if (((bitField2_ & 0x00008000) != 0) &&
            gameListSpectatorLeftMessage_ != null &&
            gameListSpectatorLeftMessage_ != de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage.getDefaultInstance()) {
            getGameListSpectatorLeftMessageBuilder().mergeFrom(value);
          } else {
            gameListSpectatorLeftMessage_ = value;
          }
        } else {
          gameListSpectatorLeftMessageBuilder_.mergeFrom(value);
        }
        bitField2_ |= 0x00008000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .GameListSpectatorLeftMessage gameListSpectatorLeftMessage = 80;</code>
       */
      public Builder clearGameListSpectatorLeftMessage() {
        bitField2_ = (bitField2_ & ~0x00008000);
        gameListSpectatorLeftMessage_ = null;
        if (gameListSpectatorLeftMessageBuilder_ != null) {
          gameListSpectatorLeftMessageBuilder_.dispose();
          gameListSpectatorLeftMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .GameListSpectatorLeftMessage gameListSpectatorLeftMessage = 80;</code>
       */
      public de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage.Builder getGameListSpectatorLeftMessageBuilder() {
        bitField2_ |= 0x00008000;
        onChanged();
        return getGameListSpectatorLeftMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .GameListSpectatorLeftMessage gameListSpectatorLeftMessage = 80;</code>
       */
      public de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessageOrBuilder getGameListSpectatorLeftMessageOrBuilder() {
        if (gameListSpectatorLeftMessageBuilder_ != null) {
          return gameListSpectatorLeftMessageBuilder_.getMessageOrBuilder();
        } else {
          return gameListSpectatorLeftMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage.getDefaultInstance() : gameListSpectatorLeftMessage_;
        }
      }
      /**
       * <code>optional .GameListSpectatorLeftMessage gameListSpectatorLeftMessage = 80;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage, de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage.Builder, de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessageOrBuilder> 
          getGameListSpectatorLeftMessageFieldBuilder() {
        if (gameListSpectatorLeftMessageBuilder_ == null) {
          gameListSpectatorLeftMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage, de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage.Builder, de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessageOrBuilder>(
                  getGameListSpectatorLeftMessage(),
                  getParentForChildren(),
                  isClean());
          gameListSpectatorLeftMessage_ = null;
        }
        return gameListSpectatorLeftMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage gameSpectatorJoinedMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage, de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage.Builder, de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessageOrBuilder> gameSpectatorJoinedMessageBuilder_;
      /**
       * <code>optional .GameSpectatorJoinedMessage gameSpectatorJoinedMessage = 81;</code>
       * @return Whether the gameSpectatorJoinedMessage field is set.
       */
      public boolean hasGameSpectatorJoinedMessage() {
        return ((bitField2_ & 0x00010000) != 0);
      }
      /**
       * <code>optional .GameSpectatorJoinedMessage gameSpectatorJoinedMessage = 81;</code>
       * @return The gameSpectatorJoinedMessage.
       */
      public de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage getGameSpectatorJoinedMessage() {
        if (gameSpectatorJoinedMessageBuilder_ == null) {
          return gameSpectatorJoinedMessage_ == null ? de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage.getDefaultInstance() : gameSpectatorJoinedMessage_;
        } else {
          return gameSpectatorJoinedMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .GameSpectatorJoinedMessage gameSpectatorJoinedMessage = 81;</code>
       */
      public Builder setGameSpectatorJoinedMessage(de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage value) {
        if (gameSpectatorJoinedMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          gameSpectatorJoinedMessage_ = value;
        } else {
          gameSpectatorJoinedMessageBuilder_.setMessage(value);
        }
        bitField2_ |= 0x00010000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .GameSpectatorJoinedMessage gameSpectatorJoinedMessage = 81;</code>
       */
      public Builder setGameSpectatorJoinedMessage(
          de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage.Builder builderForValue) {
        if (gameSpectatorJoinedMessageBuilder_ == null) {
          gameSpectatorJoinedMessage_ = builderForValue.build();
        } else {
          gameSpectatorJoinedMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField2_ |= 0x00010000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .GameSpectatorJoinedMessage gameSpectatorJoinedMessage = 81;</code>
       */
      public Builder mergeGameSpectatorJoinedMessage(de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage value) {
        if (gameSpectatorJoinedMessageBuilder_ == null) {
          if (((bitField2_ & 0x00010000) != 0) &&
            gameSpectatorJoinedMessage_ != null &&
            gameSpectatorJoinedMessage_ != de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage.getDefaultInstance()) {
            getGameSpectatorJoinedMessageBuilder().mergeFrom(value);
          } else {
            gameSpectatorJoinedMessage_ = value;
          }
        } else {
          gameSpectatorJoinedMessageBuilder_.mergeFrom(value);
        }
        bitField2_ |= 0x00010000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .GameSpectatorJoinedMessage gameSpectatorJoinedMessage = 81;</code>
       */
      public Builder clearGameSpectatorJoinedMessage() {
        bitField2_ = (bitField2_ & ~0x00010000);
        gameSpectatorJoinedMessage_ = null;
        if (gameSpectatorJoinedMessageBuilder_ != null) {
          gameSpectatorJoinedMessageBuilder_.dispose();
          gameSpectatorJoinedMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .GameSpectatorJoinedMessage gameSpectatorJoinedMessage = 81;</code>
       */
      public de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage.Builder getGameSpectatorJoinedMessageBuilder() {
        bitField2_ |= 0x00010000;
        onChanged();
        return getGameSpectatorJoinedMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .GameSpectatorJoinedMessage gameSpectatorJoinedMessage = 81;</code>
       */
      public de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessageOrBuilder getGameSpectatorJoinedMessageOrBuilder() {
        if (gameSpectatorJoinedMessageBuilder_ != null) {
          return gameSpectatorJoinedMessageBuilder_.getMessageOrBuilder();
        } else {
          return gameSpectatorJoinedMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage.getDefaultInstance() : gameSpectatorJoinedMessage_;
        }
      }
      /**
       * <code>optional .GameSpectatorJoinedMessage gameSpectatorJoinedMessage = 81;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage, de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage.Builder, de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessageOrBuilder> 
          getGameSpectatorJoinedMessageFieldBuilder() {
        if (gameSpectatorJoinedMessageBuilder_ == null) {
          gameSpectatorJoinedMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage, de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage.Builder, de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessageOrBuilder>(
                  getGameSpectatorJoinedMessage(),
                  getParentForChildren(),
                  isClean());
          gameSpectatorJoinedMessage_ = null;
        }
        return gameSpectatorJoinedMessageBuilder_;
      }

      private de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage gameSpectatorLeftMessage_;
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage, de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage.Builder, de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessageOrBuilder> gameSpectatorLeftMessageBuilder_;
      /**
       * <code>optional .GameSpectatorLeftMessage gameSpectatorLeftMessage = 82;</code>
       * @return Whether the gameSpectatorLeftMessage field is set.
       */
      public boolean hasGameSpectatorLeftMessage() {
        return ((bitField2_ & 0x00020000) != 0);
      }
      /**
       * <code>optional .GameSpectatorLeftMessage gameSpectatorLeftMessage = 82;</code>
       * @return The gameSpectatorLeftMessage.
       */
      public de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage getGameSpectatorLeftMessage() {
        if (gameSpectatorLeftMessageBuilder_ == null) {
          return gameSpectatorLeftMessage_ == null ? de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage.getDefaultInstance() : gameSpectatorLeftMessage_;
        } else {
          return gameSpectatorLeftMessageBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .GameSpectatorLeftMessage gameSpectatorLeftMessage = 82;</code>
       */
      public Builder setGameSpectatorLeftMessage(de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage value) {
        if (gameSpectatorLeftMessageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          gameSpectatorLeftMessage_ = value;
        } else {
          gameSpectatorLeftMessageBuilder_.setMessage(value);
        }
        bitField2_ |= 0x00020000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .GameSpectatorLeftMessage gameSpectatorLeftMessage = 82;</code>
       */
      public Builder setGameSpectatorLeftMessage(
          de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage.Builder builderForValue) {
        if (gameSpectatorLeftMessageBuilder_ == null) {
          gameSpectatorLeftMessage_ = builderForValue.build();
        } else {
          gameSpectatorLeftMessageBuilder_.setMessage(builderForValue.build());
        }
        bitField2_ |= 0x00020000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .GameSpectatorLeftMessage gameSpectatorLeftMessage = 82;</code>
       */
      public Builder mergeGameSpectatorLeftMessage(de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage value) {
        if (gameSpectatorLeftMessageBuilder_ == null) {
          if (((bitField2_ & 0x00020000) != 0) &&
            gameSpectatorLeftMessage_ != null &&
            gameSpectatorLeftMessage_ != de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage.getDefaultInstance()) {
            getGameSpectatorLeftMessageBuilder().mergeFrom(value);
          } else {
            gameSpectatorLeftMessage_ = value;
          }
        } else {
          gameSpectatorLeftMessageBuilder_.mergeFrom(value);
        }
        bitField2_ |= 0x00020000;
        onChanged();
        return this;
      }
      /**
       * <code>optional .GameSpectatorLeftMessage gameSpectatorLeftMessage = 82;</code>
       */
      public Builder clearGameSpectatorLeftMessage() {
        bitField2_ = (bitField2_ & ~0x00020000);
        gameSpectatorLeftMessage_ = null;
        if (gameSpectatorLeftMessageBuilder_ != null) {
          gameSpectatorLeftMessageBuilder_.dispose();
          gameSpectatorLeftMessageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>optional .GameSpectatorLeftMessage gameSpectatorLeftMessage = 82;</code>
       */
      public de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage.Builder getGameSpectatorLeftMessageBuilder() {
        bitField2_ |= 0x00020000;
        onChanged();
        return getGameSpectatorLeftMessageFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .GameSpectatorLeftMessage gameSpectatorLeftMessage = 82;</code>
       */
      public de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessageOrBuilder getGameSpectatorLeftMessageOrBuilder() {
        if (gameSpectatorLeftMessageBuilder_ != null) {
          return gameSpectatorLeftMessageBuilder_.getMessageOrBuilder();
        } else {
          return gameSpectatorLeftMessage_ == null ?
              de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage.getDefaultInstance() : gameSpectatorLeftMessage_;
        }
      }
      /**
       * <code>optional .GameSpectatorLeftMessage gameSpectatorLeftMessage = 82;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage, de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage.Builder, de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessageOrBuilder> 
          getGameSpectatorLeftMessageFieldBuilder() {
        if (gameSpectatorLeftMessageBuilder_ == null) {
          gameSpectatorLeftMessageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage, de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage.Builder, de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessageOrBuilder>(
                  getGameSpectatorLeftMessage(),
                  getParentForChildren(),
                  isClean());
          gameSpectatorLeftMessage_ = null;
        }
        return gameSpectatorLeftMessageBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:PokerTHMessage)
    }

    // @@protoc_insertion_point(class_scope:PokerTHMessage)
    private static final de.pokerth.protocol.ProtoBuf.PokerTHMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new de.pokerth.protocol.ProtoBuf.PokerTHMessage();
    }

    public static de.pokerth.protocol.ProtoBuf.PokerTHMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final com.google.protobuf.Parser<PokerTHMessage>
        PARSER = new com.google.protobuf.AbstractParser<PokerTHMessage>() {
      @java.lang.Override
      public PokerTHMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<PokerTHMessage> parser() {
      return PARSER;
    }

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

    @java.lang.Override
    public de.pokerth.protocol.ProtoBuf.PokerTHMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_NetGameInfo_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_NetGameInfo_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_PlayerResult_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_PlayerResult_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_AnnounceMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_AnnounceMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_AnnounceMessage_Version_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_AnnounceMessage_Version_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_InitMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_InitMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_AuthServerChallengeMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_AuthServerChallengeMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_AuthClientResponseMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_AuthClientResponseMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_AuthServerVerificationMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_AuthServerVerificationMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_InitAckMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_InitAckMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_AvatarRequestMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_AvatarRequestMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_AvatarHeaderMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_AvatarHeaderMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_AvatarDataMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_AvatarDataMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_AvatarEndMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_AvatarEndMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_UnknownAvatarMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_UnknownAvatarMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_PlayerListMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_PlayerListMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_GameListNewMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_GameListNewMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_GameListUpdateMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_GameListUpdateMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_GameListPlayerJoinedMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_GameListPlayerJoinedMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_GameListPlayerLeftMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_GameListPlayerLeftMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_GameListSpectatorJoinedMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_GameListSpectatorJoinedMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_GameListSpectatorLeftMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_GameListSpectatorLeftMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_GameListAdminChangedMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_GameListAdminChangedMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_PlayerInfoRequestMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_PlayerInfoRequestMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_PlayerInfoReplyMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_PlayerInfoReplyMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_PlayerInfoReplyMessage_PlayerInfoData_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_PlayerInfoReplyMessage_PlayerInfoData_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_PlayerInfoReplyMessage_PlayerInfoData_AvatarData_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_PlayerInfoReplyMessage_PlayerInfoData_AvatarData_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_SubscriptionRequestMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_SubscriptionRequestMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_JoinExistingGameMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_JoinExistingGameMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_JoinNewGameMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_JoinNewGameMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_RejoinExistingGameMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_RejoinExistingGameMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_JoinGameAckMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_JoinGameAckMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_JoinGameFailedMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_JoinGameFailedMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_GamePlayerJoinedMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_GamePlayerJoinedMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_GamePlayerLeftMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_GamePlayerLeftMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_GameSpectatorJoinedMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_GameSpectatorJoinedMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_GameSpectatorLeftMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_GameSpectatorLeftMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_GameAdminChangedMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_GameAdminChangedMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_RemovedFromGameMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_RemovedFromGameMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_KickPlayerRequestMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_KickPlayerRequestMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_LeaveGameRequestMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_LeaveGameRequestMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_InvitePlayerToGameMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_InvitePlayerToGameMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_InviteNotifyMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_InviteNotifyMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_RejectGameInvitationMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_RejectGameInvitationMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_RejectInvNotifyMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_RejectInvNotifyMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_StartEventMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_StartEventMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_StartEventAckMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_StartEventAckMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_GameStartInitialMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_GameStartInitialMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_GameStartRejoinMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_GameStartRejoinMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_GameStartRejoinMessage_RejoinPlayerData_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_GameStartRejoinMessage_RejoinPlayerData_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_HandStartMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_HandStartMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_HandStartMessage_PlainCards_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_HandStartMessage_PlainCards_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_PlayersTurnMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_PlayersTurnMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_MyActionRequestMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_MyActionRequestMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_YourActionRejectedMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_YourActionRejectedMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_PlayersActionDoneMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_PlayersActionDoneMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_DealFlopCardsMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_DealFlopCardsMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_DealTurnCardMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_DealTurnCardMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_DealRiverCardMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_DealRiverCardMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_AllInShowCardsMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_AllInShowCardsMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_AllInShowCardsMessage_PlayerAllIn_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_AllInShowCardsMessage_PlayerAllIn_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_EndOfHandShowCardsMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_EndOfHandShowCardsMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_EndOfHandHideCardsMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_EndOfHandHideCardsMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_ShowMyCardsRequestMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_ShowMyCardsRequestMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_AfterHandShowCardsMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_AfterHandShowCardsMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_EndOfGameMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_EndOfGameMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_PlayerIdChangedMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_PlayerIdChangedMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_AskKickPlayerMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_AskKickPlayerMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_AskKickDeniedMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_AskKickDeniedMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_StartKickPetitionMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_StartKickPetitionMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_VoteKickRequestMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_VoteKickRequestMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_VoteKickReplyMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_VoteKickReplyMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_KickPetitionUpdateMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_KickPetitionUpdateMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_EndKickPetitionMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_EndKickPetitionMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_StatisticsMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_StatisticsMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_StatisticsMessage_StatisticsData_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_StatisticsMessage_StatisticsData_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_ChatRequestMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_ChatRequestMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_ChatMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_ChatMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_ChatRejectMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_ChatRejectMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_DialogMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_DialogMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_TimeoutWarningMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_TimeoutWarningMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_ResetTimeoutMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_ResetTimeoutMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_ReportAvatarMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_ReportAvatarMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_ReportAvatarAckMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_ReportAvatarAckMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_ReportGameMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_ReportGameMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_ReportGameAckMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_ReportGameAckMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_ErrorMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_ErrorMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_AdminRemoveGameMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_AdminRemoveGameMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_AdminRemoveGameAckMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_AdminRemoveGameAckMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_AdminBanPlayerMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_AdminBanPlayerMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_AdminBanPlayerAckMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_AdminBanPlayerAckMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_PokerTHMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_PokerTHMessage_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\rpokerth.proto\"\301\005\n\013NetGameInfo\022\020\n\010gameN" +
      "ame\030\001 \002(\t\022-\n\013netGameType\030\002 \002(\0162\030.NetGame" +
      "Info.NetGameType\022\025\n\rmaxNumPlayers\030\003 \002(\r\022" +
      "9\n\021raiseIntervalMode\030\004 \002(\0162\036.NetGameInfo" +
      ".RaiseIntervalMode\022\027\n\017raiseEveryHands\030\005 " +
      "\001(\r\022\031\n\021raiseEveryMinutes\030\006 \001(\r\022/\n\014endRai" +
      "seMode\030\007 \002(\0162\031.NetGameInfo.EndRaiseMode\022" +
      "\037\n\027endRaiseSmallBlindValue\030\010 \001(\r\022\030\n\020prop" +
      "osedGuiSpeed\030\t \002(\r\022\031\n\021delayBetweenHands\030" +
      "\n \002(\r\022\033\n\023playerActionTimeout\030\013 \002(\r\022\027\n\017fi" +
      "rstSmallBlind\030\014 \002(\r\022\022\n\nstartMoney\030\r \002(\r\022" +
      "\030\n\014manualBlinds\030\016 \003(\rB\002\020\001\022\035\n\017allowSpecta" +
      "tors\030\017 \001(\010:\004true\"Z\n\013NetGameType\022\016\n\nnorma" +
      "lGame\020\001\022\026\n\022registeredOnlyGame\020\002\022\022\n\016invit" +
      "eOnlyGame\020\003\022\017\n\013rankingGame\020\004\";\n\021RaiseInt" +
      "ervalMode\022\022\n\016raiseOnHandNum\020\001\022\022\n\016raiseOn" +
      "Minutes\020\002\"H\n\014EndRaiseMode\022\020\n\014doubleBlind" +
      "s\020\001\022\023\n\017raiseByEndValue\020\002\022\021\n\rkeepLastBlin" +
      "d\020\003\"\243\001\n\014PlayerResult\022\020\n\010playerId\030\001 \002(\r\022\023" +
      "\n\013resultCard1\030\002 \002(\r\022\023\n\013resultCard2\030\003 \002(\r" +
      "\022\034\n\020bestHandPosition\030\004 \003(\rB\002\020\001\022\020\n\010moneyW" +
      "on\030\005 \002(\r\022\023\n\013playerMoney\030\006 \002(\r\022\022\n\ncardsVa" +
      "lue\030\007 \001(\r\"\364\002\n\017AnnounceMessage\0221\n\017protoco" +
      "lVersion\030\001 \002(\0132\030.AnnounceMessage.Version" +
      "\0223\n\021latestGameVersion\030\002 \002(\0132\030.AnnounceMe" +
      "ssage.Version\022\032\n\022latestBetaRevision\030\003 \002(" +
      "\r\022/\n\nserverType\030\004 \002(\0162\033.AnnounceMessage." +
      "ServerType\022\032\n\022numPlayersOnServer\030\005 \002(\r\0325" +
      "\n\007Version\022\024\n\014majorVersion\030\001 \002(\r\022\024\n\014minor" +
      "Version\030\002 \002(\r\"Y\n\nServerType\022\021\n\rserverTyp" +
      "eLAN\020\000\022\034\n\030serverTypeInternetNoAuth\020\001\022\032\n\026" +
      "serverTypeInternetAuth\020\002\"\273\002\n\013InitMessage" +
      "\0222\n\020requestedVersion\030\001 \002(\0132\030.AnnounceMes" +
      "sage.Version\022\017\n\007buildId\030\002 \002(\r\022\027\n\017myLastS" +
      "essionId\030\003 \001(\014\022\032\n\022authServerPassword\030\004 \001" +
      "(\t\022%\n\005login\030\005 \002(\0162\026.InitMessage.LoginTyp" +
      "e\022\020\n\010nickName\030\006 \001(\t\022\026\n\016clientUserData\030\007 " +
      "\001(\014\022\022\n\navatarHash\030\010 \001(\014\"M\n\tLoginType\022\016\n\n" +
      "guestLogin\020\000\022\026\n\022authenticatedLogin\020\001\022\030\n\024" +
      "unauthenticatedLogin\020\002\"5\n\032AuthServerChal" +
      "lengeMessage\022\027\n\017serverChallenge\030\001 \002(\014\"3\n" +
      "\031AuthClientResponseMessage\022\026\n\016clientResp" +
      "onse\030\001 \002(\014\";\n\035AuthServerVerificationMess" +
      "age\022\032\n\022serverVerification\030\001 \002(\014\"k\n\016InitA" +
      "ckMessage\022\025\n\ryourSessionId\030\001 \002(\014\022\024\n\014your" +
      "PlayerId\030\002 \002(\r\022\026\n\016yourAvatarHash\030\003 \001(\014\022\024" +
      "\n\014rejoinGameId\030\004 \001(\r\"=\n\024AvatarRequestMes" +
      "sage\022\021\n\trequestId\030\001 \002(\r\022\022\n\navatarHash\030\002 " +
      "\002(\014\"`\n\023AvatarHeaderMessage\022\021\n\trequestId\030" +
      "\001 \002(\r\022\"\n\navatarType\030\002 \002(\0162\016.NetAvatarTyp" +
      "e\022\022\n\navatarSize\030\003 \002(\r\";\n\021AvatarDataMessa" +
      "ge\022\021\n\trequestId\030\001 \002(\r\022\023\n\013avatarBlock\030\002 \002" +
      "(\014\"%\n\020AvatarEndMessage\022\021\n\trequestId\030\001 \002(" +
      "\r\")\n\024UnknownAvatarMessage\022\021\n\trequestId\030\001" +
      " \002(\r\"\261\001\n\021PlayerListMessage\022\020\n\010playerId\030\001" +
      " \002(\r\022I\n\026playerListNotification\030\002 \002(\0162).P" +
      "layerListMessage.PlayerListNotification\"" +
      "?\n\026PlayerListNotification\022\021\n\rplayerListN" +
      "ew\020\000\022\022\n\016playerListLeft\020\001\"\277\001\n\022GameListNew" +
      "Message\022\016\n\006gameId\030\001 \002(\r\022\036\n\010gameMode\030\002 \002(" +
      "\0162\014.NetGameMode\022\021\n\tisPrivate\030\003 \002(\010\022\025\n\tpl" +
      "ayerIds\030\004 \003(\rB\002\020\001\022\025\n\radminPlayerId\030\005 \002(\r" +
      "\022\036\n\010gameInfo\030\006 \002(\0132\014.NetGameInfo\022\030\n\014spec" +
      "tatorIds\030\007 \003(\rB\002\020\001\"G\n\025GameListUpdateMess" +
      "age\022\016\n\006gameId\030\001 \002(\r\022\036\n\010gameMode\030\002 \002(\0162\014." +
      "NetGameMode\"?\n\033GameListPlayerJoinedMessa" +
      "ge\022\016\n\006gameId\030\001 \002(\r\022\020\n\010playerId\030\002 \002(\r\"=\n\031" +
      "GameListPlayerLeftMessage\022\016\n\006gameId\030\001 \002(" +
      "\r\022\020\n\010playerId\030\002 \002(\r\"B\n\036GameListSpectator" +
      "JoinedMessage\022\016\n\006gameId\030\001 \002(\r\022\020\n\010playerI" +
      "d\030\002 \002(\r\"@\n\034GameListSpectatorLeftMessage\022" +
      "\016\n\006gameId\030\001 \002(\r\022\020\n\010playerId\030\002 \002(\r\"G\n\033Gam" +
      "eListAdminChangedMessage\022\016\n\006gameId\030\001 \002(\r" +
      "\022\030\n\020newAdminPlayerId\030\002 \002(\r\"0\n\030PlayerInfo" +
      "RequestMessage\022\024\n\010playerId\030\001 \003(\rB\002\020\001\"\360\002\n" +
      "\026PlayerInfoReplyMessage\022\020\n\010playerId\030\001 \002(" +
      "\r\022>\n\016playerInfoData\030\002 \001(\0132&.PlayerInfoRe" +
      "plyMessage.PlayerInfoData\032\203\002\n\016PlayerInfo" +
      "Data\022\022\n\nplayerName\030\001 \002(\t\022\017\n\007isHuman\030\002 \002(" +
      "\010\022*\n\014playerRights\030\003 \002(\0162\024.NetPlayerInfoR" +
      "ights\022\023\n\013countryCode\030\004 \001(\t\022E\n\navatarData" +
      "\030\005 \001(\01321.PlayerInfoReplyMessage.PlayerIn" +
      "foData.AvatarData\032D\n\nAvatarData\022\"\n\navata" +
      "rType\030\001 \002(\0162\016.NetAvatarType\022\022\n\navatarHas" +
      "h\030\002 \002(\014\"\260\001\n\032SubscriptionRequestMessage\022J" +
      "\n\022subscriptionAction\030\001 \002(\0162..Subscriptio" +
      "nRequestMessage.SubscriptionAction\"F\n\022Su" +
      "bscriptionAction\022\027\n\023unsubscribeGameList\020" +
      "\001\022\027\n\023resubscribeGameList\020\002\"r\n\027JoinExisti" +
      "ngGameMessage\022\016\n\006gameId\030\001 \002(\r\022\020\n\010passwor" +
      "d\030\002 \001(\t\022\030\n\tautoLeave\030\003 \001(\010:\005false\022\033\n\014spe" +
      "ctateOnly\030\004 \001(\010:\005false\"Y\n\022JoinNewGameMes" +
      "sage\022\036\n\010gameInfo\030\001 \002(\0132\014.NetGameInfo\022\020\n\010" +
      "password\030\002 \001(\t\022\021\n\tautoLeave\030\003 \001(\010\">\n\031Rej" +
      "oinExistingGameMessage\022\016\n\006gameId\030\001 \002(\r\022\021" +
      "\n\tautoLeave\030\002 \001(\010\"s\n\022JoinGameAckMessage\022" +
      "\016\n\006gameId\030\001 \002(\r\022\027\n\017areYouGameAdmin\030\002 \002(\010" +
      "\022\036\n\010gameInfo\030\003 \002(\0132\014.NetGameInfo\022\024\n\014spec" +
      "tateOnly\030\004 \001(\010\"\370\002\n\025JoinGameFailedMessage" +
      "\022\016\n\006gameId\030\001 \002(\r\022K\n\025joinGameFailureReaso" +
      "n\030\002 \002(\0162,.JoinGameFailedMessage.JoinGame" +
      "FailureReason\"\201\002\n\025JoinGameFailureReason\022" +
      "\017\n\013invalidGame\020\001\022\016\n\ngameIsFull\020\002\022\021\n\rgame" +
      "IsRunning\020\003\022\023\n\017invalidPassword\020\004\022\025\n\021notA" +
      "llowedAsGuest\020\005\022\016\n\nnotInvited\020\006\022\021\n\rgameN" +
      "ameInUse\020\007\022\017\n\013badGameName\020\010\022\023\n\017invalidSe" +
      "ttings\020\t\022\024\n\020ipAddressBlocked\020\n\022\020\n\014rejoin" +
      "Failed\020\013\022\027\n\023noSpectatorsAllowed\020\014\"P\n\027Gam" +
      "ePlayerJoinedMessage\022\016\n\006gameId\030\001 \002(\r\022\020\n\010" +
      "playerId\030\002 \002(\r\022\023\n\013isGameAdmin\030\003 \002(\010\"\316\001\n\025" +
      "GamePlayerLeftMessage\022\016\n\006gameId\030\001 \002(\r\022\020\n" +
      "\010playerId\030\002 \002(\r\022I\n\024gamePlayerLeftReason\030" +
      "\003 \002(\0162+.GamePlayerLeftMessage.GamePlayer" +
      "LeftReason\"H\n\024GamePlayerLeftReason\022\021\n\rle" +
      "ftOnRequest\020\000\022\016\n\nleftKicked\020\001\022\r\n\tleftErr" +
      "or\020\002\">\n\032GameSpectatorJoinedMessage\022\016\n\006ga" +
      "meId\030\001 \002(\r\022\020\n\010playerId\030\002 \002(\r\"\212\001\n\030GameSpe" +
      "ctatorLeftMessage\022\016\n\006gameId\030\001 \002(\r\022\020\n\010pla" +
      "yerId\030\002 \002(\r\022L\n\027gameSpectatorLeftReason\030\003" +
      " \002(\0162+.GamePlayerLeftMessage.GamePlayerL" +
      "eftReason\"C\n\027GameAdminChangedMessage\022\016\n\006" +
      "gameId\030\001 \002(\r\022\030\n\020newAdminPlayerId\030\002 \002(\r\"\226" +
      "\002\n\026RemovedFromGameMessage\022\016\n\006gameId\030\001 \002(" +
      "\r\022L\n\025removedFromGameReason\030\002 \002(\0162-.Remov" +
      "edFromGameMessage.RemovedFromGameReason\"" +
      "\235\001\n\025RemovedFromGameReason\022\024\n\020removedOnRe" +
      "quest\020\000\022\022\n\016kickedFromGame\020\001\022\016\n\ngameIsFul" +
      "l\020\002\022\021\n\rgameIsRunning\020\003\022\017\n\013gameTimeout\020\004\022" +
      "\026\n\022removedStartFailed\020\005\022\016\n\ngameClosed\020\006\"" +
      "<\n\030KickPlayerRequestMessage\022\016\n\006gameId\030\001 " +
      "\002(\r\022\020\n\010playerId\030\002 \002(\r\")\n\027LeaveGameReques" +
      "tMessage\022\016\n\006gameId\030\001 \002(\r\"=\n\031InvitePlayer" +
      "ToGameMessage\022\016\n\006gameId\030\001 \002(\r\022\020\n\010playerI" +
      "d\030\002 \002(\r\"R\n\023InviteNotifyMessage\022\016\n\006gameId" +
      "\030\001 \002(\r\022\023\n\013playerIdWho\030\002 \002(\r\022\026\n\016playerIdB" +
      "yWhom\030\003 \002(\r\"\270\001\n\033RejectGameInvitationMess" +
      "age\022\016\n\006gameId\030\001 \002(\r\022H\n\016myRejectReason\030\002 " +
      "\002(\01620.RejectGameInvitationMessage.Reject" +
      "GameInvReason\"?\n\023RejectGameInvReason\022\022\n\016" +
      "rejectReasonNo\020\000\022\024\n\020rejectReasonBusy\020\001\"\210" +
      "\001\n\026RejectInvNotifyMessage\022\016\n\006gameId\030\001 \002(" +
      "\r\022\020\n\010playerId\030\002 \002(\r\022L\n\022playerRejectReaso" +
      "n\030\003 \002(\01620.RejectGameInvitationMessage.Re" +
      "jectGameInvReason\"\262\001\n\021StartEventMessage\022" +
      "\016\n\006gameId\030\001 \002(\r\0229\n\016startEventType\030\002 \002(\0162" +
      "!.StartEventMessage.StartEventType\022\037\n\027fi" +
      "llWithComputerPlayers\030\003 \001(\010\"1\n\016StartEven" +
      "tType\022\016\n\nstartEvent\020\000\022\017\n\013rejoinEvent\020\001\"&" +
      "\n\024StartEventAckMessage\022\016\n\006gameId\030\001 \002(\r\"_" +
      "\n\027GameStartInitialMessage\022\016\n\006gameId\030\001 \002(" +
      "\r\022\033\n\023startDealerPlayerId\030\002 \002(\r\022\027\n\013player" +
      "Seats\030\003 \003(\rB\002\020\001\"\325\001\n\026GameStartRejoinMessa" +
      "ge\022\016\n\006gameId\030\001 \002(\r\022\033\n\023startDealerPlayerI" +
      "d\030\002 \002(\r\022\017\n\007handNum\030\003 \002(\r\022B\n\020rejoinPlayer" +
      "Data\030\004 \003(\0132(.GameStartRejoinMessage.Rejo" +
      "inPlayerData\0329\n\020RejoinPlayerData\022\020\n\010play" +
      "erId\030\001 \002(\r\022\023\n\013playerMoney\030\002 \002(\r\"\363\001\n\020Hand" +
      "StartMessage\022\016\n\006gameId\030\001 \002(\r\0220\n\nplainCar" +
      "ds\030\002 \001(\0132\034.HandStartMessage.PlainCards\022\026" +
      "\n\016encryptedCards\030\003 \001(\014\022\022\n\nsmallBlind\030\004 \002" +
      "(\r\022#\n\nseatStates\030\005 \003(\0162\017.NetPlayerState\022" +
      "\026\n\016dealerPlayerId\030\006 \001(\r\0324\n\nPlainCards\022\022\n" +
      "\nplainCard1\030\001 \002(\r\022\022\n\nplainCard2\030\002 \002(\r\"X\n" +
      "\022PlayersTurnMessage\022\016\n\006gameId\030\001 \002(\r\022\020\n\010p" +
      "layerId\030\002 \002(\r\022 \n\tgameState\030\003 \002(\0162\r.NetGa" +
      "meState\"\226\001\n\026MyActionRequestMessage\022\016\n\006ga" +
      "meId\030\001 \002(\r\022\017\n\007handNum\030\002 \002(\r\022 \n\tgameState" +
      "\030\003 \002(\0162\r.NetGameState\022\"\n\010myAction\030\004 \002(\0162" +
      "\020.NetPlayerAction\022\025\n\rmyRelativeBet\030\005 \002(\r" +
      "\"\271\002\n\031YourActionRejectedMessage\022\016\n\006gameId" +
      "\030\001 \002(\r\022 \n\tgameState\030\002 \002(\0162\r.NetGameState" +
      "\022$\n\nyourAction\030\003 \002(\0162\020.NetPlayerAction\022\027" +
      "\n\017yourRelativeBet\030\004 \002(\r\022C\n\017rejectionReas" +
      "on\030\005 \002(\0162*.YourActionRejectedMessage.Rej" +
      "ectionReason\"f\n\017RejectionReason\022\034\n\030rejec" +
      "tedInvalidGameState\020\001\022\027\n\023rejectedNotYour" +
      "Turn\020\002\022\034\n\030rejectedActionNotAllowed\020\003\"\335\001\n" +
      "\030PlayersActionDoneMessage\022\016\n\006gameId\030\001 \002(" +
      "\r\022\020\n\010playerId\030\002 \002(\r\022 \n\tgameState\030\003 \002(\0162\r" +
      ".NetGameState\022&\n\014playerAction\030\004 \002(\0162\020.Ne" +
      "tPlayerAction\022\026\n\016totalPlayerBet\030\005 \002(\r\022\023\n" +
      "\013playerMoney\030\006 \002(\r\022\022\n\nhighestSet\030\007 \002(\r\022\024" +
      "\n\014minimumRaise\030\010 \002(\r\"_\n\024DealFlopCardsMes" +
      "sage\022\016\n\006gameId\030\001 \002(\r\022\021\n\tflopCard1\030\002 \002(\r\022" +
      "\021\n\tflopCard2\030\003 \002(\r\022\021\n\tflopCard3\030\004 \002(\r\"7\n" +
      "\023DealTurnCardMessage\022\016\n\006gameId\030\001 \002(\r\022\020\n\010" +
      "turnCard\030\002 \002(\r\"9\n\024DealRiverCardMessage\022\016" +
      "\n\006gameId\030\001 \002(\r\022\021\n\triverCard\030\002 \002(\r\"\252\001\n\025Al" +
      "lInShowCardsMessage\022\016\n\006gameId\030\001 \002(\r\0228\n\014p" +
      "layersAllIn\030\002 \003(\0132\".AllInShowCardsMessag" +
      "e.PlayerAllIn\032G\n\013PlayerAllIn\022\020\n\010playerId" +
      "\030\001 \002(\r\022\022\n\nallInCard1\030\002 \002(\r\022\022\n\nallInCard2" +
      "\030\003 \002(\r\"Q\n\031EndOfHandShowCardsMessage\022\016\n\006g" +
      "ameId\030\001 \002(\r\022$\n\rplayerResults\030\002 \003(\0132\r.Pla" +
      "yerResult\"d\n\031EndOfHandHideCardsMessage\022\016" +
      "\n\006gameId\030\001 \002(\r\022\020\n\010playerId\030\002 \002(\r\022\020\n\010mone" +
      "yWon\030\003 \002(\r\022\023\n\013playerMoney\030\004 \002(\r\"\033\n\031ShowM" +
      "yCardsRequestMessage\"@\n\031AfterHandShowCar" +
      "dsMessage\022#\n\014playerResult\030\001 \002(\0132\r.Player" +
      "Result\":\n\020EndOfGameMessage\022\016\n\006gameId\030\001 \002" +
      "(\r\022\026\n\016winnerPlayerId\030\002 \002(\r\"B\n\026PlayerIdCh" +
      "angedMessage\022\023\n\013oldPlayerId\030\001 \002(\r\022\023\n\013new" +
      "PlayerId\030\002 \002(\r\"8\n\024AskKickPlayerMessage\022\016" +
      "\n\006gameId\030\001 \002(\r\022\020\n\010playerId\030\002 \002(\r\"\247\002\n\024Ask" +
      "KickDeniedMessage\022\016\n\006gameId\030\001 \002(\r\022\020\n\010pla" +
      "yerId\030\002 \002(\r\022@\n\020kickDeniedReason\030\003 \002(\0162&." +
      "AskKickDeniedMessage.KickDeniedReason\"\252\001" +
      "\n\020KickDeniedReason\022\036\n\032kickDeniedInvalidG" +
      "ameState\020\000\022\031\n\025kickDeniedNotPossible\020\001\022\033\n" +
      "\027kickDeniedTryAgainLater\020\002\022\037\n\033kickDenied" +
      "AlreadyInProgress\020\003\022\035\n\031kickDeniedInvalid" +
      "PlayerId\020\004\"\245\001\n\030StartKickPetitionMessage\022" +
      "\016\n\006gameId\030\001 \002(\r\022\022\n\npetitionId\030\002 \002(\r\022\031\n\021p" +
      "roposingPlayerId\030\003 \002(\r\022\024\n\014kickPlayerId\030\004" +
      " \002(\r\022\026\n\016kickTimeoutSec\030\005 \002(\r\022\034\n\024numVotes" +
      "NeededToKick\030\006 \002(\r\"N\n\026VoteKickRequestMes" +
      "sage\022\016\n\006gameId\030\001 \002(\r\022\022\n\npetitionId\030\002 \002(\r" +
      "\022\020\n\010voteKick\030\003 \002(\010\"\337\001\n\024VoteKickReplyMess" +
      "age\022\016\n\006gameId\030\001 \002(\r\022\022\n\npetitionId\030\002 \002(\r\022" +
      "B\n\021voteKickReplyType\030\003 \002(\0162\'.VoteKickRep" +
      "lyMessage.VoteKickReplyType\"_\n\021VoteKickR" +
      "eplyType\022\017\n\013voteKickAck\020\000\022\031\n\025voteKickDen" +
      "iedInvalid\020\001\022\036\n\032voteKickDeniedAlreadyVot" +
      "ed\020\002\"\240\001\n\031KickPetitionUpdateMessage\022\016\n\006ga" +
      "meId\030\001 \002(\r\022\022\n\npetitionId\030\002 \002(\r\022\036\n\026numVot" +
      "esAgainstKicking\030\003 \002(\r\022!\n\031numVotesInFavo" +
      "urOfKicking\030\004 \002(\r\022\034\n\024numVotesNeededToKic" +
      "k\030\005 \002(\r\"\344\002\n\026EndKickPetitionMessage\022\016\n\006ga" +
      "meId\030\001 \002(\r\022\022\n\npetitionId\030\002 \002(\r\022\036\n\026numVot" +
      "esAgainstKicking\030\003 \002(\r\022!\n\031numVotesInFavo" +
      "urOfKicking\030\004 \002(\r\022\032\n\022resultPlayerKicked\030" +
      "\005 \002(\r\022D\n\021petitionEndReason\030\006 \002(\0162).EndKi" +
      "ckPetitionMessage.PetitionEndReason\"\200\001\n\021" +
      "PetitionEndReason\022\032\n\026petitionEndEnoughVo" +
      "tes\020\000\022\034\n\030petitionEndTooFewPlayers\020\001\022\031\n\025p" +
      "etitionEndPlayerLeft\020\002\022\026\n\022petitionEndTim" +
      "eout\020\003\"\357\001\n\021StatisticsMessage\0229\n\016statisti" +
      "csData\030\001 \003(\0132!.StatisticsMessage.Statist" +
      "icsData\032\236\001\n\016StatisticsData\022H\n\016statistics" +
      "Type\030\001 \002(\01620.StatisticsMessage.Statistic" +
      "sData.StatisticsType\022\027\n\017statisticsValue\030" +
      "\002 \002(\r\")\n\016StatisticsType\022\027\n\023statNumberOfP" +
      "layers\020\001\"T\n\022ChatRequestMessage\022\024\n\014target" +
      "GameId\030\001 \001(\r\022\026\n\016targetPlayerId\030\002 \001(\r\022\020\n\010" +
      "chatText\030\003 \002(\t\"\330\001\n\013ChatMessage\022\016\n\006gameId" +
      "\030\001 \001(\r\022\020\n\010playerId\030\002 \001(\r\022\'\n\010chatType\030\003 \002" +
      "(\0162\025.ChatMessage.ChatType\022\020\n\010chatText\030\004 " +
      "\002(\t\"l\n\010ChatType\022\021\n\rchatTypeLobby\020\000\022\020\n\014ch" +
      "atTypeGame\020\001\022\017\n\013chatTypeBot\020\002\022\025\n\021chatTyp" +
      "eBroadcast\020\003\022\023\n\017chatTypePrivate\020\004\"%\n\021Cha" +
      "tRejectMessage\022\020\n\010chatText\030\001 \002(\t\")\n\rDial" +
      "ogMessage\022\030\n\020notificationText\030\001 \002(\t\"\321\001\n\025" +
      "TimeoutWarningMessage\022;\n\rtimeoutReason\030\001" +
      " \002(\0162$.TimeoutWarningMessage.TimeoutReas" +
      "on\022\030\n\020remainingSeconds\030\002 \002(\r\"a\n\rTimeoutR" +
      "eason\022\031\n\025timeoutNoDataReceived\020\000\022\027\n\023time" +
      "outInactiveGame\020\001\022\034\n\030timeoutKickAfterAut" +
      "ofold\020\002\"\025\n\023ResetTimeoutMessage\"K\n\023Report" +
      "AvatarMessage\022\030\n\020reportedPlayerId\030\001 \002(\r\022" +
      "\032\n\022reportedAvatarHash\030\002 \002(\014\"\336\001\n\026ReportAv" +
      "atarAckMessage\022\030\n\020reportedPlayerId\030\001 \002(\r" +
      "\022F\n\022reportAvatarResult\030\002 \002(\0162*.ReportAva" +
      "tarAckMessage.ReportAvatarResult\"b\n\022Repo" +
      "rtAvatarResult\022\030\n\024avatarReportAccepted\020\000" +
      "\022\031\n\025avatarReportDuplicate\020\001\022\027\n\023avatarRep" +
      "ortInvalid\020\002\"+\n\021ReportGameMessage\022\026\n\016rep" +
      "ortedGameId\030\001 \002(\r\"\314\001\n\024ReportGameAckMessa" +
      "ge\022\026\n\016reportedGameId\030\001 \002(\r\022@\n\020reportGame" +
      "Result\030\002 \002(\0162&.ReportGameAckMessage.Repo" +
      "rtGameResult\"Z\n\020ReportGameResult\022\026\n\022game" +
      "ReportAccepted\020\000\022\027\n\023gameReportDuplicate\020" +
      "\001\022\025\n\021gameReportInvalid\020\002\"\224\003\n\014ErrorMessag" +
      "e\022.\n\013errorReason\030\001 \002(\0162\031.ErrorMessage.Er" +
      "rorReason\"\323\002\n\013ErrorReason\022\020\n\014custReserve" +
      "d\020\000\022\033\n\027initVersionNotSupported\020\001\022\022\n\016init" +
      "ServerFull\020\002\022\023\n\017initAuthFailure\020\003\022\027\n\023ini" +
      "tPlayerNameInUse\020\004\022\031\n\025initInvalidPlayerN" +
      "ame\020\005\022\031\n\025initServerMaintenance\020\006\022\017\n\013init" +
      "Blocked\020\007\022\022\n\016avatarTooLarge\020\010\022\021\n\rinvalid" +
      "Packet\020\t\022\020\n\014invalidState\020\n\022\024\n\020kickedFrom" +
      "Server\020\013\022\024\n\020bannedFromServer\020\014\022\023\n\017blocke" +
      "dByServer\020\r\022\022\n\016sessionTimeout\020\016\".\n\026Admin" +
      "RemoveGameMessage\022\024\n\014removeGameId\030\001 \002(\r\"" +
      "\305\001\n\031AdminRemoveGameAckMessage\022\024\n\014removeG" +
      "ameId\030\001 \002(\r\022J\n\020removeGameResult\030\002 \002(\01620." +
      "AdminRemoveGameAckMessage.AdminRemoveGam" +
      "eResult\"F\n\025AdminRemoveGameResult\022\026\n\022game" +
      "RemoveAccepted\020\000\022\025\n\021gameRemoveInvalid\020\001\"" +
      ",\n\025AdminBanPlayerMessage\022\023\n\013banPlayerId\030" +
      "\001 \002(\r\"\375\001\n\030AdminBanPlayerAckMessage\022\023\n\013ba" +
      "nPlayerId\030\001 \002(\r\022G\n\017banPlayerResult\030\002 \002(\016" +
      "2..AdminBanPlayerAckMessage.AdminBanPlay" +
      "erResult\"\202\001\n\024AdminBanPlayerResult\022\025\n\021ban" +
      "PlayerAccepted\020\000\022\024\n\020banPlayerPending\020\001\022\021" +
      "\n\rbanPlayerNoDB\020\002\022\024\n\020banPlayerDBError\020\003\022" +
      "\024\n\020banPlayerInvalid\020\004\"\2278\n\016PokerTHMessage" +
      "\0227\n\013messageType\030\001 \002(\0162\".PokerTHMessage.P" +
      "okerTHMessageType\022)\n\017announceMessage\030\002 \001" +
      "(\0132\020.AnnounceMessage\022!\n\013initMessage\030\003 \001(" +
      "\0132\014.InitMessage\022?\n\032authServerChallengeMe" +
      "ssage\030\004 \001(\0132\033.AuthServerChallengeMessage" +
      "\022=\n\031authClientResponseMessage\030\005 \001(\0132\032.Au" +
      "thClientResponseMessage\022E\n\035authServerVer" +
      "ificationMessage\030\006 \001(\0132\036.AuthServerVerif" +
      "icationMessage\022\'\n\016initAckMessage\030\007 \001(\0132\017" +
      ".InitAckMessage\0223\n\024avatarRequestMessage\030" +
      "\010 \001(\0132\025.AvatarRequestMessage\0221\n\023avatarHe" +
      "aderMessage\030\t \001(\0132\024.AvatarHeaderMessage\022" +
      "-\n\021avatarDataMessage\030\n \001(\0132\022.AvatarDataM" +
      "essage\022+\n\020avatarEndMessage\030\013 \001(\0132\021.Avata" +
      "rEndMessage\0223\n\024unknownAvatarMessage\030\014 \001(" +
      "\0132\025.UnknownAvatarMessage\022-\n\021playerListMe" +
      "ssage\030\r \001(\0132\022.PlayerListMessage\022/\n\022gameL" +
      "istNewMessage\030\016 \001(\0132\023.GameListNewMessage" +
      "\0225\n\025gameListUpdateMessage\030\017 \001(\0132\026.GameLi" +
      "stUpdateMessage\022A\n\033gameListPlayerJoinedM" +
      "essage\030\020 \001(\0132\034.GameListPlayerJoinedMessa" +
      "ge\022=\n\031gameListPlayerLeftMessage\030\021 \001(\0132\032." +
      "GameListPlayerLeftMessage\022A\n\033gameListAdm" +
      "inChangedMessage\030\022 \001(\0132\034.GameListAdminCh" +
      "angedMessage\022;\n\030playerInfoRequestMessage" +
      "\030\023 \001(\0132\031.PlayerInfoRequestMessage\0227\n\026pla" +
      "yerInfoReplyMessage\030\024 \001(\0132\027.PlayerInfoRe" +
      "plyMessage\022?\n\032subscriptionRequestMessage" +
      "\030\025 \001(\0132\033.SubscriptionRequestMessage\0229\n\027j" +
      "oinExistingGameMessage\030\026 \001(\0132\030.JoinExist" +
      "ingGameMessage\022/\n\022joinNewGameMessage\030\027 \001" +
      "(\0132\023.JoinNewGameMessage\022=\n\031rejoinExistin" +
      "gGameMessage\030\030 \001(\0132\032.RejoinExistingGameM" +
      "essage\022/\n\022joinGameAckMessage\030\031 \001(\0132\023.Joi" +
      "nGameAckMessage\0225\n\025joinGameFailedMessage" +
      "\030\032 \001(\0132\026.JoinGameFailedMessage\0229\n\027gamePl" +
      "ayerJoinedMessage\030\033 \001(\0132\030.GamePlayerJoin" +
      "edMessage\0225\n\025gamePlayerLeftMessage\030\034 \001(\013" +
      "2\026.GamePlayerLeftMessage\0229\n\027gameAdminCha" +
      "ngedMessage\030\035 \001(\0132\030.GameAdminChangedMess" +
      "age\0227\n\026removedFromGameMessage\030\036 \001(\0132\027.Re" +
      "movedFromGameMessage\022;\n\030kickPlayerReques" +
      "tMessage\030\037 \001(\0132\031.KickPlayerRequestMessag" +
      "e\0229\n\027leaveGameRequestMessage\030  \001(\0132\030.Lea" +
      "veGameRequestMessage\022=\n\031invitePlayerToGa" +
      "meMessage\030! \001(\0132\032.InvitePlayerToGameMess" +
      "age\0221\n\023inviteNotifyMessage\030\" \001(\0132\024.Invit" +
      "eNotifyMessage\022A\n\033rejectGameInvitationMe" +
      "ssage\030# \001(\0132\034.RejectGameInvitationMessag" +
      "e\0227\n\026rejectInvNotifyMessage\030$ \001(\0132\027.Reje" +
      "ctInvNotifyMessage\022-\n\021startEventMessage\030" +
      "% \001(\0132\022.StartEventMessage\0223\n\024startEventA" +
      "ckMessage\030& \001(\0132\025.StartEventAckMessage\0229" +
      "\n\027gameStartInitialMessage\030\' \001(\0132\030.GameSt" +
      "artInitialMessage\0227\n\026gameStartRejoinMess" +
      "age\030( \001(\0132\027.GameStartRejoinMessage\022+\n\020ha" +
      "ndStartMessage\030) \001(\0132\021.HandStartMessage\022" +
      "/\n\022playersTurnMessage\030* \001(\0132\023.PlayersTur" +
      "nMessage\0227\n\026myActionRequestMessage\030+ \001(\013" +
      "2\027.MyActionRequestMessage\022=\n\031yourActionR" +
      "ejectedMessage\030, \001(\0132\032.YourActionRejecte" +
      "dMessage\022;\n\030playersActionDoneMessage\030- \001" +
      "(\0132\031.PlayersActionDoneMessage\0223\n\024dealFlo" +
      "pCardsMessage\030. \001(\0132\025.DealFlopCardsMessa" +
      "ge\0221\n\023dealTurnCardMessage\030/ \001(\0132\024.DealTu" +
      "rnCardMessage\0223\n\024dealRiverCardMessage\0300 " +
      "\001(\0132\025.DealRiverCardMessage\0225\n\025allInShowC" +
      "ardsMessage\0301 \001(\0132\026.AllInShowCardsMessag" +
      "e\022=\n\031endOfHandShowCardsMessage\0302 \001(\0132\032.E" +
      "ndOfHandShowCardsMessage\022=\n\031endOfHandHid" +
      "eCardsMessage\0303 \001(\0132\032.EndOfHandHideCards" +
      "Message\022=\n\031showMyCardsRequestMessage\0304 \001" +
      "(\0132\032.ShowMyCardsRequestMessage\022=\n\031afterH" +
      "andShowCardsMessage\0305 \001(\0132\032.AfterHandSho" +
      "wCardsMessage\022+\n\020endOfGameMessage\0306 \001(\0132" +
      "\021.EndOfGameMessage\0227\n\026playerIdChangedMes" +
      "sage\0307 \001(\0132\027.PlayerIdChangedMessage\0223\n\024a" +
      "skKickPlayerMessage\0308 \001(\0132\025.AskKickPlaye" +
      "rMessage\0223\n\024askKickDeniedMessage\0309 \001(\0132\025" +
      ".AskKickDeniedMessage\022;\n\030startKickPetiti" +
      "onMessage\030: \001(\0132\031.StartKickPetitionMessa" +
      "ge\0227\n\026voteKickRequestMessage\030; \001(\0132\027.Vot" +
      "eKickRequestMessage\0223\n\024voteKickReplyMess" +
      "age\030< \001(\0132\025.VoteKickReplyMessage\022=\n\031kick" +
      "PetitionUpdateMessage\030= \001(\0132\032.KickPetiti" +
      "onUpdateMessage\0227\n\026endKickPetitionMessag" +
      "e\030> \001(\0132\027.EndKickPetitionMessage\022-\n\021stat" +
      "isticsMessage\030? \001(\0132\022.StatisticsMessage\022" +
      "/\n\022chatRequestMessage\030@ \001(\0132\023.ChatReques" +
      "tMessage\022!\n\013chatMessage\030A \001(\0132\014.ChatMess" +
      "age\022-\n\021chatRejectMessage\030B \001(\0132\022.ChatRej" +
      "ectMessage\022%\n\rdialogMessage\030C \001(\0132\016.Dial" +
      "ogMessage\0225\n\025timeoutWarningMessage\030D \001(\013" +
      "2\026.TimeoutWarningMessage\0221\n\023resetTimeout" +
      "Message\030E \001(\0132\024.ResetTimeoutMessage\0221\n\023r" +
      "eportAvatarMessage\030F \001(\0132\024.ReportAvatarM" +
      "essage\0227\n\026reportAvatarAckMessage\030G \001(\0132\027" +
      ".ReportAvatarAckMessage\022-\n\021reportGameMes" +
      "sage\030H \001(\0132\022.ReportGameMessage\0223\n\024report" +
      "GameAckMessage\030I \001(\0132\025.ReportGameAckMess" +
      "age\022#\n\014errorMessage\030J \001(\0132\r.ErrorMessage" +
      "\0227\n\026adminRemoveGameMessage\030K \001(\0132\027.Admin" +
      "RemoveGameMessage\022=\n\031adminRemoveGameAckM" +
      "essage\030L \001(\0132\032.AdminRemoveGameAckMessage",
      "\0225\n\025adminBanPlayerMessage\030M \001(\0132\026.AdminB" +
      "anPlayerMessage\022;\n\030adminBanPlayerAckMess" +
      "age\030N \001(\0132\031.AdminBanPlayerAckMessage\022G\n\036" +
      "gameListSpectatorJoinedMessage\030O \001(\0132\037.G" +
      "ameListSpectatorJoinedMessage\022C\n\034gameLis" +
      "tSpectatorLeftMessage\030P \001(\0132\035.GameListSp" +
      "ectatorLeftMessage\022?\n\032gameSpectatorJoine" +
      "dMessage\030Q \001(\0132\033.GameSpectatorJoinedMess" +
      "age\022;\n\030gameSpectatorLeftMessage\030R \001(\0132\031." +
      "GameSpectatorLeftMessage\"\304\024\n\022PokerTHMess" +
      "ageType\022\030\n\024Type_AnnounceMessage\020\001\022\024\n\020Typ" +
      "e_InitMessage\020\002\022#\n\037Type_AuthServerChalle" +
      "ngeMessage\020\003\022\"\n\036Type_AuthClientResponseM" +
      "essage\020\004\022&\n\"Type_AuthServerVerificationM" +
      "essage\020\005\022\027\n\023Type_InitAckMessage\020\006\022\035\n\031Typ" +
      "e_AvatarRequestMessage\020\007\022\034\n\030Type_AvatarH" +
      "eaderMessage\020\010\022\032\n\026Type_AvatarDataMessage" +
      "\020\t\022\031\n\025Type_AvatarEndMessage\020\n\022\035\n\031Type_Un" +
      "knownAvatarMessage\020\013\022\032\n\026Type_PlayerListM" +
      "essage\020\014\022\033\n\027Type_GameListNewMessage\020\r\022\036\n" +
      "\032Type_GameListUpdateMessage\020\016\022$\n Type_Ga" +
      "meListPlayerJoinedMessage\020\017\022\"\n\036Type_Game" +
      "ListPlayerLeftMessage\020\020\022$\n Type_GameList" +
      "AdminChangedMessage\020\021\022!\n\035Type_PlayerInfo" +
      "RequestMessage\020\022\022\037\n\033Type_PlayerInfoReply" +
      "Message\020\023\022#\n\037Type_SubscriptionRequestMes" +
      "sage\020\024\022 \n\034Type_JoinExistingGameMessage\020\025" +
      "\022\033\n\027Type_JoinNewGameMessage\020\026\022\"\n\036Type_Re" +
      "joinExistingGameMessage\020\027\022\033\n\027Type_JoinGa" +
      "meAckMessage\020\030\022\036\n\032Type_JoinGameFailedMes" +
      "sage\020\031\022 \n\034Type_GamePlayerJoinedMessage\020\032" +
      "\022\036\n\032Type_GamePlayerLeftMessage\020\033\022 \n\034Type" +
      "_GameAdminChangedMessage\020\034\022\037\n\033Type_Remov" +
      "edFromGameMessage\020\035\022!\n\035Type_KickPlayerRe" +
      "questMessage\020\036\022 \n\034Type_LeaveGameRequestM" +
      "essage\020\037\022\"\n\036Type_InvitePlayerToGameMessa" +
      "ge\020 \022\034\n\030Type_InviteNotifyMessage\020!\022$\n Ty" +
      "pe_RejectGameInvitationMessage\020\"\022\037\n\033Type" +
      "_RejectInvNotifyMessage\020#\022\032\n\026Type_StartE" +
      "ventMessage\020$\022\035\n\031Type_StartEventAckMessa" +
      "ge\020%\022 \n\034Type_GameStartInitialMessage\020&\022\037" +
      "\n\033Type_GameStartRejoinMessage\020\'\022\031\n\025Type_" +
      "HandStartMessage\020(\022\033\n\027Type_PlayersTurnMe" +
      "ssage\020)\022\037\n\033Type_MyActionRequestMessage\020*" +
      "\022\"\n\036Type_YourActionRejectedMessage\020+\022!\n\035" +
      "Type_PlayersActionDoneMessage\020,\022\035\n\031Type_" +
      "DealFlopCardsMessage\020-\022\034\n\030Type_DealTurnC" +
      "ardMessage\020.\022\035\n\031Type_DealRiverCardMessag" +
      "e\020/\022\036\n\032Type_AllInShowCardsMessage\0200\022\"\n\036T" +
      "ype_EndOfHandShowCardsMessage\0201\022\"\n\036Type_" +
      "EndOfHandHideCardsMessage\0202\022\"\n\036Type_Show" +
      "MyCardsRequestMessage\0203\022\"\n\036Type_AfterHan" +
      "dShowCardsMessage\0204\022\031\n\025Type_EndOfGameMes" +
      "sage\0205\022\037\n\033Type_PlayerIdChangedMessage\0206\022" +
      "\035\n\031Type_AskKickPlayerMessage\0207\022\035\n\031Type_A" +
      "skKickDeniedMessage\0208\022!\n\035Type_StartKickP" +
      "etitionMessage\0209\022\037\n\033Type_VoteKickRequest" +
      "Message\020:\022\035\n\031Type_VoteKickReplyMessage\020;" +
      "\022\"\n\036Type_KickPetitionUpdateMessage\020<\022\037\n\033" +
      "Type_EndKickPetitionMessage\020=\022\032\n\026Type_St" +
      "atisticsMessage\020>\022\033\n\027Type_ChatRequestMes" +
      "sage\020?\022\024\n\020Type_ChatMessage\020@\022\032\n\026Type_Cha" +
      "tRejectMessage\020A\022\026\n\022Type_DialogMessage\020B" +
      "\022\036\n\032Type_TimeoutWarningMessage\020C\022\034\n\030Type" +
      "_ResetTimeoutMessage\020D\022\034\n\030Type_ReportAva" +
      "tarMessage\020E\022\037\n\033Type_ReportAvatarAckMess" +
      "age\020F\022\032\n\026Type_ReportGameMessage\020G\022\035\n\031Typ" +
      "e_ReportGameAckMessage\020H\022\025\n\021Type_ErrorMe" +
      "ssage\020I\022\037\n\033Type_AdminRemoveGameMessage\020J" +
      "\022\"\n\036Type_AdminRemoveGameAckMessage\020K\022\036\n\032" +
      "Type_AdminBanPlayerMessage\020L\022!\n\035Type_Adm" +
      "inBanPlayerAckMessage\020M\022\'\n#Type_GameList" +
      "SpectatorJoinedMessage\020N\022%\n!Type_GameLis" +
      "tSpectatorLeftMessage\020O\022#\n\037Type_GameSpec" +
      "tatorJoinedMessage\020P\022!\n\035Type_GameSpectat" +
      "orLeftMessage\020Q*H\n\013NetGameMode\022\022\n\016netGam" +
      "eCreated\020\001\022\022\n\016netGameStarted\020\002\022\021\n\rnetGam" +
      "eClosed\020\003*\226\001\n\014NetGameState\022\023\n\017netStatePr" +
      "eflop\020\000\022\020\n\014netStateFlop\020\001\022\020\n\014netStateTur" +
      "n\020\002\022\021\n\rnetStateRiver\020\003\022\035\n\031netStatePreflo" +
      "pSmallBlind\020\004\022\033\n\027netStatePreflopBigBlind" +
      "\020\005*\230\001\n\017NetPlayerAction\022\021\n\rnetActionNone\020" +
      "\000\022\021\n\rnetActionFold\020\001\022\022\n\016netActionCheck\020\002" +
      "\022\021\n\rnetActionCall\020\003\022\020\n\014netActionBet\020\004\022\022\n" +
      "\016netActionRaise\020\005\022\022\n\016netActionAllIn\020\006*h\n" +
      "\016NetPlayerState\022\030\n\024netPlayerStateNormal\020" +
      "\000\022!\n\035netPlayerStateSessionInactive\020\001\022\031\n\025" +
      "netPlayerStateNoMoney\020\002*d\n\023NetPlayerInfo" +
      "Rights\022\030\n\024netPlayerRightsGuest\020\001\022\031\n\025netP" +
      "layerRightsNormal\020\002\022\030\n\024netPlayerRightsAd" +
      "min\020\003*T\n\rNetAvatarType\022\025\n\021netAvatarImage" +
      "Png\020\001\022\025\n\021netAvatarImageJpg\020\002\022\025\n\021netAvata" +
      "rImageGif\020\003B!\n\023de.pokerth.protocolB\010Prot" +
      "oBufH\003"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
        });
    internal_static_NetGameInfo_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_NetGameInfo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_NetGameInfo_descriptor,
        new java.lang.String[] { "GameName", "NetGameType", "MaxNumPlayers", "RaiseIntervalMode", "RaiseEveryHands", "RaiseEveryMinutes", "EndRaiseMode", "EndRaiseSmallBlindValue", "ProposedGuiSpeed", "DelayBetweenHands", "PlayerActionTimeout", "FirstSmallBlind", "StartMoney", "ManualBlinds", "AllowSpectators", });
    internal_static_PlayerResult_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_PlayerResult_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_PlayerResult_descriptor,
        new java.lang.String[] { "PlayerId", "ResultCard1", "ResultCard2", "BestHandPosition", "MoneyWon", "PlayerMoney", "CardsValue", });
    internal_static_AnnounceMessage_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_AnnounceMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_AnnounceMessage_descriptor,
        new java.lang.String[] { "ProtocolVersion", "LatestGameVersion", "LatestBetaRevision", "ServerType", "NumPlayersOnServer", });
    internal_static_AnnounceMessage_Version_descriptor =
      internal_static_AnnounceMessage_descriptor.getNestedTypes().get(0);
    internal_static_AnnounceMessage_Version_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_AnnounceMessage_Version_descriptor,
        new java.lang.String[] { "MajorVersion", "MinorVersion", });
    internal_static_InitMessage_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_InitMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_InitMessage_descriptor,
        new java.lang.String[] { "RequestedVersion", "BuildId", "MyLastSessionId", "AuthServerPassword", "Login", "NickName", "ClientUserData", "AvatarHash", });
    internal_static_AuthServerChallengeMessage_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_AuthServerChallengeMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_AuthServerChallengeMessage_descriptor,
        new java.lang.String[] { "ServerChallenge", });
    internal_static_AuthClientResponseMessage_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_AuthClientResponseMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_AuthClientResponseMessage_descriptor,
        new java.lang.String[] { "ClientResponse", });
    internal_static_AuthServerVerificationMessage_descriptor =
      getDescriptor().getMessageTypes().get(6);
    internal_static_AuthServerVerificationMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_AuthServerVerificationMessage_descriptor,
        new java.lang.String[] { "ServerVerification", });
    internal_static_InitAckMessage_descriptor =
      getDescriptor().getMessageTypes().get(7);
    internal_static_InitAckMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_InitAckMessage_descriptor,
        new java.lang.String[] { "YourSessionId", "YourPlayerId", "YourAvatarHash", "RejoinGameId", });
    internal_static_AvatarRequestMessage_descriptor =
      getDescriptor().getMessageTypes().get(8);
    internal_static_AvatarRequestMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_AvatarRequestMessage_descriptor,
        new java.lang.String[] { "RequestId", "AvatarHash", });
    internal_static_AvatarHeaderMessage_descriptor =
      getDescriptor().getMessageTypes().get(9);
    internal_static_AvatarHeaderMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_AvatarHeaderMessage_descriptor,
        new java.lang.String[] { "RequestId", "AvatarType", "AvatarSize", });
    internal_static_AvatarDataMessage_descriptor =
      getDescriptor().getMessageTypes().get(10);
    internal_static_AvatarDataMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_AvatarDataMessage_descriptor,
        new java.lang.String[] { "RequestId", "AvatarBlock", });
    internal_static_AvatarEndMessage_descriptor =
      getDescriptor().getMessageTypes().get(11);
    internal_static_AvatarEndMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_AvatarEndMessage_descriptor,
        new java.lang.String[] { "RequestId", });
    internal_static_UnknownAvatarMessage_descriptor =
      getDescriptor().getMessageTypes().get(12);
    internal_static_UnknownAvatarMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_UnknownAvatarMessage_descriptor,
        new java.lang.String[] { "RequestId", });
    internal_static_PlayerListMessage_descriptor =
      getDescriptor().getMessageTypes().get(13);
    internal_static_PlayerListMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_PlayerListMessage_descriptor,
        new java.lang.String[] { "PlayerId", "PlayerListNotification", });
    internal_static_GameListNewMessage_descriptor =
      getDescriptor().getMessageTypes().get(14);
    internal_static_GameListNewMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_GameListNewMessage_descriptor,
        new java.lang.String[] { "GameId", "GameMode", "IsPrivate", "PlayerIds", "AdminPlayerId", "GameInfo", "SpectatorIds", });
    internal_static_GameListUpdateMessage_descriptor =
      getDescriptor().getMessageTypes().get(15);
    internal_static_GameListUpdateMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_GameListUpdateMessage_descriptor,
        new java.lang.String[] { "GameId", "GameMode", });
    internal_static_GameListPlayerJoinedMessage_descriptor =
      getDescriptor().getMessageTypes().get(16);
    internal_static_GameListPlayerJoinedMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_GameListPlayerJoinedMessage_descriptor,
        new java.lang.String[] { "GameId", "PlayerId", });
    internal_static_GameListPlayerLeftMessage_descriptor =
      getDescriptor().getMessageTypes().get(17);
    internal_static_GameListPlayerLeftMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_GameListPlayerLeftMessage_descriptor,
        new java.lang.String[] { "GameId", "PlayerId", });
    internal_static_GameListSpectatorJoinedMessage_descriptor =
      getDescriptor().getMessageTypes().get(18);
    internal_static_GameListSpectatorJoinedMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_GameListSpectatorJoinedMessage_descriptor,
        new java.lang.String[] { "GameId", "PlayerId", });
    internal_static_GameListSpectatorLeftMessage_descriptor =
      getDescriptor().getMessageTypes().get(19);
    internal_static_GameListSpectatorLeftMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_GameListSpectatorLeftMessage_descriptor,
        new java.lang.String[] { "GameId", "PlayerId", });
    internal_static_GameListAdminChangedMessage_descriptor =
      getDescriptor().getMessageTypes().get(20);
    internal_static_GameListAdminChangedMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_GameListAdminChangedMessage_descriptor,
        new java.lang.String[] { "GameId", "NewAdminPlayerId", });
    internal_static_PlayerInfoRequestMessage_descriptor =
      getDescriptor().getMessageTypes().get(21);
    internal_static_PlayerInfoRequestMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_PlayerInfoRequestMessage_descriptor,
        new java.lang.String[] { "PlayerId", });
    internal_static_PlayerInfoReplyMessage_descriptor =
      getDescriptor().getMessageTypes().get(22);
    internal_static_PlayerInfoReplyMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_PlayerInfoReplyMessage_descriptor,
        new java.lang.String[] { "PlayerId", "PlayerInfoData", });
    internal_static_PlayerInfoReplyMessage_PlayerInfoData_descriptor =
      internal_static_PlayerInfoReplyMessage_descriptor.getNestedTypes().get(0);
    internal_static_PlayerInfoReplyMessage_PlayerInfoData_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_PlayerInfoReplyMessage_PlayerInfoData_descriptor,
        new java.lang.String[] { "PlayerName", "IsHuman", "PlayerRights", "CountryCode", "AvatarData", });
    internal_static_PlayerInfoReplyMessage_PlayerInfoData_AvatarData_descriptor =
      internal_static_PlayerInfoReplyMessage_PlayerInfoData_descriptor.getNestedTypes().get(0);
    internal_static_PlayerInfoReplyMessage_PlayerInfoData_AvatarData_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_PlayerInfoReplyMessage_PlayerInfoData_AvatarData_descriptor,
        new java.lang.String[] { "AvatarType", "AvatarHash", });
    internal_static_SubscriptionRequestMessage_descriptor =
      getDescriptor().getMessageTypes().get(23);
    internal_static_SubscriptionRequestMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_SubscriptionRequestMessage_descriptor,
        new java.lang.String[] { "SubscriptionAction", });
    internal_static_JoinExistingGameMessage_descriptor =
      getDescriptor().getMessageTypes().get(24);
    internal_static_JoinExistingGameMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_JoinExistingGameMessage_descriptor,
        new java.lang.String[] { "GameId", "Password", "AutoLeave", "SpectateOnly", });
    internal_static_JoinNewGameMessage_descriptor =
      getDescriptor().getMessageTypes().get(25);
    internal_static_JoinNewGameMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_JoinNewGameMessage_descriptor,
        new java.lang.String[] { "GameInfo", "Password", "AutoLeave", });
    internal_static_RejoinExistingGameMessage_descriptor =
      getDescriptor().getMessageTypes().get(26);
    internal_static_RejoinExistingGameMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_RejoinExistingGameMessage_descriptor,
        new java.lang.String[] { "GameId", "AutoLeave", });
    internal_static_JoinGameAckMessage_descriptor =
      getDescriptor().getMessageTypes().get(27);
    internal_static_JoinGameAckMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_JoinGameAckMessage_descriptor,
        new java.lang.String[] { "GameId", "AreYouGameAdmin", "GameInfo", "SpectateOnly", });
    internal_static_JoinGameFailedMessage_descriptor =
      getDescriptor().getMessageTypes().get(28);
    internal_static_JoinGameFailedMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_JoinGameFailedMessage_descriptor,
        new java.lang.String[] { "GameId", "JoinGameFailureReason", });
    internal_static_GamePlayerJoinedMessage_descriptor =
      getDescriptor().getMessageTypes().get(29);
    internal_static_GamePlayerJoinedMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_GamePlayerJoinedMessage_descriptor,
        new java.lang.String[] { "GameId", "PlayerId", "IsGameAdmin", });
    internal_static_GamePlayerLeftMessage_descriptor =
      getDescriptor().getMessageTypes().get(30);
    internal_static_GamePlayerLeftMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_GamePlayerLeftMessage_descriptor,
        new java.lang.String[] { "GameId", "PlayerId", "GamePlayerLeftReason", });
    internal_static_GameSpectatorJoinedMessage_descriptor =
      getDescriptor().getMessageTypes().get(31);
    internal_static_GameSpectatorJoinedMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_GameSpectatorJoinedMessage_descriptor,
        new java.lang.String[] { "GameId", "PlayerId", });
    internal_static_GameSpectatorLeftMessage_descriptor =
      getDescriptor().getMessageTypes().get(32);
    internal_static_GameSpectatorLeftMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_GameSpectatorLeftMessage_descriptor,
        new java.lang.String[] { "GameId", "PlayerId", "GameSpectatorLeftReason", });
    internal_static_GameAdminChangedMessage_descriptor =
      getDescriptor().getMessageTypes().get(33);
    internal_static_GameAdminChangedMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_GameAdminChangedMessage_descriptor,
        new java.lang.String[] { "GameId", "NewAdminPlayerId", });
    internal_static_RemovedFromGameMessage_descriptor =
      getDescriptor().getMessageTypes().get(34);
    internal_static_RemovedFromGameMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_RemovedFromGameMessage_descriptor,
        new java.lang.String[] { "GameId", "RemovedFromGameReason", });
    internal_static_KickPlayerRequestMessage_descriptor =
      getDescriptor().getMessageTypes().get(35);
    internal_static_KickPlayerRequestMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_KickPlayerRequestMessage_descriptor,
        new java.lang.String[] { "GameId", "PlayerId", });
    internal_static_LeaveGameRequestMessage_descriptor =
      getDescriptor().getMessageTypes().get(36);
    internal_static_LeaveGameRequestMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_LeaveGameRequestMessage_descriptor,
        new java.lang.String[] { "GameId", });
    internal_static_InvitePlayerToGameMessage_descriptor =
      getDescriptor().getMessageTypes().get(37);
    internal_static_InvitePlayerToGameMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_InvitePlayerToGameMessage_descriptor,
        new java.lang.String[] { "GameId", "PlayerId", });
    internal_static_InviteNotifyMessage_descriptor =
      getDescriptor().getMessageTypes().get(38);
    internal_static_InviteNotifyMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_InviteNotifyMessage_descriptor,
        new java.lang.String[] { "GameId", "PlayerIdWho", "PlayerIdByWhom", });
    internal_static_RejectGameInvitationMessage_descriptor =
      getDescriptor().getMessageTypes().get(39);
    internal_static_RejectGameInvitationMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_RejectGameInvitationMessage_descriptor,
        new java.lang.String[] { "GameId", "MyRejectReason", });
    internal_static_RejectInvNotifyMessage_descriptor =
      getDescriptor().getMessageTypes().get(40);
    internal_static_RejectInvNotifyMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_RejectInvNotifyMessage_descriptor,
        new java.lang.String[] { "GameId", "PlayerId", "PlayerRejectReason", });
    internal_static_StartEventMessage_descriptor =
      getDescriptor().getMessageTypes().get(41);
    internal_static_StartEventMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_StartEventMessage_descriptor,
        new java.lang.String[] { "GameId", "StartEventType", "FillWithComputerPlayers", });
    internal_static_StartEventAckMessage_descriptor =
      getDescriptor().getMessageTypes().get(42);
    internal_static_StartEventAckMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_StartEventAckMessage_descriptor,
        new java.lang.String[] { "GameId", });
    internal_static_GameStartInitialMessage_descriptor =
      getDescriptor().getMessageTypes().get(43);
    internal_static_GameStartInitialMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_GameStartInitialMessage_descriptor,
        new java.lang.String[] { "GameId", "StartDealerPlayerId", "PlayerSeats", });
    internal_static_GameStartRejoinMessage_descriptor =
      getDescriptor().getMessageTypes().get(44);
    internal_static_GameStartRejoinMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_GameStartRejoinMessage_descriptor,
        new java.lang.String[] { "GameId", "StartDealerPlayerId", "HandNum", "RejoinPlayerData", });
    internal_static_GameStartRejoinMessage_RejoinPlayerData_descriptor =
      internal_static_GameStartRejoinMessage_descriptor.getNestedTypes().get(0);
    internal_static_GameStartRejoinMessage_RejoinPlayerData_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_GameStartRejoinMessage_RejoinPlayerData_descriptor,
        new java.lang.String[] { "PlayerId", "PlayerMoney", });
    internal_static_HandStartMessage_descriptor =
      getDescriptor().getMessageTypes().get(45);
    internal_static_HandStartMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_HandStartMessage_descriptor,
        new java.lang.String[] { "GameId", "PlainCards", "EncryptedCards", "SmallBlind", "SeatStates", "DealerPlayerId", });
    internal_static_HandStartMessage_PlainCards_descriptor =
      internal_static_HandStartMessage_descriptor.getNestedTypes().get(0);
    internal_static_HandStartMessage_PlainCards_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_HandStartMessage_PlainCards_descriptor,
        new java.lang.String[] { "PlainCard1", "PlainCard2", });
    internal_static_PlayersTurnMessage_descriptor =
      getDescriptor().getMessageTypes().get(46);
    internal_static_PlayersTurnMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_PlayersTurnMessage_descriptor,
        new java.lang.String[] { "GameId", "PlayerId", "GameState", });
    internal_static_MyActionRequestMessage_descriptor =
      getDescriptor().getMessageTypes().get(47);
    internal_static_MyActionRequestMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_MyActionRequestMessage_descriptor,
        new java.lang.String[] { "GameId", "HandNum", "GameState", "MyAction", "MyRelativeBet", });
    internal_static_YourActionRejectedMessage_descriptor =
      getDescriptor().getMessageTypes().get(48);
    internal_static_YourActionRejectedMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_YourActionRejectedMessage_descriptor,
        new java.lang.String[] { "GameId", "GameState", "YourAction", "YourRelativeBet", "RejectionReason", });
    internal_static_PlayersActionDoneMessage_descriptor =
      getDescriptor().getMessageTypes().get(49);
    internal_static_PlayersActionDoneMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_PlayersActionDoneMessage_descriptor,
        new java.lang.String[] { "GameId", "PlayerId", "GameState", "PlayerAction", "TotalPlayerBet", "PlayerMoney", "HighestSet", "MinimumRaise", });
    internal_static_DealFlopCardsMessage_descriptor =
      getDescriptor().getMessageTypes().get(50);
    internal_static_DealFlopCardsMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_DealFlopCardsMessage_descriptor,
        new java.lang.String[] { "GameId", "FlopCard1", "FlopCard2", "FlopCard3", });
    internal_static_DealTurnCardMessage_descriptor =
      getDescriptor().getMessageTypes().get(51);
    internal_static_DealTurnCardMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_DealTurnCardMessage_descriptor,
        new java.lang.String[] { "GameId", "TurnCard", });
    internal_static_DealRiverCardMessage_descriptor =
      getDescriptor().getMessageTypes().get(52);
    internal_static_DealRiverCardMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_DealRiverCardMessage_descriptor,
        new java.lang.String[] { "GameId", "RiverCard", });
    internal_static_AllInShowCardsMessage_descriptor =
      getDescriptor().getMessageTypes().get(53);
    internal_static_AllInShowCardsMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_AllInShowCardsMessage_descriptor,
        new java.lang.String[] { "GameId", "PlayersAllIn", });
    internal_static_AllInShowCardsMessage_PlayerAllIn_descriptor =
      internal_static_AllInShowCardsMessage_descriptor.getNestedTypes().get(0);
    internal_static_AllInShowCardsMessage_PlayerAllIn_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_AllInShowCardsMessage_PlayerAllIn_descriptor,
        new java.lang.String[] { "PlayerId", "AllInCard1", "AllInCard2", });
    internal_static_EndOfHandShowCardsMessage_descriptor =
      getDescriptor().getMessageTypes().get(54);
    internal_static_EndOfHandShowCardsMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_EndOfHandShowCardsMessage_descriptor,
        new java.lang.String[] { "GameId", "PlayerResults", });
    internal_static_EndOfHandHideCardsMessage_descriptor =
      getDescriptor().getMessageTypes().get(55);
    internal_static_EndOfHandHideCardsMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_EndOfHandHideCardsMessage_descriptor,
        new java.lang.String[] { "GameId", "PlayerId", "MoneyWon", "PlayerMoney", });
    internal_static_ShowMyCardsRequestMessage_descriptor =
      getDescriptor().getMessageTypes().get(56);
    internal_static_ShowMyCardsRequestMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ShowMyCardsRequestMessage_descriptor,
        new java.lang.String[] { });
    internal_static_AfterHandShowCardsMessage_descriptor =
      getDescriptor().getMessageTypes().get(57);
    internal_static_AfterHandShowCardsMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_AfterHandShowCardsMessage_descriptor,
        new java.lang.String[] { "PlayerResult", });
    internal_static_EndOfGameMessage_descriptor =
      getDescriptor().getMessageTypes().get(58);
    internal_static_EndOfGameMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_EndOfGameMessage_descriptor,
        new java.lang.String[] { "GameId", "WinnerPlayerId", });
    internal_static_PlayerIdChangedMessage_descriptor =
      getDescriptor().getMessageTypes().get(59);
    internal_static_PlayerIdChangedMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_PlayerIdChangedMessage_descriptor,
        new java.lang.String[] { "OldPlayerId", "NewPlayerId", });
    internal_static_AskKickPlayerMessage_descriptor =
      getDescriptor().getMessageTypes().get(60);
    internal_static_AskKickPlayerMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_AskKickPlayerMessage_descriptor,
        new java.lang.String[] { "GameId", "PlayerId", });
    internal_static_AskKickDeniedMessage_descriptor =
      getDescriptor().getMessageTypes().get(61);
    internal_static_AskKickDeniedMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_AskKickDeniedMessage_descriptor,
        new java.lang.String[] { "GameId", "PlayerId", "KickDeniedReason", });
    internal_static_StartKickPetitionMessage_descriptor =
      getDescriptor().getMessageTypes().get(62);
    internal_static_StartKickPetitionMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_StartKickPetitionMessage_descriptor,
        new java.lang.String[] { "GameId", "PetitionId", "ProposingPlayerId", "KickPlayerId", "KickTimeoutSec", "NumVotesNeededToKick", });
    internal_static_VoteKickRequestMessage_descriptor =
      getDescriptor().getMessageTypes().get(63);
    internal_static_VoteKickRequestMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_VoteKickRequestMessage_descriptor,
        new java.lang.String[] { "GameId", "PetitionId", "VoteKick", });
    internal_static_VoteKickReplyMessage_descriptor =
      getDescriptor().getMessageTypes().get(64);
    internal_static_VoteKickReplyMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_VoteKickReplyMessage_descriptor,
        new java.lang.String[] { "GameId", "PetitionId", "VoteKickReplyType", });
    internal_static_KickPetitionUpdateMessage_descriptor =
      getDescriptor().getMessageTypes().get(65);
    internal_static_KickPetitionUpdateMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_KickPetitionUpdateMessage_descriptor,
        new java.lang.String[] { "GameId", "PetitionId", "NumVotesAgainstKicking", "NumVotesInFavourOfKicking", "NumVotesNeededToKick", });
    internal_static_EndKickPetitionMessage_descriptor =
      getDescriptor().getMessageTypes().get(66);
    internal_static_EndKickPetitionMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_EndKickPetitionMessage_descriptor,
        new java.lang.String[] { "GameId", "PetitionId", "NumVotesAgainstKicking", "NumVotesInFavourOfKicking", "ResultPlayerKicked", "PetitionEndReason", });
    internal_static_StatisticsMessage_descriptor =
      getDescriptor().getMessageTypes().get(67);
    internal_static_StatisticsMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_StatisticsMessage_descriptor,
        new java.lang.String[] { "StatisticsData", });
    internal_static_StatisticsMessage_StatisticsData_descriptor =
      internal_static_StatisticsMessage_descriptor.getNestedTypes().get(0);
    internal_static_StatisticsMessage_StatisticsData_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_StatisticsMessage_StatisticsData_descriptor,
        new java.lang.String[] { "StatisticsType", "StatisticsValue", });
    internal_static_ChatRequestMessage_descriptor =
      getDescriptor().getMessageTypes().get(68);
    internal_static_ChatRequestMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ChatRequestMessage_descriptor,
        new java.lang.String[] { "TargetGameId", "TargetPlayerId", "ChatText", });
    internal_static_ChatMessage_descriptor =
      getDescriptor().getMessageTypes().get(69);
    internal_static_ChatMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ChatMessage_descriptor,
        new java.lang.String[] { "GameId", "PlayerId", "ChatType", "ChatText", });
    internal_static_ChatRejectMessage_descriptor =
      getDescriptor().getMessageTypes().get(70);
    internal_static_ChatRejectMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ChatRejectMessage_descriptor,
        new java.lang.String[] { "ChatText", });
    internal_static_DialogMessage_descriptor =
      getDescriptor().getMessageTypes().get(71);
    internal_static_DialogMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_DialogMessage_descriptor,
        new java.lang.String[] { "NotificationText", });
    internal_static_TimeoutWarningMessage_descriptor =
      getDescriptor().getMessageTypes().get(72);
    internal_static_TimeoutWarningMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_TimeoutWarningMessage_descriptor,
        new java.lang.String[] { "TimeoutReason", "RemainingSeconds", });
    internal_static_ResetTimeoutMessage_descriptor =
      getDescriptor().getMessageTypes().get(73);
    internal_static_ResetTimeoutMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ResetTimeoutMessage_descriptor,
        new java.lang.String[] { });
    internal_static_ReportAvatarMessage_descriptor =
      getDescriptor().getMessageTypes().get(74);
    internal_static_ReportAvatarMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ReportAvatarMessage_descriptor,
        new java.lang.String[] { "ReportedPlayerId", "ReportedAvatarHash", });
    internal_static_ReportAvatarAckMessage_descriptor =
      getDescriptor().getMessageTypes().get(75);
    internal_static_ReportAvatarAckMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ReportAvatarAckMessage_descriptor,
        new java.lang.String[] { "ReportedPlayerId", "ReportAvatarResult", });
    internal_static_ReportGameMessage_descriptor =
      getDescriptor().getMessageTypes().get(76);
    internal_static_ReportGameMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ReportGameMessage_descriptor,
        new java.lang.String[] { "ReportedGameId", });
    internal_static_ReportGameAckMessage_descriptor =
      getDescriptor().getMessageTypes().get(77);
    internal_static_ReportGameAckMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ReportGameAckMessage_descriptor,
        new java.lang.String[] { "ReportedGameId", "ReportGameResult", });
    internal_static_ErrorMessage_descriptor =
      getDescriptor().getMessageTypes().get(78);
    internal_static_ErrorMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ErrorMessage_descriptor,
        new java.lang.String[] { "ErrorReason", });
    internal_static_AdminRemoveGameMessage_descriptor =
      getDescriptor().getMessageTypes().get(79);
    internal_static_AdminRemoveGameMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_AdminRemoveGameMessage_descriptor,
        new java.lang.String[] { "RemoveGameId", });
    internal_static_AdminRemoveGameAckMessage_descriptor =
      getDescriptor().getMessageTypes().get(80);
    internal_static_AdminRemoveGameAckMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_AdminRemoveGameAckMessage_descriptor,
        new java.lang.String[] { "RemoveGameId", "RemoveGameResult", });
    internal_static_AdminBanPlayerMessage_descriptor =
      getDescriptor().getMessageTypes().get(81);
    internal_static_AdminBanPlayerMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_AdminBanPlayerMessage_descriptor,
        new java.lang.String[] { "BanPlayerId", });
    internal_static_AdminBanPlayerAckMessage_descriptor =
      getDescriptor().getMessageTypes().get(82);
    internal_static_AdminBanPlayerAckMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_AdminBanPlayerAckMessage_descriptor,
        new java.lang.String[] { "BanPlayerId", "BanPlayerResult", });
    internal_static_PokerTHMessage_descriptor =
      getDescriptor().getMessageTypes().get(83);
    internal_static_PokerTHMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_PokerTHMessage_descriptor,
        new java.lang.String[] { "MessageType", "AnnounceMessage", "InitMessage", "AuthServerChallengeMessage", "AuthClientResponseMessage", "AuthServerVerificationMessage", "InitAckMessage", "AvatarRequestMessage", "AvatarHeaderMessage", "AvatarDataMessage", "AvatarEndMessage", "UnknownAvatarMessage", "PlayerListMessage", "GameListNewMessage", "GameListUpdateMessage", "GameListPlayerJoinedMessage", "GameListPlayerLeftMessage", "GameListAdminChangedMessage", "PlayerInfoRequestMessage", "PlayerInfoReplyMessage", "SubscriptionRequestMessage", "JoinExistingGameMessage", "JoinNewGameMessage", "RejoinExistingGameMessage", "JoinGameAckMessage", "JoinGameFailedMessage", "GamePlayerJoinedMessage", "GamePlayerLeftMessage", "GameAdminChangedMessage", "RemovedFromGameMessage", "KickPlayerRequestMessage", "LeaveGameRequestMessage", "InvitePlayerToGameMessage", "InviteNotifyMessage", "RejectGameInvitationMessage", "RejectInvNotifyMessage", "StartEventMessage", "StartEventAckMessage", "GameStartInitialMessage", "GameStartRejoinMessage", "HandStartMessage", "PlayersTurnMessage", "MyActionRequestMessage", "YourActionRejectedMessage", "PlayersActionDoneMessage", "DealFlopCardsMessage", "DealTurnCardMessage", "DealRiverCardMessage", "AllInShowCardsMessage", "EndOfHandShowCardsMessage", "EndOfHandHideCardsMessage", "ShowMyCardsRequestMessage", "AfterHandShowCardsMessage", "EndOfGameMessage", "PlayerIdChangedMessage", "AskKickPlayerMessage", "AskKickDeniedMessage", "StartKickPetitionMessage", "VoteKickRequestMessage", "VoteKickReplyMessage", "KickPetitionUpdateMessage", "EndKickPetitionMessage", "StatisticsMessage", "ChatRequestMessage", "ChatMessage", "ChatRejectMessage", "DialogMessage", "TimeoutWarningMessage", "ResetTimeoutMessage", "ReportAvatarMessage", "ReportAvatarAckMessage", "ReportGameMessage", "ReportGameAckMessage", "ErrorMessage", "AdminRemoveGameMessage", "AdminRemoveGameAckMessage", "AdminBanPlayerMessage", "AdminBanPlayerAckMessage", "GameListSpectatorJoinedMessage", "GameListSpectatorLeftMessage", "GameSpectatorJoinedMessage", "GameSpectatorLeftMessage", });
  }

  // @@protoc_insertion_point(outer_class_scope)
}
