// 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 enum NetGameMode
      implements com.google.protobuf.Internal.EnumLite {
    netGameCreated(0, 1),
    netGameStarted(1, 2),
    netGameClosed(2, 3),
    ;
    
    public static final int netGameCreated_VALUE = 1;
    public static final int netGameStarted_VALUE = 2;
    public static final int netGameClosed_VALUE = 3;
    
    
    public final int getNumber() { return value; }
    
    public static NetGameMode valueOf(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 com.google.protobuf.Internal.EnumLiteMap<NetGameMode>
        internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<NetGameMode>() {
            public NetGameMode findValueByNumber(int number) {
              return NetGameMode.valueOf(number);
            }
          };
    
    private final int value;
    
    private NetGameMode(int index, int value) {
      this.value = value;
    }
    
    // @@protoc_insertion_point(enum_scope:NetGameMode)
  }
  
  public enum NetGameState
      implements com.google.protobuf.Internal.EnumLite {
    netStatePreflop(0, 0),
    netStateFlop(1, 1),
    netStateTurn(2, 2),
    netStateRiver(3, 3),
    netStatePreflopSmallBlind(4, 4),
    netStatePreflopBigBlind(5, 5),
    ;
    
    public static final int netStatePreflop_VALUE = 0;
    public static final int netStateFlop_VALUE = 1;
    public static final int netStateTurn_VALUE = 2;
    public static final int netStateRiver_VALUE = 3;
    public static final int netStatePreflopSmallBlind_VALUE = 4;
    public static final int netStatePreflopBigBlind_VALUE = 5;
    
    
    public final int getNumber() { return value; }
    
    public static NetGameState valueOf(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 com.google.protobuf.Internal.EnumLiteMap<NetGameState>
        internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<NetGameState>() {
            public NetGameState findValueByNumber(int number) {
              return NetGameState.valueOf(number);
            }
          };
    
    private final int value;
    
    private NetGameState(int index, int value) {
      this.value = value;
    }
    
    // @@protoc_insertion_point(enum_scope:NetGameState)
  }
  
  public enum NetPlayerAction
      implements com.google.protobuf.Internal.EnumLite {
    netActionNone(0, 0),
    netActionFold(1, 1),
    netActionCheck(2, 2),
    netActionCall(3, 3),
    netActionBet(4, 4),
    netActionRaise(5, 5),
    netActionAllIn(6, 6),
    ;
    
    public static final int netActionNone_VALUE = 0;
    public static final int netActionFold_VALUE = 1;
    public static final int netActionCheck_VALUE = 2;
    public static final int netActionCall_VALUE = 3;
    public static final int netActionBet_VALUE = 4;
    public static final int netActionRaise_VALUE = 5;
    public static final int netActionAllIn_VALUE = 6;
    
    
    public final int getNumber() { return value; }
    
    public static NetPlayerAction valueOf(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 com.google.protobuf.Internal.EnumLiteMap<NetPlayerAction>
        internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<NetPlayerAction>() {
            public NetPlayerAction findValueByNumber(int number) {
              return NetPlayerAction.valueOf(number);
            }
          };
    
    private final int value;
    
    private NetPlayerAction(int index, int value) {
      this.value = value;
    }
    
    // @@protoc_insertion_point(enum_scope:NetPlayerAction)
  }
  
  public enum NetPlayerState
      implements com.google.protobuf.Internal.EnumLite {
    netPlayerStateNormal(0, 0),
    netPlayerStateSessionInactive(1, 1),
    netPlayerStateNoMoney(2, 2),
    ;
    
    public static final int netPlayerStateNormal_VALUE = 0;
    public static final int netPlayerStateSessionInactive_VALUE = 1;
    public static final int netPlayerStateNoMoney_VALUE = 2;
    
    
    public final int getNumber() { return value; }
    
    public static NetPlayerState valueOf(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 com.google.protobuf.Internal.EnumLiteMap<NetPlayerState>
        internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<NetPlayerState>() {
            public NetPlayerState findValueByNumber(int number) {
              return NetPlayerState.valueOf(number);
            }
          };
    
    private final int value;
    
    private NetPlayerState(int index, int value) {
      this.value = value;
    }
    
    // @@protoc_insertion_point(enum_scope:NetPlayerState)
  }
  
  public enum NetPlayerInfoRights
      implements com.google.protobuf.Internal.EnumLite {
    netPlayerRightsGuest(0, 1),
    netPlayerRightsNormal(1, 2),
    netPlayerRightsAdmin(2, 3),
    ;
    
    public static final int netPlayerRightsGuest_VALUE = 1;
    public static final int netPlayerRightsNormal_VALUE = 2;
    public static final int netPlayerRightsAdmin_VALUE = 3;
    
    
    public final int getNumber() { return value; }
    
    public static NetPlayerInfoRights valueOf(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 com.google.protobuf.Internal.EnumLiteMap<NetPlayerInfoRights>
        internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<NetPlayerInfoRights>() {
            public NetPlayerInfoRights findValueByNumber(int number) {
              return NetPlayerInfoRights.valueOf(number);
            }
          };
    
    private final int value;
    
    private NetPlayerInfoRights(int index, int value) {
      this.value = value;
    }
    
    // @@protoc_insertion_point(enum_scope:NetPlayerInfoRights)
  }
  
  public enum NetAvatarType
      implements com.google.protobuf.Internal.EnumLite {
    netAvatarImagePng(0, 1),
    netAvatarImageJpg(1, 2),
    netAvatarImageGif(2, 3),
    ;
    
    public static final int netAvatarImagePng_VALUE = 1;
    public static final int netAvatarImageJpg_VALUE = 2;
    public static final int netAvatarImageGif_VALUE = 3;
    
    
    public final int getNumber() { return value; }
    
    public static NetAvatarType valueOf(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 com.google.protobuf.Internal.EnumLiteMap<NetAvatarType>
        internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<NetAvatarType>() {
            public NetAvatarType findValueByNumber(int number) {
              return NetAvatarType.valueOf(number);
            }
          };
    
    private final int value;
    
    private NetAvatarType(int index, int value) {
      this.value = value;
    }
    
    // @@protoc_insertion_point(enum_scope:NetAvatarType)
  }
  
  public interface NetGameInfoOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required string gameName = 1;
    boolean hasGameName();
    String getGameName();
    
    // required .NetGameInfo.NetGameType netGameType = 2;
    boolean hasNetGameType();
    de.pokerth.protocol.ProtoBuf.NetGameInfo.NetGameType getNetGameType();
    
    // required uint32 maxNumPlayers = 3;
    boolean hasMaxNumPlayers();
    int getMaxNumPlayers();
    
    // required .NetGameInfo.RaiseIntervalMode raiseIntervalMode = 4;
    boolean hasRaiseIntervalMode();
    de.pokerth.protocol.ProtoBuf.NetGameInfo.RaiseIntervalMode getRaiseIntervalMode();
    
    // optional uint32 raiseEveryHands = 5;
    boolean hasRaiseEveryHands();
    int getRaiseEveryHands();
    
    // optional uint32 raiseEveryMinutes = 6;
    boolean hasRaiseEveryMinutes();
    int getRaiseEveryMinutes();
    
    // required .NetGameInfo.EndRaiseMode endRaiseMode = 7;
    boolean hasEndRaiseMode();
    de.pokerth.protocol.ProtoBuf.NetGameInfo.EndRaiseMode getEndRaiseMode();
    
    // optional uint32 endRaiseSmallBlindValue = 8;
    boolean hasEndRaiseSmallBlindValue();
    int getEndRaiseSmallBlindValue();
    
    // required uint32 proposedGuiSpeed = 9;
    boolean hasProposedGuiSpeed();
    int getProposedGuiSpeed();
    
    // required uint32 delayBetweenHands = 10;
    boolean hasDelayBetweenHands();
    int getDelayBetweenHands();
    
    // required uint32 playerActionTimeout = 11;
    boolean hasPlayerActionTimeout();
    int getPlayerActionTimeout();
    
    // required uint32 firstSmallBlind = 12;
    boolean hasFirstSmallBlind();
    int getFirstSmallBlind();
    
    // required uint32 startMoney = 13;
    boolean hasStartMoney();
    int getStartMoney();
    
    // repeated uint32 manualBlinds = 14 [packed = true];
    java.util.List<java.lang.Integer> getManualBlindsList();
    int getManualBlindsCount();
    int getManualBlinds(int index);
  }
  public static final class NetGameInfo extends
      com.google.protobuf.GeneratedMessageLite
      implements NetGameInfoOrBuilder {
    // Use NetGameInfo.newBuilder() to construct.
    private NetGameInfo(Builder builder) {
      super(builder);
    }
    private NetGameInfo(boolean noInit) {}
    
    private static final NetGameInfo defaultInstance;
    public static NetGameInfo getDefaultInstance() {
      return defaultInstance;
    }
    
    public NetGameInfo getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public enum NetGameType
        implements com.google.protobuf.Internal.EnumLite {
      normalGame(0, 1),
      registeredOnlyGame(1, 2),
      inviteOnlyGame(2, 3),
      rankingGame(3, 4),
      ;
      
      public static final int normalGame_VALUE = 1;
      public static final int registeredOnlyGame_VALUE = 2;
      public static final int inviteOnlyGame_VALUE = 3;
      public static final int rankingGame_VALUE = 4;
      
      
      public final int getNumber() { return value; }
      
      public static NetGameType valueOf(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 com.google.protobuf.Internal.EnumLiteMap<NetGameType>
          internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<NetGameType>() {
              public NetGameType findValueByNumber(int number) {
                return NetGameType.valueOf(number);
              }
            };
      
      private final int value;
      
      private NetGameType(int index, int value) {
        this.value = value;
      }
      
      // @@protoc_insertion_point(enum_scope:NetGameInfo.NetGameType)
    }
    
    public enum RaiseIntervalMode
        implements com.google.protobuf.Internal.EnumLite {
      raiseOnHandNum(0, 1),
      raiseOnMinutes(1, 2),
      ;
      
      public static final int raiseOnHandNum_VALUE = 1;
      public static final int raiseOnMinutes_VALUE = 2;
      
      
      public final int getNumber() { return value; }
      
      public static RaiseIntervalMode valueOf(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 com.google.protobuf.Internal.EnumLiteMap<RaiseIntervalMode>
          internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<RaiseIntervalMode>() {
              public RaiseIntervalMode findValueByNumber(int number) {
                return RaiseIntervalMode.valueOf(number);
              }
            };
      
      private final int value;
      
      private RaiseIntervalMode(int index, int value) {
        this.value = value;
      }
      
      // @@protoc_insertion_point(enum_scope:NetGameInfo.RaiseIntervalMode)
    }
    
    public enum EndRaiseMode
        implements com.google.protobuf.Internal.EnumLite {
      doubleBlinds(0, 1),
      raiseByEndValue(1, 2),
      keepLastBlind(2, 3),
      ;
      
      public static final int doubleBlinds_VALUE = 1;
      public static final int raiseByEndValue_VALUE = 2;
      public static final int keepLastBlind_VALUE = 3;
      
      
      public final int getNumber() { return value; }
      
      public static EndRaiseMode valueOf(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 com.google.protobuf.Internal.EnumLiteMap<EndRaiseMode>
          internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<EndRaiseMode>() {
              public EndRaiseMode findValueByNumber(int number) {
                return EndRaiseMode.valueOf(number);
              }
            };
      
      private final int value;
      
      private EndRaiseMode(int index, int value) {
        this.value = value;
      }
      
      // @@protoc_insertion_point(enum_scope:NetGameInfo.EndRaiseMode)
    }
    
    private int bitField0_;
    // required string gameName = 1;
    public static final int GAMENAME_FIELD_NUMBER = 1;
    private java.lang.Object gameName_;
    public boolean hasGameName() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public String getGameName() {
      java.lang.Object ref = gameName_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
          gameName_ = s;
        }
        return s;
      }
    }
    private com.google.protobuf.ByteString getGameNameBytes() {
      java.lang.Object ref = gameName_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
        gameName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    
    // required .NetGameInfo.NetGameType netGameType = 2;
    public static final int NETGAMETYPE_FIELD_NUMBER = 2;
    private de.pokerth.protocol.ProtoBuf.NetGameInfo.NetGameType netGameType_;
    public boolean hasNetGameType() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public de.pokerth.protocol.ProtoBuf.NetGameInfo.NetGameType getNetGameType() {
      return netGameType_;
    }
    
    // required uint32 maxNumPlayers = 3;
    public static final int MAXNUMPLAYERS_FIELD_NUMBER = 3;
    private int maxNumPlayers_;
    public boolean hasMaxNumPlayers() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    public int getMaxNumPlayers() {
      return maxNumPlayers_;
    }
    
    // required .NetGameInfo.RaiseIntervalMode raiseIntervalMode = 4;
    public static final int RAISEINTERVALMODE_FIELD_NUMBER = 4;
    private de.pokerth.protocol.ProtoBuf.NetGameInfo.RaiseIntervalMode raiseIntervalMode_;
    public boolean hasRaiseIntervalMode() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    public de.pokerth.protocol.ProtoBuf.NetGameInfo.RaiseIntervalMode getRaiseIntervalMode() {
      return raiseIntervalMode_;
    }
    
    // optional uint32 raiseEveryHands = 5;
    public static final int RAISEEVERYHANDS_FIELD_NUMBER = 5;
    private int raiseEveryHands_;
    public boolean hasRaiseEveryHands() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    public int getRaiseEveryHands() {
      return raiseEveryHands_;
    }
    
    // optional uint32 raiseEveryMinutes = 6;
    public static final int RAISEEVERYMINUTES_FIELD_NUMBER = 6;
    private int raiseEveryMinutes_;
    public boolean hasRaiseEveryMinutes() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    public int getRaiseEveryMinutes() {
      return raiseEveryMinutes_;
    }
    
    // required .NetGameInfo.EndRaiseMode endRaiseMode = 7;
    public static final int ENDRAISEMODE_FIELD_NUMBER = 7;
    private de.pokerth.protocol.ProtoBuf.NetGameInfo.EndRaiseMode endRaiseMode_;
    public boolean hasEndRaiseMode() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    public de.pokerth.protocol.ProtoBuf.NetGameInfo.EndRaiseMode getEndRaiseMode() {
      return endRaiseMode_;
    }
    
    // optional uint32 endRaiseSmallBlindValue = 8;
    public static final int ENDRAISESMALLBLINDVALUE_FIELD_NUMBER = 8;
    private int endRaiseSmallBlindValue_;
    public boolean hasEndRaiseSmallBlindValue() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    public int getEndRaiseSmallBlindValue() {
      return endRaiseSmallBlindValue_;
    }
    
    // required uint32 proposedGuiSpeed = 9;
    public static final int PROPOSEDGUISPEED_FIELD_NUMBER = 9;
    private int proposedGuiSpeed_;
    public boolean hasProposedGuiSpeed() {
      return ((bitField0_ & 0x00000100) == 0x00000100);
    }
    public int getProposedGuiSpeed() {
      return proposedGuiSpeed_;
    }
    
    // required uint32 delayBetweenHands = 10;
    public static final int DELAYBETWEENHANDS_FIELD_NUMBER = 10;
    private int delayBetweenHands_;
    public boolean hasDelayBetweenHands() {
      return ((bitField0_ & 0x00000200) == 0x00000200);
    }
    public int getDelayBetweenHands() {
      return delayBetweenHands_;
    }
    
    // required uint32 playerActionTimeout = 11;
    public static final int PLAYERACTIONTIMEOUT_FIELD_NUMBER = 11;
    private int playerActionTimeout_;
    public boolean hasPlayerActionTimeout() {
      return ((bitField0_ & 0x00000400) == 0x00000400);
    }
    public int getPlayerActionTimeout() {
      return playerActionTimeout_;
    }
    
    // required uint32 firstSmallBlind = 12;
    public static final int FIRSTSMALLBLIND_FIELD_NUMBER = 12;
    private int firstSmallBlind_;
    public boolean hasFirstSmallBlind() {
      return ((bitField0_ & 0x00000800) == 0x00000800);
    }
    public int getFirstSmallBlind() {
      return firstSmallBlind_;
    }
    
    // required uint32 startMoney = 13;
    public static final int STARTMONEY_FIELD_NUMBER = 13;
    private int startMoney_;
    public boolean hasStartMoney() {
      return ((bitField0_ & 0x00001000) == 0x00001000);
    }
    public int getStartMoney() {
      return startMoney_;
    }
    
    // repeated uint32 manualBlinds = 14 [packed = true];
    public static final int MANUALBLINDS_FIELD_NUMBER = 14;
    private java.util.List<java.lang.Integer> manualBlinds_;
    public java.util.List<java.lang.Integer>
        getManualBlindsList() {
      return manualBlinds_;
    }
    public int getManualBlindsCount() {
      return manualBlinds_.size();
    }
    public int getManualBlinds(int index) {
      return manualBlinds_.get(index);
    }
    private int manualBlindsMemoizedSerializedSize = -1;
    
    private void initFields() {
      gameName_ = "";
      netGameType_ = de.pokerth.protocol.ProtoBuf.NetGameInfo.NetGameType.normalGame;
      maxNumPlayers_ = 0;
      raiseIntervalMode_ = de.pokerth.protocol.ProtoBuf.NetGameInfo.RaiseIntervalMode.raiseOnHandNum;
      raiseEveryHands_ = 0;
      raiseEveryMinutes_ = 0;
      endRaiseMode_ = de.pokerth.protocol.ProtoBuf.NetGameInfo.EndRaiseMode.doubleBlinds;
      endRaiseSmallBlindValue_ = 0;
      proposedGuiSpeed_ = 0;
      delayBetweenHands_ = 0;
      playerActionTimeout_ = 0;
      firstSmallBlind_ = 0;
      startMoney_ = 0;
      manualBlinds_ = java.util.Collections.emptyList();;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      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;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getGameNameBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeEnum(2, netGameType_.getNumber());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, maxNumPlayers_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeEnum(4, raiseIntervalMode_.getNumber());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeUInt32(5, raiseEveryHands_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeUInt32(6, raiseEveryMinutes_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeEnum(7, endRaiseMode_.getNumber());
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeUInt32(8, endRaiseSmallBlindValue_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        output.writeUInt32(9, proposedGuiSpeed_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        output.writeUInt32(10, delayBetweenHands_);
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        output.writeUInt32(11, playerActionTimeout_);
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        output.writeUInt32(12, firstSmallBlind_);
      }
      if (((bitField0_ & 0x00001000) == 0x00001000)) {
        output.writeUInt32(13, startMoney_);
      }
      if (getManualBlindsList().size() > 0) {
        output.writeRawVarint32(114);
        output.writeRawVarint32(manualBlindsMemoizedSerializedSize);
      }
      for (int i = 0; i < manualBlinds_.size(); i++) {
        output.writeUInt32NoTag(manualBlinds_.get(i));
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, getGameNameBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, netGameType_.getNumber());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, maxNumPlayers_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(4, raiseIntervalMode_.getNumber());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, raiseEveryHands_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(6, raiseEveryMinutes_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(7, endRaiseMode_.getNumber());
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(8, endRaiseSmallBlindValue_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(9, proposedGuiSpeed_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(10, delayBetweenHands_);
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(11, playerActionTimeout_);
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(12, firstSmallBlind_);
      }
      if (((bitField0_ & 0x00001000) == 0x00001000)) {
        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_.get(i));
        }
        size += dataSize;
        if (!getManualBlindsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        manualBlindsMemoizedSerializedSize = dataSize;
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.NetGameInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.NetGameInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.NetGameInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.NetGameInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.NetGameInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.NetGameInfo parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.NetGameInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.NetGameInfo parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.NetGameInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.NetGameInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.NetGameInfo prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.NetGameInfo, Builder>
        implements de.pokerth.protocol.ProtoBuf.NetGameInfoOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.NetGameInfo.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        gameName_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        netGameType_ = de.pokerth.protocol.ProtoBuf.NetGameInfo.NetGameType.normalGame;
        bitField0_ = (bitField0_ & ~0x00000002);
        maxNumPlayers_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        raiseIntervalMode_ = de.pokerth.protocol.ProtoBuf.NetGameInfo.RaiseIntervalMode.raiseOnHandNum;
        bitField0_ = (bitField0_ & ~0x00000008);
        raiseEveryHands_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        raiseEveryMinutes_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        endRaiseMode_ = de.pokerth.protocol.ProtoBuf.NetGameInfo.EndRaiseMode.doubleBlinds;
        bitField0_ = (bitField0_ & ~0x00000040);
        endRaiseSmallBlindValue_ = 0;
        bitField0_ = (bitField0_ & ~0x00000080);
        proposedGuiSpeed_ = 0;
        bitField0_ = (bitField0_ & ~0x00000100);
        delayBetweenHands_ = 0;
        bitField0_ = (bitField0_ & ~0x00000200);
        playerActionTimeout_ = 0;
        bitField0_ = (bitField0_ & ~0x00000400);
        firstSmallBlind_ = 0;
        bitField0_ = (bitField0_ & ~0x00000800);
        startMoney_ = 0;
        bitField0_ = (bitField0_ & ~0x00001000);
        manualBlinds_ = java.util.Collections.emptyList();;
        bitField0_ = (bitField0_ & ~0x00002000);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.NetGameInfo getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.NetGameInfo.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.NetGameInfo build() {
        de.pokerth.protocol.ProtoBuf.NetGameInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.NetGameInfo buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.NetGameInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.NetGameInfo buildPartial() {
        de.pokerth.protocol.ProtoBuf.NetGameInfo result = new de.pokerth.protocol.ProtoBuf.NetGameInfo(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameName_ = gameName_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.netGameType_ = netGameType_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.maxNumPlayers_ = maxNumPlayers_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.raiseIntervalMode_ = raiseIntervalMode_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.raiseEveryHands_ = raiseEveryHands_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.raiseEveryMinutes_ = raiseEveryMinutes_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.endRaiseMode_ = endRaiseMode_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        result.endRaiseSmallBlindValue_ = endRaiseSmallBlindValue_;
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000100;
        }
        result.proposedGuiSpeed_ = proposedGuiSpeed_;
        if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
          to_bitField0_ |= 0x00000200;
        }
        result.delayBetweenHands_ = delayBetweenHands_;
        if (((from_bitField0_ & 0x00000400) == 0x00000400)) {
          to_bitField0_ |= 0x00000400;
        }
        result.playerActionTimeout_ = playerActionTimeout_;
        if (((from_bitField0_ & 0x00000800) == 0x00000800)) {
          to_bitField0_ |= 0x00000800;
        }
        result.firstSmallBlind_ = firstSmallBlind_;
        if (((from_bitField0_ & 0x00001000) == 0x00001000)) {
          to_bitField0_ |= 0x00001000;
        }
        result.startMoney_ = startMoney_;
        if (((bitField0_ & 0x00002000) == 0x00002000)) {
          manualBlinds_ = java.util.Collections.unmodifiableList(manualBlinds_);
          bitField0_ = (bitField0_ & ~0x00002000);
        }
        result.manualBlinds_ = manualBlinds_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.NetGameInfo other) {
        if (other == de.pokerth.protocol.ProtoBuf.NetGameInfo.getDefaultInstance()) return this;
        if (other.hasGameName()) {
          setGameName(other.getGameName());
        }
        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_);
          }
          
        }
        return this;
      }
      
      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;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              gameName_ = input.readBytes();
              break;
            }
            case 16: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.NetGameInfo.NetGameType value = de.pokerth.protocol.ProtoBuf.NetGameInfo.NetGameType.valueOf(rawValue);
              if (value != null) {
                bitField0_ |= 0x00000002;
                netGameType_ = value;
              }
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              maxNumPlayers_ = input.readUInt32();
              break;
            }
            case 32: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.NetGameInfo.RaiseIntervalMode value = de.pokerth.protocol.ProtoBuf.NetGameInfo.RaiseIntervalMode.valueOf(rawValue);
              if (value != null) {
                bitField0_ |= 0x00000008;
                raiseIntervalMode_ = value;
              }
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              raiseEveryHands_ = input.readUInt32();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              raiseEveryMinutes_ = input.readUInt32();
              break;
            }
            case 56: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.NetGameInfo.EndRaiseMode value = de.pokerth.protocol.ProtoBuf.NetGameInfo.EndRaiseMode.valueOf(rawValue);
              if (value != null) {
                bitField0_ |= 0x00000040;
                endRaiseMode_ = value;
              }
              break;
            }
            case 64: {
              bitField0_ |= 0x00000080;
              endRaiseSmallBlindValue_ = input.readUInt32();
              break;
            }
            case 72: {
              bitField0_ |= 0x00000100;
              proposedGuiSpeed_ = input.readUInt32();
              break;
            }
            case 80: {
              bitField0_ |= 0x00000200;
              delayBetweenHands_ = input.readUInt32();
              break;
            }
            case 88: {
              bitField0_ |= 0x00000400;
              playerActionTimeout_ = input.readUInt32();
              break;
            }
            case 96: {
              bitField0_ |= 0x00000800;
              firstSmallBlind_ = input.readUInt32();
              break;
            }
            case 104: {
              bitField0_ |= 0x00001000;
              startMoney_ = input.readUInt32();
              break;
            }
            case 112: {
              ensureManualBlindsIsMutable();
              manualBlinds_.add(input.readUInt32());
              break;
            }
            case 114: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addManualBlinds(input.readUInt32());
              }
              input.popLimit(limit);
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required string gameName = 1;
      private java.lang.Object gameName_ = "";
      public boolean hasGameName() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public String getGameName() {
        java.lang.Object ref = gameName_;
        if (!(ref instanceof String)) {
          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
          gameName_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      public Builder setGameName(String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        gameName_ = value;
        
        return this;
      }
      public Builder clearGameName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameName_ = getDefaultInstance().getGameName();
        
        return this;
      }
      void setGameName(com.google.protobuf.ByteString value) {
        bitField0_ |= 0x00000001;
        gameName_ = value;
        
      }
      
      // required .NetGameInfo.NetGameType netGameType = 2;
      private de.pokerth.protocol.ProtoBuf.NetGameInfo.NetGameType netGameType_ = de.pokerth.protocol.ProtoBuf.NetGameInfo.NetGameType.normalGame;
      public boolean hasNetGameType() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public de.pokerth.protocol.ProtoBuf.NetGameInfo.NetGameType getNetGameType() {
        return netGameType_;
      }
      public Builder setNetGameType(de.pokerth.protocol.ProtoBuf.NetGameInfo.NetGameType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        netGameType_ = value;
        
        return this;
      }
      public Builder clearNetGameType() {
        bitField0_ = (bitField0_ & ~0x00000002);
        netGameType_ = de.pokerth.protocol.ProtoBuf.NetGameInfo.NetGameType.normalGame;
        
        return this;
      }
      
      // required uint32 maxNumPlayers = 3;
      private int maxNumPlayers_ ;
      public boolean hasMaxNumPlayers() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public int getMaxNumPlayers() {
        return maxNumPlayers_;
      }
      public Builder setMaxNumPlayers(int value) {
        bitField0_ |= 0x00000004;
        maxNumPlayers_ = value;
        
        return this;
      }
      public Builder clearMaxNumPlayers() {
        bitField0_ = (bitField0_ & ~0x00000004);
        maxNumPlayers_ = 0;
        
        return this;
      }
      
      // required .NetGameInfo.RaiseIntervalMode raiseIntervalMode = 4;
      private de.pokerth.protocol.ProtoBuf.NetGameInfo.RaiseIntervalMode raiseIntervalMode_ = de.pokerth.protocol.ProtoBuf.NetGameInfo.RaiseIntervalMode.raiseOnHandNum;
      public boolean hasRaiseIntervalMode() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      public de.pokerth.protocol.ProtoBuf.NetGameInfo.RaiseIntervalMode getRaiseIntervalMode() {
        return raiseIntervalMode_;
      }
      public Builder setRaiseIntervalMode(de.pokerth.protocol.ProtoBuf.NetGameInfo.RaiseIntervalMode value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        raiseIntervalMode_ = value;
        
        return this;
      }
      public Builder clearRaiseIntervalMode() {
        bitField0_ = (bitField0_ & ~0x00000008);
        raiseIntervalMode_ = de.pokerth.protocol.ProtoBuf.NetGameInfo.RaiseIntervalMode.raiseOnHandNum;
        
        return this;
      }
      
      // optional uint32 raiseEveryHands = 5;
      private int raiseEveryHands_ ;
      public boolean hasRaiseEveryHands() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      public int getRaiseEveryHands() {
        return raiseEveryHands_;
      }
      public Builder setRaiseEveryHands(int value) {
        bitField0_ |= 0x00000010;
        raiseEveryHands_ = value;
        
        return this;
      }
      public Builder clearRaiseEveryHands() {
        bitField0_ = (bitField0_ & ~0x00000010);
        raiseEveryHands_ = 0;
        
        return this;
      }
      
      // optional uint32 raiseEveryMinutes = 6;
      private int raiseEveryMinutes_ ;
      public boolean hasRaiseEveryMinutes() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      public int getRaiseEveryMinutes() {
        return raiseEveryMinutes_;
      }
      public Builder setRaiseEveryMinutes(int value) {
        bitField0_ |= 0x00000020;
        raiseEveryMinutes_ = value;
        
        return this;
      }
      public Builder clearRaiseEveryMinutes() {
        bitField0_ = (bitField0_ & ~0x00000020);
        raiseEveryMinutes_ = 0;
        
        return this;
      }
      
      // required .NetGameInfo.EndRaiseMode endRaiseMode = 7;
      private de.pokerth.protocol.ProtoBuf.NetGameInfo.EndRaiseMode endRaiseMode_ = de.pokerth.protocol.ProtoBuf.NetGameInfo.EndRaiseMode.doubleBlinds;
      public boolean hasEndRaiseMode() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      public de.pokerth.protocol.ProtoBuf.NetGameInfo.EndRaiseMode getEndRaiseMode() {
        return endRaiseMode_;
      }
      public Builder setEndRaiseMode(de.pokerth.protocol.ProtoBuf.NetGameInfo.EndRaiseMode value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000040;
        endRaiseMode_ = value;
        
        return this;
      }
      public Builder clearEndRaiseMode() {
        bitField0_ = (bitField0_ & ~0x00000040);
        endRaiseMode_ = de.pokerth.protocol.ProtoBuf.NetGameInfo.EndRaiseMode.doubleBlinds;
        
        return this;
      }
      
      // optional uint32 endRaiseSmallBlindValue = 8;
      private int endRaiseSmallBlindValue_ ;
      public boolean hasEndRaiseSmallBlindValue() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      public int getEndRaiseSmallBlindValue() {
        return endRaiseSmallBlindValue_;
      }
      public Builder setEndRaiseSmallBlindValue(int value) {
        bitField0_ |= 0x00000080;
        endRaiseSmallBlindValue_ = value;
        
        return this;
      }
      public Builder clearEndRaiseSmallBlindValue() {
        bitField0_ = (bitField0_ & ~0x00000080);
        endRaiseSmallBlindValue_ = 0;
        
        return this;
      }
      
      // required uint32 proposedGuiSpeed = 9;
      private int proposedGuiSpeed_ ;
      public boolean hasProposedGuiSpeed() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      public int getProposedGuiSpeed() {
        return proposedGuiSpeed_;
      }
      public Builder setProposedGuiSpeed(int value) {
        bitField0_ |= 0x00000100;
        proposedGuiSpeed_ = value;
        
        return this;
      }
      public Builder clearProposedGuiSpeed() {
        bitField0_ = (bitField0_ & ~0x00000100);
        proposedGuiSpeed_ = 0;
        
        return this;
      }
      
      // required uint32 delayBetweenHands = 10;
      private int delayBetweenHands_ ;
      public boolean hasDelayBetweenHands() {
        return ((bitField0_ & 0x00000200) == 0x00000200);
      }
      public int getDelayBetweenHands() {
        return delayBetweenHands_;
      }
      public Builder setDelayBetweenHands(int value) {
        bitField0_ |= 0x00000200;
        delayBetweenHands_ = value;
        
        return this;
      }
      public Builder clearDelayBetweenHands() {
        bitField0_ = (bitField0_ & ~0x00000200);
        delayBetweenHands_ = 0;
        
        return this;
      }
      
      // required uint32 playerActionTimeout = 11;
      private int playerActionTimeout_ ;
      public boolean hasPlayerActionTimeout() {
        return ((bitField0_ & 0x00000400) == 0x00000400);
      }
      public int getPlayerActionTimeout() {
        return playerActionTimeout_;
      }
      public Builder setPlayerActionTimeout(int value) {
        bitField0_ |= 0x00000400;
        playerActionTimeout_ = value;
        
        return this;
      }
      public Builder clearPlayerActionTimeout() {
        bitField0_ = (bitField0_ & ~0x00000400);
        playerActionTimeout_ = 0;
        
        return this;
      }
      
      // required uint32 firstSmallBlind = 12;
      private int firstSmallBlind_ ;
      public boolean hasFirstSmallBlind() {
        return ((bitField0_ & 0x00000800) == 0x00000800);
      }
      public int getFirstSmallBlind() {
        return firstSmallBlind_;
      }
      public Builder setFirstSmallBlind(int value) {
        bitField0_ |= 0x00000800;
        firstSmallBlind_ = value;
        
        return this;
      }
      public Builder clearFirstSmallBlind() {
        bitField0_ = (bitField0_ & ~0x00000800);
        firstSmallBlind_ = 0;
        
        return this;
      }
      
      // required uint32 startMoney = 13;
      private int startMoney_ ;
      public boolean hasStartMoney() {
        return ((bitField0_ & 0x00001000) == 0x00001000);
      }
      public int getStartMoney() {
        return startMoney_;
      }
      public Builder setStartMoney(int value) {
        bitField0_ |= 0x00001000;
        startMoney_ = value;
        
        return this;
      }
      public Builder clearStartMoney() {
        bitField0_ = (bitField0_ & ~0x00001000);
        startMoney_ = 0;
        
        return this;
      }
      
      // repeated uint32 manualBlinds = 14 [packed = true];
      private java.util.List<java.lang.Integer> manualBlinds_ = java.util.Collections.emptyList();;
      private void ensureManualBlindsIsMutable() {
        if (!((bitField0_ & 0x00002000) == 0x00002000)) {
          manualBlinds_ = new java.util.ArrayList<java.lang.Integer>(manualBlinds_);
          bitField0_ |= 0x00002000;
         }
      }
      public java.util.List<java.lang.Integer>
          getManualBlindsList() {
        return java.util.Collections.unmodifiableList(manualBlinds_);
      }
      public int getManualBlindsCount() {
        return manualBlinds_.size();
      }
      public int getManualBlinds(int index) {
        return manualBlinds_.get(index);
      }
      public Builder setManualBlinds(
          int index, int value) {
        ensureManualBlindsIsMutable();
        manualBlinds_.set(index, value);
        
        return this;
      }
      public Builder addManualBlinds(int value) {
        ensureManualBlindsIsMutable();
        manualBlinds_.add(value);
        
        return this;
      }
      public Builder addAllManualBlinds(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensureManualBlindsIsMutable();
        super.addAll(values, manualBlinds_);
        
        return this;
      }
      public Builder clearManualBlinds() {
        manualBlinds_ = java.util.Collections.emptyList();;
        bitField0_ = (bitField0_ & ~0x00002000);
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:NetGameInfo)
    }
    
    static {
      defaultInstance = new NetGameInfo(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:NetGameInfo)
  }
  
  public interface PlayerResultOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 playerId = 1;
    boolean hasPlayerId();
    int getPlayerId();
    
    // required uint32 resultCard1 = 2;
    boolean hasResultCard1();
    int getResultCard1();
    
    // required uint32 resultCard2 = 3;
    boolean hasResultCard2();
    int getResultCard2();
    
    // repeated uint32 bestHandPosition = 4 [packed = true];
    java.util.List<java.lang.Integer> getBestHandPositionList();
    int getBestHandPositionCount();
    int getBestHandPosition(int index);
    
    // required uint32 moneyWon = 5;
    boolean hasMoneyWon();
    int getMoneyWon();
    
    // required uint32 playerMoney = 6;
    boolean hasPlayerMoney();
    int getPlayerMoney();
    
    // optional uint32 cardsValue = 7;
    boolean hasCardsValue();
    int getCardsValue();
  }
  public static final class PlayerResult extends
      com.google.protobuf.GeneratedMessageLite
      implements PlayerResultOrBuilder {
    // Use PlayerResult.newBuilder() to construct.
    private PlayerResult(Builder builder) {
      super(builder);
    }
    private PlayerResult(boolean noInit) {}
    
    private static final PlayerResult defaultInstance;
    public static PlayerResult getDefaultInstance() {
      return defaultInstance;
    }
    
    public PlayerResult getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    private int bitField0_;
    // required uint32 playerId = 1;
    public static final int PLAYERID_FIELD_NUMBER = 1;
    private int playerId_;
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getPlayerId() {
      return playerId_;
    }
    
    // required uint32 resultCard1 = 2;
    public static final int RESULTCARD1_FIELD_NUMBER = 2;
    private int resultCard1_;
    public boolean hasResultCard1() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public int getResultCard1() {
      return resultCard1_;
    }
    
    // required uint32 resultCard2 = 3;
    public static final int RESULTCARD2_FIELD_NUMBER = 3;
    private int resultCard2_;
    public boolean hasResultCard2() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    public int getResultCard2() {
      return resultCard2_;
    }
    
    // repeated uint32 bestHandPosition = 4 [packed = true];
    public static final int BESTHANDPOSITION_FIELD_NUMBER = 4;
    private java.util.List<java.lang.Integer> bestHandPosition_;
    public java.util.List<java.lang.Integer>
        getBestHandPositionList() {
      return bestHandPosition_;
    }
    public int getBestHandPositionCount() {
      return bestHandPosition_.size();
    }
    public int getBestHandPosition(int index) {
      return bestHandPosition_.get(index);
    }
    private int bestHandPositionMemoizedSerializedSize = -1;
    
    // required uint32 moneyWon = 5;
    public static final int MONEYWON_FIELD_NUMBER = 5;
    private int moneyWon_;
    public boolean hasMoneyWon() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    public int getMoneyWon() {
      return moneyWon_;
    }
    
    // required uint32 playerMoney = 6;
    public static final int PLAYERMONEY_FIELD_NUMBER = 6;
    private int playerMoney_;
    public boolean hasPlayerMoney() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    public int getPlayerMoney() {
      return playerMoney_;
    }
    
    // optional uint32 cardsValue = 7;
    public static final int CARDSVALUE_FIELD_NUMBER = 7;
    private int cardsValue_;
    public boolean hasCardsValue() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    public int getCardsValue() {
      return cardsValue_;
    }
    
    private void initFields() {
      playerId_ = 0;
      resultCard1_ = 0;
      resultCard2_ = 0;
      bestHandPosition_ = java.util.Collections.emptyList();;
      moneyWon_ = 0;
      playerMoney_ = 0;
      cardsValue_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      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;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, resultCard1_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, resultCard2_);
      }
      if (getBestHandPositionList().size() > 0) {
        output.writeRawVarint32(34);
        output.writeRawVarint32(bestHandPositionMemoizedSerializedSize);
      }
      for (int i = 0; i < bestHandPosition_.size(); i++) {
        output.writeUInt32NoTag(bestHandPosition_.get(i));
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(5, moneyWon_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeUInt32(6, playerMoney_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeUInt32(7, cardsValue_);
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, resultCard1_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        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_.get(i));
        }
        size += dataSize;
        if (!getBestHandPositionList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        bestHandPositionMemoizedSerializedSize = dataSize;
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, moneyWon_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(6, playerMoney_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(7, cardsValue_);
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.PlayerResult parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerResult parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerResult parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerResult parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerResult parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerResult parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerResult parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerResult parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerResult parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerResult parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.PlayerResult prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.PlayerResult, Builder>
        implements de.pokerth.protocol.ProtoBuf.PlayerResultOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.PlayerResult.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        resultCard1_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        resultCard2_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        bestHandPosition_ = java.util.Collections.emptyList();;
        bitField0_ = (bitField0_ & ~0x00000008);
        moneyWon_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        playerMoney_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        cardsValue_ = 0;
        bitField0_ = (bitField0_ & ~0x00000040);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.PlayerResult getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.PlayerResult.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.PlayerResult build() {
        de.pokerth.protocol.ProtoBuf.PlayerResult result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.PlayerResult buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.PlayerResult result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.PlayerResult buildPartial() {
        de.pokerth.protocol.ProtoBuf.PlayerResult result = new de.pokerth.protocol.ProtoBuf.PlayerResult(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.resultCard1_ = resultCard1_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.resultCard2_ = resultCard2_;
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          bestHandPosition_ = java.util.Collections.unmodifiableList(bestHandPosition_);
          bitField0_ = (bitField0_ & ~0x00000008);
        }
        result.bestHandPosition_ = bestHandPosition_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000008;
        }
        result.moneyWon_ = moneyWon_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000010;
        }
        result.playerMoney_ = playerMoney_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000020;
        }
        result.cardsValue_ = cardsValue_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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_);
          }
          
        }
        if (other.hasMoneyWon()) {
          setMoneyWon(other.getMoneyWon());
        }
        if (other.hasPlayerMoney()) {
          setPlayerMoney(other.getPlayerMoney());
        }
        if (other.hasCardsValue()) {
          setCardsValue(other.getCardsValue());
        }
        return this;
      }
      
      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;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              resultCard1_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              resultCard2_ = input.readUInt32();
              break;
            }
            case 32: {
              ensureBestHandPositionIsMutable();
              bestHandPosition_.add(input.readUInt32());
              break;
            }
            case 34: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addBestHandPosition(input.readUInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              moneyWon_ = input.readUInt32();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              playerMoney_ = input.readUInt32();
              break;
            }
            case 56: {
              bitField0_ |= 0x00000040;
              cardsValue_ = input.readUInt32();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 playerId = 1;
      private int playerId_ ;
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getPlayerId() {
        return playerId_;
      }
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        
        return this;
      }
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        
        return this;
      }
      
      // required uint32 resultCard1 = 2;
      private int resultCard1_ ;
      public boolean hasResultCard1() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getResultCard1() {
        return resultCard1_;
      }
      public Builder setResultCard1(int value) {
        bitField0_ |= 0x00000002;
        resultCard1_ = value;
        
        return this;
      }
      public Builder clearResultCard1() {
        bitField0_ = (bitField0_ & ~0x00000002);
        resultCard1_ = 0;
        
        return this;
      }
      
      // required uint32 resultCard2 = 3;
      private int resultCard2_ ;
      public boolean hasResultCard2() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public int getResultCard2() {
        return resultCard2_;
      }
      public Builder setResultCard2(int value) {
        bitField0_ |= 0x00000004;
        resultCard2_ = value;
        
        return this;
      }
      public Builder clearResultCard2() {
        bitField0_ = (bitField0_ & ~0x00000004);
        resultCard2_ = 0;
        
        return this;
      }
      
      // repeated uint32 bestHandPosition = 4 [packed = true];
      private java.util.List<java.lang.Integer> bestHandPosition_ = java.util.Collections.emptyList();;
      private void ensureBestHandPositionIsMutable() {
        if (!((bitField0_ & 0x00000008) == 0x00000008)) {
          bestHandPosition_ = new java.util.ArrayList<java.lang.Integer>(bestHandPosition_);
          bitField0_ |= 0x00000008;
         }
      }
      public java.util.List<java.lang.Integer>
          getBestHandPositionList() {
        return java.util.Collections.unmodifiableList(bestHandPosition_);
      }
      public int getBestHandPositionCount() {
        return bestHandPosition_.size();
      }
      public int getBestHandPosition(int index) {
        return bestHandPosition_.get(index);
      }
      public Builder setBestHandPosition(
          int index, int value) {
        ensureBestHandPositionIsMutable();
        bestHandPosition_.set(index, value);
        
        return this;
      }
      public Builder addBestHandPosition(int value) {
        ensureBestHandPositionIsMutable();
        bestHandPosition_.add(value);
        
        return this;
      }
      public Builder addAllBestHandPosition(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensureBestHandPositionIsMutable();
        super.addAll(values, bestHandPosition_);
        
        return this;
      }
      public Builder clearBestHandPosition() {
        bestHandPosition_ = java.util.Collections.emptyList();;
        bitField0_ = (bitField0_ & ~0x00000008);
        
        return this;
      }
      
      // required uint32 moneyWon = 5;
      private int moneyWon_ ;
      public boolean hasMoneyWon() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      public int getMoneyWon() {
        return moneyWon_;
      }
      public Builder setMoneyWon(int value) {
        bitField0_ |= 0x00000010;
        moneyWon_ = value;
        
        return this;
      }
      public Builder clearMoneyWon() {
        bitField0_ = (bitField0_ & ~0x00000010);
        moneyWon_ = 0;
        
        return this;
      }
      
      // required uint32 playerMoney = 6;
      private int playerMoney_ ;
      public boolean hasPlayerMoney() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      public int getPlayerMoney() {
        return playerMoney_;
      }
      public Builder setPlayerMoney(int value) {
        bitField0_ |= 0x00000020;
        playerMoney_ = value;
        
        return this;
      }
      public Builder clearPlayerMoney() {
        bitField0_ = (bitField0_ & ~0x00000020);
        playerMoney_ = 0;
        
        return this;
      }
      
      // optional uint32 cardsValue = 7;
      private int cardsValue_ ;
      public boolean hasCardsValue() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      public int getCardsValue() {
        return cardsValue_;
      }
      public Builder setCardsValue(int value) {
        bitField0_ |= 0x00000040;
        cardsValue_ = value;
        
        return this;
      }
      public Builder clearCardsValue() {
        bitField0_ = (bitField0_ & ~0x00000040);
        cardsValue_ = 0;
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:PlayerResult)
    }
    
    static {
      defaultInstance = new PlayerResult(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:PlayerResult)
  }
  
  public interface AnnounceMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required .AnnounceMessage.Version protocolVersion = 1;
    boolean hasProtocolVersion();
    de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version getProtocolVersion();
    
    // required .AnnounceMessage.Version latestGameVersion = 2;
    boolean hasLatestGameVersion();
    de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version getLatestGameVersion();
    
    // required uint32 latestBetaRevision = 3;
    boolean hasLatestBetaRevision();
    int getLatestBetaRevision();
    
    // required .AnnounceMessage.ServerType serverType = 4;
    boolean hasServerType();
    de.pokerth.protocol.ProtoBuf.AnnounceMessage.ServerType getServerType();
    
    // required uint32 numPlayersOnServer = 5;
    boolean hasNumPlayersOnServer();
    int getNumPlayersOnServer();
  }
  public static final class AnnounceMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements AnnounceMessageOrBuilder {
    // Use AnnounceMessage.newBuilder() to construct.
    private AnnounceMessage(Builder builder) {
      super(builder);
    }
    private AnnounceMessage(boolean noInit) {}
    
    private static final AnnounceMessage defaultInstance;
    public static AnnounceMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public AnnounceMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public enum ServerType
        implements com.google.protobuf.Internal.EnumLite {
      serverTypeLAN(0, 0),
      serverTypeInternetNoAuth(1, 1),
      serverTypeInternetAuth(2, 2),
      ;
      
      public static final int serverTypeLAN_VALUE = 0;
      public static final int serverTypeInternetNoAuth_VALUE = 1;
      public static final int serverTypeInternetAuth_VALUE = 2;
      
      
      public final int getNumber() { return value; }
      
      public static ServerType valueOf(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 com.google.protobuf.Internal.EnumLiteMap<ServerType>
          internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<ServerType>() {
              public ServerType findValueByNumber(int number) {
                return ServerType.valueOf(number);
              }
            };
      
      private final int value;
      
      private ServerType(int index, int value) {
        this.value = value;
      }
      
      // @@protoc_insertion_point(enum_scope:AnnounceMessage.ServerType)
    }
    
    public interface VersionOrBuilder
        extends com.google.protobuf.MessageLiteOrBuilder {
      
      // required uint32 majorVersion = 1;
      boolean hasMajorVersion();
      int getMajorVersion();
      
      // required uint32 minorVersion = 2;
      boolean hasMinorVersion();
      int getMinorVersion();
    }
    public static final class Version extends
        com.google.protobuf.GeneratedMessageLite
        implements VersionOrBuilder {
      // Use Version.newBuilder() to construct.
      private Version(Builder builder) {
        super(builder);
      }
      private Version(boolean noInit) {}
      
      private static final Version defaultInstance;
      public static Version getDefaultInstance() {
        return defaultInstance;
      }
      
      public Version getDefaultInstanceForType() {
        return defaultInstance;
      }
      
      private int bitField0_;
      // required uint32 majorVersion = 1;
      public static final int MAJORVERSION_FIELD_NUMBER = 1;
      private int majorVersion_;
      public boolean hasMajorVersion() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getMajorVersion() {
        return majorVersion_;
      }
      
      // required uint32 minorVersion = 2;
      public static final int MINORVERSION_FIELD_NUMBER = 2;
      private int minorVersion_;
      public boolean hasMinorVersion() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getMinorVersion() {
        return minorVersion_;
      }
      
      private void initFields() {
        majorVersion_ = 0;
        minorVersion_ = 0;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized != -1) return isInitialized == 1;
        
        if (!hasMajorVersion()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!hasMinorVersion()) {
          memoizedIsInitialized = 0;
          return false;
        }
        memoizedIsInitialized = 1;
        return true;
      }
      
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeUInt32(1, majorVersion_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeUInt32(2, minorVersion_);
        }
      }
      
      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
      
        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(1, majorVersion_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(2, minorVersion_);
        }
        memoizedSerializedSize = size;
        return size;
      }
      
      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }
      
      public static de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      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 newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      public static de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      
      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }
      
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version, Builder>
          implements de.pokerth.protocol.ProtoBuf.AnnounceMessage.VersionOrBuilder {
        // Construct using de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }
        
        private void maybeForceBuilderInitialization() {
        }
        private static Builder create() {
          return new Builder();
        }
        
        public Builder clear() {
          super.clear();
          majorVersion_ = 0;
          bitField0_ = (bitField0_ & ~0x00000001);
          minorVersion_ = 0;
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }
        
        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }
        
        public de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version getDefaultInstanceForType() {
          return de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.getDefaultInstance();
        }
        
        public de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version build() {
          de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
        
        private de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version buildParsed()
            throws com.google.protobuf.InvalidProtocolBufferException {
          de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(
              result).asInvalidProtocolBufferException();
          }
          return result;
        }
        
        public de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version buildPartial() {
          de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version result = new de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.majorVersion_ = majorVersion_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.minorVersion_ = minorVersion_;
          result.bitField0_ = to_bitField0_;
          return result;
        }
        
        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());
          }
          return this;
        }
        
        public final boolean isInitialized() {
          if (!hasMajorVersion()) {
            
            return false;
          }
          if (!hasMinorVersion()) {
            
            return false;
          }
          return true;
        }
        
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          while (true) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                
                return this;
              default: {
                if (!parseUnknownField(input, extensionRegistry, tag)) {
                  
                  return this;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                majorVersion_ = input.readUInt32();
                break;
              }
              case 16: {
                bitField0_ |= 0x00000002;
                minorVersion_ = input.readUInt32();
                break;
              }
            }
          }
        }
        
        private int bitField0_;
        
        // required uint32 majorVersion = 1;
        private int majorVersion_ ;
        public boolean hasMajorVersion() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        public int getMajorVersion() {
          return majorVersion_;
        }
        public Builder setMajorVersion(int value) {
          bitField0_ |= 0x00000001;
          majorVersion_ = value;
          
          return this;
        }
        public Builder clearMajorVersion() {
          bitField0_ = (bitField0_ & ~0x00000001);
          majorVersion_ = 0;
          
          return this;
        }
        
        // required uint32 minorVersion = 2;
        private int minorVersion_ ;
        public boolean hasMinorVersion() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        public int getMinorVersion() {
          return minorVersion_;
        }
        public Builder setMinorVersion(int value) {
          bitField0_ |= 0x00000002;
          minorVersion_ = value;
          
          return this;
        }
        public Builder clearMinorVersion() {
          bitField0_ = (bitField0_ & ~0x00000002);
          minorVersion_ = 0;
          
          return this;
        }
        
        // @@protoc_insertion_point(builder_scope:AnnounceMessage.Version)
      }
      
      static {
        defaultInstance = new Version(true);
        defaultInstance.initFields();
      }
      
      // @@protoc_insertion_point(class_scope:AnnounceMessage.Version)
    }
    
    private int bitField0_;
    // required .AnnounceMessage.Version protocolVersion = 1;
    public static final int PROTOCOLVERSION_FIELD_NUMBER = 1;
    private de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version protocolVersion_;
    public boolean hasProtocolVersion() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version getProtocolVersion() {
      return protocolVersion_;
    }
    
    // required .AnnounceMessage.Version latestGameVersion = 2;
    public static final int LATESTGAMEVERSION_FIELD_NUMBER = 2;
    private de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version latestGameVersion_;
    public boolean hasLatestGameVersion() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version getLatestGameVersion() {
      return latestGameVersion_;
    }
    
    // required uint32 latestBetaRevision = 3;
    public static final int LATESTBETAREVISION_FIELD_NUMBER = 3;
    private int latestBetaRevision_;
    public boolean hasLatestBetaRevision() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    public int getLatestBetaRevision() {
      return latestBetaRevision_;
    }
    
    // required .AnnounceMessage.ServerType serverType = 4;
    public static final int SERVERTYPE_FIELD_NUMBER = 4;
    private de.pokerth.protocol.ProtoBuf.AnnounceMessage.ServerType serverType_;
    public boolean hasServerType() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    public de.pokerth.protocol.ProtoBuf.AnnounceMessage.ServerType getServerType() {
      return serverType_;
    }
    
    // required uint32 numPlayersOnServer = 5;
    public static final int NUMPLAYERSONSERVER_FIELD_NUMBER = 5;
    private int numPlayersOnServer_;
    public boolean hasNumPlayersOnServer() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    public int getNumPlayersOnServer() {
      return numPlayersOnServer_;
    }
    
    private void initFields() {
      protocolVersion_ = de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.getDefaultInstance();
      latestGameVersion_ = de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.getDefaultInstance();
      latestBetaRevision_ = 0;
      serverType_ = de.pokerth.protocol.ProtoBuf.AnnounceMessage.ServerType.serverTypeLAN;
      numPlayersOnServer_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      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;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, protocolVersion_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, latestGameVersion_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, latestBetaRevision_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeEnum(4, serverType_.getNumber());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeUInt32(5, numPlayersOnServer_);
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, protocolVersion_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, latestGameVersion_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, latestBetaRevision_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(4, serverType_.getNumber());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, numPlayersOnServer_);
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.AnnounceMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AnnounceMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AnnounceMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AnnounceMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AnnounceMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AnnounceMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AnnounceMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.AnnounceMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.AnnounceMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AnnounceMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.AnnounceMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.AnnounceMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.AnnounceMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.AnnounceMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        protocolVersion_ = de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000001);
        latestGameVersion_ = de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000002);
        latestBetaRevision_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        serverType_ = de.pokerth.protocol.ProtoBuf.AnnounceMessage.ServerType.serverTypeLAN;
        bitField0_ = (bitField0_ & ~0x00000008);
        numPlayersOnServer_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.AnnounceMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.AnnounceMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.AnnounceMessage build() {
        de.pokerth.protocol.ProtoBuf.AnnounceMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.AnnounceMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.AnnounceMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.AnnounceMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.AnnounceMessage result = new de.pokerth.protocol.ProtoBuf.AnnounceMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.protocolVersion_ = protocolVersion_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.latestGameVersion_ = latestGameVersion_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.latestBetaRevision_ = latestBetaRevision_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.serverType_ = serverType_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.numPlayersOnServer_ = numPlayersOnServer_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      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;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 10: {
              de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.Builder subBuilder = de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.newBuilder();
              if (hasProtocolVersion()) {
                subBuilder.mergeFrom(getProtocolVersion());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setProtocolVersion(subBuilder.buildPartial());
              break;
            }
            case 18: {
              de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.Builder subBuilder = de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.newBuilder();
              if (hasLatestGameVersion()) {
                subBuilder.mergeFrom(getLatestGameVersion());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setLatestGameVersion(subBuilder.buildPartial());
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              latestBetaRevision_ = input.readUInt32();
              break;
            }
            case 32: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.AnnounceMessage.ServerType value = de.pokerth.protocol.ProtoBuf.AnnounceMessage.ServerType.valueOf(rawValue);
              if (value != null) {
                bitField0_ |= 0x00000008;
                serverType_ = value;
              }
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              numPlayersOnServer_ = input.readUInt32();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required .AnnounceMessage.Version protocolVersion = 1;
      private de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version protocolVersion_ = de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.getDefaultInstance();
      public boolean hasProtocolVersion() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version getProtocolVersion() {
        return protocolVersion_;
      }
      public Builder setProtocolVersion(de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version value) {
        if (value == null) {
          throw new NullPointerException();
        }
        protocolVersion_ = value;
        
        bitField0_ |= 0x00000001;
        return this;
      }
      public Builder setProtocolVersion(
          de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.Builder builderForValue) {
        protocolVersion_ = builderForValue.build();
        
        bitField0_ |= 0x00000001;
        return this;
      }
      public Builder mergeProtocolVersion(de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version value) {
        if (((bitField0_ & 0x00000001) == 0x00000001) &&
            protocolVersion_ != de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.getDefaultInstance()) {
          protocolVersion_ =
            de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.newBuilder(protocolVersion_).mergeFrom(value).buildPartial();
        } else {
          protocolVersion_ = value;
        }
        
        bitField0_ |= 0x00000001;
        return this;
      }
      public Builder clearProtocolVersion() {
        protocolVersion_ = de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.getDefaultInstance();
        
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      
      // required .AnnounceMessage.Version latestGameVersion = 2;
      private de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version latestGameVersion_ = de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.getDefaultInstance();
      public boolean hasLatestGameVersion() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version getLatestGameVersion() {
        return latestGameVersion_;
      }
      public Builder setLatestGameVersion(de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version value) {
        if (value == null) {
          throw new NullPointerException();
        }
        latestGameVersion_ = value;
        
        bitField0_ |= 0x00000002;
        return this;
      }
      public Builder setLatestGameVersion(
          de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.Builder builderForValue) {
        latestGameVersion_ = builderForValue.build();
        
        bitField0_ |= 0x00000002;
        return this;
      }
      public Builder mergeLatestGameVersion(de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version value) {
        if (((bitField0_ & 0x00000002) == 0x00000002) &&
            latestGameVersion_ != de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.getDefaultInstance()) {
          latestGameVersion_ =
            de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.newBuilder(latestGameVersion_).mergeFrom(value).buildPartial();
        } else {
          latestGameVersion_ = value;
        }
        
        bitField0_ |= 0x00000002;
        return this;
      }
      public Builder clearLatestGameVersion() {
        latestGameVersion_ = de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.getDefaultInstance();
        
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      
      // required uint32 latestBetaRevision = 3;
      private int latestBetaRevision_ ;
      public boolean hasLatestBetaRevision() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public int getLatestBetaRevision() {
        return latestBetaRevision_;
      }
      public Builder setLatestBetaRevision(int value) {
        bitField0_ |= 0x00000004;
        latestBetaRevision_ = value;
        
        return this;
      }
      public Builder clearLatestBetaRevision() {
        bitField0_ = (bitField0_ & ~0x00000004);
        latestBetaRevision_ = 0;
        
        return this;
      }
      
      // required .AnnounceMessage.ServerType serverType = 4;
      private de.pokerth.protocol.ProtoBuf.AnnounceMessage.ServerType serverType_ = de.pokerth.protocol.ProtoBuf.AnnounceMessage.ServerType.serverTypeLAN;
      public boolean hasServerType() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      public de.pokerth.protocol.ProtoBuf.AnnounceMessage.ServerType getServerType() {
        return serverType_;
      }
      public Builder setServerType(de.pokerth.protocol.ProtoBuf.AnnounceMessage.ServerType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        serverType_ = value;
        
        return this;
      }
      public Builder clearServerType() {
        bitField0_ = (bitField0_ & ~0x00000008);
        serverType_ = de.pokerth.protocol.ProtoBuf.AnnounceMessage.ServerType.serverTypeLAN;
        
        return this;
      }
      
      // required uint32 numPlayersOnServer = 5;
      private int numPlayersOnServer_ ;
      public boolean hasNumPlayersOnServer() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      public int getNumPlayersOnServer() {
        return numPlayersOnServer_;
      }
      public Builder setNumPlayersOnServer(int value) {
        bitField0_ |= 0x00000010;
        numPlayersOnServer_ = value;
        
        return this;
      }
      public Builder clearNumPlayersOnServer() {
        bitField0_ = (bitField0_ & ~0x00000010);
        numPlayersOnServer_ = 0;
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:AnnounceMessage)
    }
    
    static {
      defaultInstance = new AnnounceMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:AnnounceMessage)
  }
  
  public interface InitMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required .AnnounceMessage.Version requestedVersion = 1;
    boolean hasRequestedVersion();
    de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version getRequestedVersion();
    
    // required uint32 buildId = 2;
    boolean hasBuildId();
    int getBuildId();
    
    // optional bytes myLastSessionId = 3;
    boolean hasMyLastSessionId();
    com.google.protobuf.ByteString getMyLastSessionId();
    
    // optional string authServerPassword = 4;
    boolean hasAuthServerPassword();
    String getAuthServerPassword();
    
    // required .InitMessage.LoginType login = 5;
    boolean hasLogin();
    de.pokerth.protocol.ProtoBuf.InitMessage.LoginType getLogin();
    
    // optional string nickName = 6;
    boolean hasNickName();
    String getNickName();
    
    // optional bytes clientUserData = 7;
    boolean hasClientUserData();
    com.google.protobuf.ByteString getClientUserData();
    
    // optional bytes avatarHash = 8;
    boolean hasAvatarHash();
    com.google.protobuf.ByteString getAvatarHash();
  }
  public static final class InitMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements InitMessageOrBuilder {
    // Use InitMessage.newBuilder() to construct.
    private InitMessage(Builder builder) {
      super(builder);
    }
    private InitMessage(boolean noInit) {}
    
    private static final InitMessage defaultInstance;
    public static InitMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public InitMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public enum LoginType
        implements com.google.protobuf.Internal.EnumLite {
      guestLogin(0, 0),
      authenticatedLogin(1, 1),
      unauthenticatedLogin(2, 2),
      ;
      
      public static final int guestLogin_VALUE = 0;
      public static final int authenticatedLogin_VALUE = 1;
      public static final int unauthenticatedLogin_VALUE = 2;
      
      
      public final int getNumber() { return value; }
      
      public static LoginType valueOf(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 com.google.protobuf.Internal.EnumLiteMap<LoginType>
          internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<LoginType>() {
              public LoginType findValueByNumber(int number) {
                return LoginType.valueOf(number);
              }
            };
      
      private final int value;
      
      private LoginType(int index, int value) {
        this.value = value;
      }
      
      // @@protoc_insertion_point(enum_scope:InitMessage.LoginType)
    }
    
    private int bitField0_;
    // required .AnnounceMessage.Version requestedVersion = 1;
    public static final int REQUESTEDVERSION_FIELD_NUMBER = 1;
    private de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version requestedVersion_;
    public boolean hasRequestedVersion() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version getRequestedVersion() {
      return requestedVersion_;
    }
    
    // required uint32 buildId = 2;
    public static final int BUILDID_FIELD_NUMBER = 2;
    private int buildId_;
    public boolean hasBuildId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public int getBuildId() {
      return buildId_;
    }
    
    // optional bytes myLastSessionId = 3;
    public static final int MYLASTSESSIONID_FIELD_NUMBER = 3;
    private com.google.protobuf.ByteString myLastSessionId_;
    public boolean hasMyLastSessionId() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    public com.google.protobuf.ByteString getMyLastSessionId() {
      return myLastSessionId_;
    }
    
    // optional string authServerPassword = 4;
    public static final int AUTHSERVERPASSWORD_FIELD_NUMBER = 4;
    private java.lang.Object authServerPassword_;
    public boolean hasAuthServerPassword() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    public String getAuthServerPassword() {
      java.lang.Object ref = authServerPassword_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
          authServerPassword_ = s;
        }
        return s;
      }
    }
    private com.google.protobuf.ByteString getAuthServerPasswordBytes() {
      java.lang.Object ref = authServerPassword_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
        authServerPassword_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    
    // required .InitMessage.LoginType login = 5;
    public static final int LOGIN_FIELD_NUMBER = 5;
    private de.pokerth.protocol.ProtoBuf.InitMessage.LoginType login_;
    public boolean hasLogin() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    public de.pokerth.protocol.ProtoBuf.InitMessage.LoginType getLogin() {
      return login_;
    }
    
    // optional string nickName = 6;
    public static final int NICKNAME_FIELD_NUMBER = 6;
    private java.lang.Object nickName_;
    public boolean hasNickName() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    public String getNickName() {
      java.lang.Object ref = nickName_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
          nickName_ = s;
        }
        return s;
      }
    }
    private com.google.protobuf.ByteString getNickNameBytes() {
      java.lang.Object ref = nickName_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
        nickName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    
    // optional bytes clientUserData = 7;
    public static final int CLIENTUSERDATA_FIELD_NUMBER = 7;
    private com.google.protobuf.ByteString clientUserData_;
    public boolean hasClientUserData() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    public com.google.protobuf.ByteString getClientUserData() {
      return clientUserData_;
    }
    
    // optional bytes avatarHash = 8;
    public static final int AVATARHASH_FIELD_NUMBER = 8;
    private com.google.protobuf.ByteString avatarHash_;
    public boolean hasAvatarHash() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    public com.google.protobuf.ByteString getAvatarHash() {
      return avatarHash_;
    }
    
    private void initFields() {
      requestedVersion_ = de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.getDefaultInstance();
      buildId_ = 0;
      myLastSessionId_ = com.google.protobuf.ByteString.EMPTY;
      authServerPassword_ = "";
      login_ = de.pokerth.protocol.ProtoBuf.InitMessage.LoginType.guestLogin;
      nickName_ = "";
      clientUserData_ = com.google.protobuf.ByteString.EMPTY;
      avatarHash_ = com.google.protobuf.ByteString.EMPTY;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      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;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, requestedVersion_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, buildId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(3, myLastSessionId_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBytes(4, getAuthServerPasswordBytes());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeEnum(5, login_.getNumber());
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeBytes(6, getNickNameBytes());
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeBytes(7, clientUserData_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeBytes(8, avatarHash_);
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, requestedVersion_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, buildId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, myLastSessionId_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(4, getAuthServerPasswordBytes());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(5, login_.getNumber());
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(6, getNickNameBytes());
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(7, clientUserData_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(8, avatarHash_);
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.InitMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.InitMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.InitMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.InitMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.InitMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.InitMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.InitMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.InitMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.InitMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.InitMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.InitMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.InitMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.InitMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.InitMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        requestedVersion_ = de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000001);
        buildId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        myLastSessionId_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        authServerPassword_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        login_ = de.pokerth.protocol.ProtoBuf.InitMessage.LoginType.guestLogin;
        bitField0_ = (bitField0_ & ~0x00000010);
        nickName_ = "";
        bitField0_ = (bitField0_ & ~0x00000020);
        clientUserData_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000040);
        avatarHash_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000080);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.InitMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.InitMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.InitMessage build() {
        de.pokerth.protocol.ProtoBuf.InitMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.InitMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.InitMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.InitMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.InitMessage result = new de.pokerth.protocol.ProtoBuf.InitMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.requestedVersion_ = requestedVersion_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.buildId_ = buildId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.myLastSessionId_ = myLastSessionId_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.authServerPassword_ = authServerPassword_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.login_ = login_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.nickName_ = nickName_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.clientUserData_ = clientUserData_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        result.avatarHash_ = avatarHash_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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()) {
          setAuthServerPassword(other.getAuthServerPassword());
        }
        if (other.hasLogin()) {
          setLogin(other.getLogin());
        }
        if (other.hasNickName()) {
          setNickName(other.getNickName());
        }
        if (other.hasClientUserData()) {
          setClientUserData(other.getClientUserData());
        }
        if (other.hasAvatarHash()) {
          setAvatarHash(other.getAvatarHash());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasRequestedVersion()) {
          
          return false;
        }
        if (!hasBuildId()) {
          
          return false;
        }
        if (!hasLogin()) {
          
          return false;
        }
        if (!getRequestedVersion().isInitialized()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 10: {
              de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.Builder subBuilder = de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.newBuilder();
              if (hasRequestedVersion()) {
                subBuilder.mergeFrom(getRequestedVersion());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setRequestedVersion(subBuilder.buildPartial());
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              buildId_ = input.readUInt32();
              break;
            }
            case 26: {
              bitField0_ |= 0x00000004;
              myLastSessionId_ = input.readBytes();
              break;
            }
            case 34: {
              bitField0_ |= 0x00000008;
              authServerPassword_ = input.readBytes();
              break;
            }
            case 40: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.InitMessage.LoginType value = de.pokerth.protocol.ProtoBuf.InitMessage.LoginType.valueOf(rawValue);
              if (value != null) {
                bitField0_ |= 0x00000010;
                login_ = value;
              }
              break;
            }
            case 50: {
              bitField0_ |= 0x00000020;
              nickName_ = input.readBytes();
              break;
            }
            case 58: {
              bitField0_ |= 0x00000040;
              clientUserData_ = input.readBytes();
              break;
            }
            case 66: {
              bitField0_ |= 0x00000080;
              avatarHash_ = input.readBytes();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required .AnnounceMessage.Version requestedVersion = 1;
      private de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version requestedVersion_ = de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.getDefaultInstance();
      public boolean hasRequestedVersion() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version getRequestedVersion() {
        return requestedVersion_;
      }
      public Builder setRequestedVersion(de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version value) {
        if (value == null) {
          throw new NullPointerException();
        }
        requestedVersion_ = value;
        
        bitField0_ |= 0x00000001;
        return this;
      }
      public Builder setRequestedVersion(
          de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.Builder builderForValue) {
        requestedVersion_ = builderForValue.build();
        
        bitField0_ |= 0x00000001;
        return this;
      }
      public Builder mergeRequestedVersion(de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version value) {
        if (((bitField0_ & 0x00000001) == 0x00000001) &&
            requestedVersion_ != de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.getDefaultInstance()) {
          requestedVersion_ =
            de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.newBuilder(requestedVersion_).mergeFrom(value).buildPartial();
        } else {
          requestedVersion_ = value;
        }
        
        bitField0_ |= 0x00000001;
        return this;
      }
      public Builder clearRequestedVersion() {
        requestedVersion_ = de.pokerth.protocol.ProtoBuf.AnnounceMessage.Version.getDefaultInstance();
        
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      
      // required uint32 buildId = 2;
      private int buildId_ ;
      public boolean hasBuildId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getBuildId() {
        return buildId_;
      }
      public Builder setBuildId(int value) {
        bitField0_ |= 0x00000002;
        buildId_ = value;
        
        return this;
      }
      public Builder clearBuildId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        buildId_ = 0;
        
        return this;
      }
      
      // optional bytes myLastSessionId = 3;
      private com.google.protobuf.ByteString myLastSessionId_ = com.google.protobuf.ByteString.EMPTY;
      public boolean hasMyLastSessionId() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public com.google.protobuf.ByteString getMyLastSessionId() {
        return myLastSessionId_;
      }
      public Builder setMyLastSessionId(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        myLastSessionId_ = value;
        
        return this;
      }
      public Builder clearMyLastSessionId() {
        bitField0_ = (bitField0_ & ~0x00000004);
        myLastSessionId_ = getDefaultInstance().getMyLastSessionId();
        
        return this;
      }
      
      // optional string authServerPassword = 4;
      private java.lang.Object authServerPassword_ = "";
      public boolean hasAuthServerPassword() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      public String getAuthServerPassword() {
        java.lang.Object ref = authServerPassword_;
        if (!(ref instanceof String)) {
          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
          authServerPassword_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      public Builder setAuthServerPassword(String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        authServerPassword_ = value;
        
        return this;
      }
      public Builder clearAuthServerPassword() {
        bitField0_ = (bitField0_ & ~0x00000008);
        authServerPassword_ = getDefaultInstance().getAuthServerPassword();
        
        return this;
      }
      void setAuthServerPassword(com.google.protobuf.ByteString value) {
        bitField0_ |= 0x00000008;
        authServerPassword_ = value;
        
      }
      
      // required .InitMessage.LoginType login = 5;
      private de.pokerth.protocol.ProtoBuf.InitMessage.LoginType login_ = de.pokerth.protocol.ProtoBuf.InitMessage.LoginType.guestLogin;
      public boolean hasLogin() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      public de.pokerth.protocol.ProtoBuf.InitMessage.LoginType getLogin() {
        return login_;
      }
      public Builder setLogin(de.pokerth.protocol.ProtoBuf.InitMessage.LoginType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        login_ = value;
        
        return this;
      }
      public Builder clearLogin() {
        bitField0_ = (bitField0_ & ~0x00000010);
        login_ = de.pokerth.protocol.ProtoBuf.InitMessage.LoginType.guestLogin;
        
        return this;
      }
      
      // optional string nickName = 6;
      private java.lang.Object nickName_ = "";
      public boolean hasNickName() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      public String getNickName() {
        java.lang.Object ref = nickName_;
        if (!(ref instanceof String)) {
          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
          nickName_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      public Builder setNickName(String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000020;
        nickName_ = value;
        
        return this;
      }
      public Builder clearNickName() {
        bitField0_ = (bitField0_ & ~0x00000020);
        nickName_ = getDefaultInstance().getNickName();
        
        return this;
      }
      void setNickName(com.google.protobuf.ByteString value) {
        bitField0_ |= 0x00000020;
        nickName_ = value;
        
      }
      
      // optional bytes clientUserData = 7;
      private com.google.protobuf.ByteString clientUserData_ = com.google.protobuf.ByteString.EMPTY;
      public boolean hasClientUserData() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      public com.google.protobuf.ByteString getClientUserData() {
        return clientUserData_;
      }
      public Builder setClientUserData(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000040;
        clientUserData_ = value;
        
        return this;
      }
      public Builder clearClientUserData() {
        bitField0_ = (bitField0_ & ~0x00000040);
        clientUserData_ = getDefaultInstance().getClientUserData();
        
        return this;
      }
      
      // optional bytes avatarHash = 8;
      private com.google.protobuf.ByteString avatarHash_ = com.google.protobuf.ByteString.EMPTY;
      public boolean hasAvatarHash() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      public com.google.protobuf.ByteString getAvatarHash() {
        return avatarHash_;
      }
      public Builder setAvatarHash(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000080;
        avatarHash_ = value;
        
        return this;
      }
      public Builder clearAvatarHash() {
        bitField0_ = (bitField0_ & ~0x00000080);
        avatarHash_ = getDefaultInstance().getAvatarHash();
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:InitMessage)
    }
    
    static {
      defaultInstance = new InitMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:InitMessage)
  }
  
  public interface AuthServerChallengeMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required bytes serverChallenge = 1;
    boolean hasServerChallenge();
    com.google.protobuf.ByteString getServerChallenge();
  }
  public static final class AuthServerChallengeMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements AuthServerChallengeMessageOrBuilder {
    // Use AuthServerChallengeMessage.newBuilder() to construct.
    private AuthServerChallengeMessage(Builder builder) {
      super(builder);
    }
    private AuthServerChallengeMessage(boolean noInit) {}
    
    private static final AuthServerChallengeMessage defaultInstance;
    public static AuthServerChallengeMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public AuthServerChallengeMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    private int bitField0_;
    // required bytes serverChallenge = 1;
    public static final int SERVERCHALLENGE_FIELD_NUMBER = 1;
    private com.google.protobuf.ByteString serverChallenge_;
    public boolean hasServerChallenge() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public com.google.protobuf.ByteString getServerChallenge() {
      return serverChallenge_;
    }
    
    private void initFields() {
      serverChallenge_ = com.google.protobuf.ByteString.EMPTY;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasServerChallenge()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, serverChallenge_);
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, serverChallenge_);
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        serverChallenge_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage build() {
        de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage result = new de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.serverChallenge_ = serverChallenge_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasServerChallenge()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              serverChallenge_ = input.readBytes();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required bytes serverChallenge = 1;
      private com.google.protobuf.ByteString serverChallenge_ = com.google.protobuf.ByteString.EMPTY;
      public boolean hasServerChallenge() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public com.google.protobuf.ByteString getServerChallenge() {
        return serverChallenge_;
      }
      public Builder setServerChallenge(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        serverChallenge_ = value;
        
        return this;
      }
      public Builder clearServerChallenge() {
        bitField0_ = (bitField0_ & ~0x00000001);
        serverChallenge_ = getDefaultInstance().getServerChallenge();
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:AuthServerChallengeMessage)
    }
    
    static {
      defaultInstance = new AuthServerChallengeMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:AuthServerChallengeMessage)
  }
  
  public interface AuthClientResponseMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required bytes clientResponse = 1;
    boolean hasClientResponse();
    com.google.protobuf.ByteString getClientResponse();
  }
  public static final class AuthClientResponseMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements AuthClientResponseMessageOrBuilder {
    // Use AuthClientResponseMessage.newBuilder() to construct.
    private AuthClientResponseMessage(Builder builder) {
      super(builder);
    }
    private AuthClientResponseMessage(boolean noInit) {}
    
    private static final AuthClientResponseMessage defaultInstance;
    public static AuthClientResponseMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public AuthClientResponseMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    private int bitField0_;
    // required bytes clientResponse = 1;
    public static final int CLIENTRESPONSE_FIELD_NUMBER = 1;
    private com.google.protobuf.ByteString clientResponse_;
    public boolean hasClientResponse() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public com.google.protobuf.ByteString getClientResponse() {
      return clientResponse_;
    }
    
    private void initFields() {
      clientResponse_ = com.google.protobuf.ByteString.EMPTY;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasClientResponse()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, clientResponse_);
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, clientResponse_);
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.AuthClientResponseMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        clientResponse_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage build() {
        de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage result = new de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.clientResponse_ = clientResponse_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasClientResponse()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              clientResponse_ = input.readBytes();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required bytes clientResponse = 1;
      private com.google.protobuf.ByteString clientResponse_ = com.google.protobuf.ByteString.EMPTY;
      public boolean hasClientResponse() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public com.google.protobuf.ByteString getClientResponse() {
        return clientResponse_;
      }
      public Builder setClientResponse(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        clientResponse_ = value;
        
        return this;
      }
      public Builder clearClientResponse() {
        bitField0_ = (bitField0_ & ~0x00000001);
        clientResponse_ = getDefaultInstance().getClientResponse();
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:AuthClientResponseMessage)
    }
    
    static {
      defaultInstance = new AuthClientResponseMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:AuthClientResponseMessage)
  }
  
  public interface AuthServerVerificationMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required bytes serverVerification = 1;
    boolean hasServerVerification();
    com.google.protobuf.ByteString getServerVerification();
  }
  public static final class AuthServerVerificationMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements AuthServerVerificationMessageOrBuilder {
    // Use AuthServerVerificationMessage.newBuilder() to construct.
    private AuthServerVerificationMessage(Builder builder) {
      super(builder);
    }
    private AuthServerVerificationMessage(boolean noInit) {}
    
    private static final AuthServerVerificationMessage defaultInstance;
    public static AuthServerVerificationMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public AuthServerVerificationMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    private int bitField0_;
    // required bytes serverVerification = 1;
    public static final int SERVERVERIFICATION_FIELD_NUMBER = 1;
    private com.google.protobuf.ByteString serverVerification_;
    public boolean hasServerVerification() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public com.google.protobuf.ByteString getServerVerification() {
      return serverVerification_;
    }
    
    private void initFields() {
      serverVerification_ = com.google.protobuf.ByteString.EMPTY;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasServerVerification()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, serverVerification_);
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, serverVerification_);
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        serverVerification_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage build() {
        de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage result = new de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.serverVerification_ = serverVerification_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasServerVerification()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              serverVerification_ = input.readBytes();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required bytes serverVerification = 1;
      private com.google.protobuf.ByteString serverVerification_ = com.google.protobuf.ByteString.EMPTY;
      public boolean hasServerVerification() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public com.google.protobuf.ByteString getServerVerification() {
        return serverVerification_;
      }
      public Builder setServerVerification(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        serverVerification_ = value;
        
        return this;
      }
      public Builder clearServerVerification() {
        bitField0_ = (bitField0_ & ~0x00000001);
        serverVerification_ = getDefaultInstance().getServerVerification();
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:AuthServerVerificationMessage)
    }
    
    static {
      defaultInstance = new AuthServerVerificationMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:AuthServerVerificationMessage)
  }
  
  public interface InitAckMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required bytes yourSessionId = 1;
    boolean hasYourSessionId();
    com.google.protobuf.ByteString getYourSessionId();
    
    // required uint32 yourPlayerId = 2;
    boolean hasYourPlayerId();
    int getYourPlayerId();
    
    // optional bytes yourAvatarHash = 3;
    boolean hasYourAvatarHash();
    com.google.protobuf.ByteString getYourAvatarHash();
    
    // optional uint32 rejoinGameId = 4;
    boolean hasRejoinGameId();
    int getRejoinGameId();
  }
  public static final class InitAckMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements InitAckMessageOrBuilder {
    // Use InitAckMessage.newBuilder() to construct.
    private InitAckMessage(Builder builder) {
      super(builder);
    }
    private InitAckMessage(boolean noInit) {}
    
    private static final InitAckMessage defaultInstance;
    public static InitAckMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public InitAckMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    private int bitField0_;
    // required bytes yourSessionId = 1;
    public static final int YOURSESSIONID_FIELD_NUMBER = 1;
    private com.google.protobuf.ByteString yourSessionId_;
    public boolean hasYourSessionId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public com.google.protobuf.ByteString getYourSessionId() {
      return yourSessionId_;
    }
    
    // required uint32 yourPlayerId = 2;
    public static final int YOURPLAYERID_FIELD_NUMBER = 2;
    private int yourPlayerId_;
    public boolean hasYourPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public int getYourPlayerId() {
      return yourPlayerId_;
    }
    
    // optional bytes yourAvatarHash = 3;
    public static final int YOURAVATARHASH_FIELD_NUMBER = 3;
    private com.google.protobuf.ByteString yourAvatarHash_;
    public boolean hasYourAvatarHash() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    public com.google.protobuf.ByteString getYourAvatarHash() {
      return yourAvatarHash_;
    }
    
    // optional uint32 rejoinGameId = 4;
    public static final int REJOINGAMEID_FIELD_NUMBER = 4;
    private int rejoinGameId_;
    public boolean hasRejoinGameId() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    public int getRejoinGameId() {
      return rejoinGameId_;
    }
    
    private void initFields() {
      yourSessionId_ = com.google.protobuf.ByteString.EMPTY;
      yourPlayerId_ = 0;
      yourAvatarHash_ = com.google.protobuf.ByteString.EMPTY;
      rejoinGameId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasYourSessionId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasYourPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, yourSessionId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, yourPlayerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(3, yourAvatarHash_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(4, rejoinGameId_);
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, yourSessionId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, yourPlayerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, yourAvatarHash_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, rejoinGameId_);
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.InitAckMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.InitAckMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.InitAckMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.InitAckMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.InitAckMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.InitAckMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.InitAckMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.InitAckMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.InitAckMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.InitAckMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.InitAckMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.InitAckMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.InitAckMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.InitAckMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        yourSessionId_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        yourPlayerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        yourAvatarHash_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        rejoinGameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.InitAckMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.InitAckMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.InitAckMessage build() {
        de.pokerth.protocol.ProtoBuf.InitAckMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.InitAckMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.InitAckMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.InitAckMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.InitAckMessage result = new de.pokerth.protocol.ProtoBuf.InitAckMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.yourSessionId_ = yourSessionId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.yourPlayerId_ = yourPlayerId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.yourAvatarHash_ = yourAvatarHash_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.rejoinGameId_ = rejoinGameId_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasYourSessionId()) {
          
          return false;
        }
        if (!hasYourPlayerId()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              yourSessionId_ = input.readBytes();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              yourPlayerId_ = input.readUInt32();
              break;
            }
            case 26: {
              bitField0_ |= 0x00000004;
              yourAvatarHash_ = input.readBytes();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              rejoinGameId_ = input.readUInt32();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required bytes yourSessionId = 1;
      private com.google.protobuf.ByteString yourSessionId_ = com.google.protobuf.ByteString.EMPTY;
      public boolean hasYourSessionId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public com.google.protobuf.ByteString getYourSessionId() {
        return yourSessionId_;
      }
      public Builder setYourSessionId(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        yourSessionId_ = value;
        
        return this;
      }
      public Builder clearYourSessionId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        yourSessionId_ = getDefaultInstance().getYourSessionId();
        
        return this;
      }
      
      // required uint32 yourPlayerId = 2;
      private int yourPlayerId_ ;
      public boolean hasYourPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getYourPlayerId() {
        return yourPlayerId_;
      }
      public Builder setYourPlayerId(int value) {
        bitField0_ |= 0x00000002;
        yourPlayerId_ = value;
        
        return this;
      }
      public Builder clearYourPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        yourPlayerId_ = 0;
        
        return this;
      }
      
      // optional bytes yourAvatarHash = 3;
      private com.google.protobuf.ByteString yourAvatarHash_ = com.google.protobuf.ByteString.EMPTY;
      public boolean hasYourAvatarHash() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public com.google.protobuf.ByteString getYourAvatarHash() {
        return yourAvatarHash_;
      }
      public Builder setYourAvatarHash(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        yourAvatarHash_ = value;
        
        return this;
      }
      public Builder clearYourAvatarHash() {
        bitField0_ = (bitField0_ & ~0x00000004);
        yourAvatarHash_ = getDefaultInstance().getYourAvatarHash();
        
        return this;
      }
      
      // optional uint32 rejoinGameId = 4;
      private int rejoinGameId_ ;
      public boolean hasRejoinGameId() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      public int getRejoinGameId() {
        return rejoinGameId_;
      }
      public Builder setRejoinGameId(int value) {
        bitField0_ |= 0x00000008;
        rejoinGameId_ = value;
        
        return this;
      }
      public Builder clearRejoinGameId() {
        bitField0_ = (bitField0_ & ~0x00000008);
        rejoinGameId_ = 0;
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:InitAckMessage)
    }
    
    static {
      defaultInstance = new InitAckMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:InitAckMessage)
  }
  
  public interface AvatarRequestMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 requestId = 1;
    boolean hasRequestId();
    int getRequestId();
    
    // required bytes avatarHash = 2;
    boolean hasAvatarHash();
    com.google.protobuf.ByteString getAvatarHash();
  }
  public static final class AvatarRequestMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements AvatarRequestMessageOrBuilder {
    // Use AvatarRequestMessage.newBuilder() to construct.
    private AvatarRequestMessage(Builder builder) {
      super(builder);
    }
    private AvatarRequestMessage(boolean noInit) {}
    
    private static final AvatarRequestMessage defaultInstance;
    public static AvatarRequestMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public AvatarRequestMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    private int bitField0_;
    // required uint32 requestId = 1;
    public static final int REQUESTID_FIELD_NUMBER = 1;
    private int requestId_;
    public boolean hasRequestId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getRequestId() {
      return requestId_;
    }
    
    // required bytes avatarHash = 2;
    public static final int AVATARHASH_FIELD_NUMBER = 2;
    private com.google.protobuf.ByteString avatarHash_;
    public boolean hasAvatarHash() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public com.google.protobuf.ByteString getAvatarHash() {
      return avatarHash_;
    }
    
    private void initFields() {
      requestId_ = 0;
      avatarHash_ = com.google.protobuf.ByteString.EMPTY;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasRequestId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasAvatarHash()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, requestId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, avatarHash_);
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, requestId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, avatarHash_);
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.AvatarRequestMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarRequestMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarRequestMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarRequestMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarRequestMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarRequestMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarRequestMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarRequestMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarRequestMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarRequestMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.AvatarRequestMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.AvatarRequestMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.AvatarRequestMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.AvatarRequestMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        requestId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        avatarHash_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.AvatarRequestMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.AvatarRequestMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.AvatarRequestMessage build() {
        de.pokerth.protocol.ProtoBuf.AvatarRequestMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.AvatarRequestMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.AvatarRequestMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.AvatarRequestMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.AvatarRequestMessage result = new de.pokerth.protocol.ProtoBuf.AvatarRequestMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.requestId_ = requestId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.avatarHash_ = avatarHash_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasRequestId()) {
          
          return false;
        }
        if (!hasAvatarHash()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              requestId_ = input.readUInt32();
              break;
            }
            case 18: {
              bitField0_ |= 0x00000002;
              avatarHash_ = input.readBytes();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 requestId = 1;
      private int requestId_ ;
      public boolean hasRequestId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getRequestId() {
        return requestId_;
      }
      public Builder setRequestId(int value) {
        bitField0_ |= 0x00000001;
        requestId_ = value;
        
        return this;
      }
      public Builder clearRequestId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        requestId_ = 0;
        
        return this;
      }
      
      // required bytes avatarHash = 2;
      private com.google.protobuf.ByteString avatarHash_ = com.google.protobuf.ByteString.EMPTY;
      public boolean hasAvatarHash() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public com.google.protobuf.ByteString getAvatarHash() {
        return avatarHash_;
      }
      public Builder setAvatarHash(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        avatarHash_ = value;
        
        return this;
      }
      public Builder clearAvatarHash() {
        bitField0_ = (bitField0_ & ~0x00000002);
        avatarHash_ = getDefaultInstance().getAvatarHash();
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:AvatarRequestMessage)
    }
    
    static {
      defaultInstance = new AvatarRequestMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:AvatarRequestMessage)
  }
  
  public interface AvatarHeaderMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 requestId = 1;
    boolean hasRequestId();
    int getRequestId();
    
    // required .NetAvatarType avatarType = 2;
    boolean hasAvatarType();
    de.pokerth.protocol.ProtoBuf.NetAvatarType getAvatarType();
    
    // required uint32 avatarSize = 3;
    boolean hasAvatarSize();
    int getAvatarSize();
  }
  public static final class AvatarHeaderMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements AvatarHeaderMessageOrBuilder {
    // Use AvatarHeaderMessage.newBuilder() to construct.
    private AvatarHeaderMessage(Builder builder) {
      super(builder);
    }
    private AvatarHeaderMessage(boolean noInit) {}
    
    private static final AvatarHeaderMessage defaultInstance;
    public static AvatarHeaderMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public AvatarHeaderMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    private int bitField0_;
    // required uint32 requestId = 1;
    public static final int REQUESTID_FIELD_NUMBER = 1;
    private int requestId_;
    public boolean hasRequestId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getRequestId() {
      return requestId_;
    }
    
    // required .NetAvatarType avatarType = 2;
    public static final int AVATARTYPE_FIELD_NUMBER = 2;
    private de.pokerth.protocol.ProtoBuf.NetAvatarType avatarType_;
    public boolean hasAvatarType() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public de.pokerth.protocol.ProtoBuf.NetAvatarType getAvatarType() {
      return avatarType_;
    }
    
    // required uint32 avatarSize = 3;
    public static final int AVATARSIZE_FIELD_NUMBER = 3;
    private int avatarSize_;
    public boolean hasAvatarSize() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    public int getAvatarSize() {
      return avatarSize_;
    }
    
    private void initFields() {
      requestId_ = 0;
      avatarType_ = de.pokerth.protocol.ProtoBuf.NetAvatarType.netAvatarImagePng;
      avatarSize_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasRequestId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasAvatarType()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasAvatarSize()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, requestId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeEnum(2, avatarType_.getNumber());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, avatarSize_);
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, requestId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, avatarType_.getNumber());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, avatarSize_);
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.AvatarHeaderMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        requestId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        avatarType_ = de.pokerth.protocol.ProtoBuf.NetAvatarType.netAvatarImagePng;
        bitField0_ = (bitField0_ & ~0x00000002);
        avatarSize_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage build() {
        de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage result = new de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.requestId_ = requestId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.avatarType_ = avatarType_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.avatarSize_ = avatarSize_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasRequestId()) {
          
          return false;
        }
        if (!hasAvatarType()) {
          
          return false;
        }
        if (!hasAvatarSize()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              requestId_ = input.readUInt32();
              break;
            }
            case 16: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.NetAvatarType value = de.pokerth.protocol.ProtoBuf.NetAvatarType.valueOf(rawValue);
              if (value != null) {
                bitField0_ |= 0x00000002;
                avatarType_ = value;
              }
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              avatarSize_ = input.readUInt32();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 requestId = 1;
      private int requestId_ ;
      public boolean hasRequestId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getRequestId() {
        return requestId_;
      }
      public Builder setRequestId(int value) {
        bitField0_ |= 0x00000001;
        requestId_ = value;
        
        return this;
      }
      public Builder clearRequestId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        requestId_ = 0;
        
        return this;
      }
      
      // required .NetAvatarType avatarType = 2;
      private de.pokerth.protocol.ProtoBuf.NetAvatarType avatarType_ = de.pokerth.protocol.ProtoBuf.NetAvatarType.netAvatarImagePng;
      public boolean hasAvatarType() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public de.pokerth.protocol.ProtoBuf.NetAvatarType getAvatarType() {
        return avatarType_;
      }
      public Builder setAvatarType(de.pokerth.protocol.ProtoBuf.NetAvatarType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        avatarType_ = value;
        
        return this;
      }
      public Builder clearAvatarType() {
        bitField0_ = (bitField0_ & ~0x00000002);
        avatarType_ = de.pokerth.protocol.ProtoBuf.NetAvatarType.netAvatarImagePng;
        
        return this;
      }
      
      // required uint32 avatarSize = 3;
      private int avatarSize_ ;
      public boolean hasAvatarSize() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public int getAvatarSize() {
        return avatarSize_;
      }
      public Builder setAvatarSize(int value) {
        bitField0_ |= 0x00000004;
        avatarSize_ = value;
        
        return this;
      }
      public Builder clearAvatarSize() {
        bitField0_ = (bitField0_ & ~0x00000004);
        avatarSize_ = 0;
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:AvatarHeaderMessage)
    }
    
    static {
      defaultInstance = new AvatarHeaderMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:AvatarHeaderMessage)
  }
  
  public interface AvatarDataMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 requestId = 1;
    boolean hasRequestId();
    int getRequestId();
    
    // required bytes avatarBlock = 2;
    boolean hasAvatarBlock();
    com.google.protobuf.ByteString getAvatarBlock();
  }
  public static final class AvatarDataMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements AvatarDataMessageOrBuilder {
    // Use AvatarDataMessage.newBuilder() to construct.
    private AvatarDataMessage(Builder builder) {
      super(builder);
    }
    private AvatarDataMessage(boolean noInit) {}
    
    private static final AvatarDataMessage defaultInstance;
    public static AvatarDataMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public AvatarDataMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    private int bitField0_;
    // required uint32 requestId = 1;
    public static final int REQUESTID_FIELD_NUMBER = 1;
    private int requestId_;
    public boolean hasRequestId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getRequestId() {
      return requestId_;
    }
    
    // required bytes avatarBlock = 2;
    public static final int AVATARBLOCK_FIELD_NUMBER = 2;
    private com.google.protobuf.ByteString avatarBlock_;
    public boolean hasAvatarBlock() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public com.google.protobuf.ByteString getAvatarBlock() {
      return avatarBlock_;
    }
    
    private void initFields() {
      requestId_ = 0;
      avatarBlock_ = com.google.protobuf.ByteString.EMPTY;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasRequestId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasAvatarBlock()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, requestId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, avatarBlock_);
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, requestId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, avatarBlock_);
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.AvatarDataMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarDataMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarDataMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarDataMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarDataMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarDataMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarDataMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarDataMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarDataMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarDataMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.AvatarDataMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.AvatarDataMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.AvatarDataMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.AvatarDataMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        requestId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        avatarBlock_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.AvatarDataMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.AvatarDataMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.AvatarDataMessage build() {
        de.pokerth.protocol.ProtoBuf.AvatarDataMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.AvatarDataMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.AvatarDataMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.AvatarDataMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.AvatarDataMessage result = new de.pokerth.protocol.ProtoBuf.AvatarDataMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.requestId_ = requestId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.avatarBlock_ = avatarBlock_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasRequestId()) {
          
          return false;
        }
        if (!hasAvatarBlock()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              requestId_ = input.readUInt32();
              break;
            }
            case 18: {
              bitField0_ |= 0x00000002;
              avatarBlock_ = input.readBytes();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 requestId = 1;
      private int requestId_ ;
      public boolean hasRequestId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getRequestId() {
        return requestId_;
      }
      public Builder setRequestId(int value) {
        bitField0_ |= 0x00000001;
        requestId_ = value;
        
        return this;
      }
      public Builder clearRequestId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        requestId_ = 0;
        
        return this;
      }
      
      // required bytes avatarBlock = 2;
      private com.google.protobuf.ByteString avatarBlock_ = com.google.protobuf.ByteString.EMPTY;
      public boolean hasAvatarBlock() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public com.google.protobuf.ByteString getAvatarBlock() {
        return avatarBlock_;
      }
      public Builder setAvatarBlock(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        avatarBlock_ = value;
        
        return this;
      }
      public Builder clearAvatarBlock() {
        bitField0_ = (bitField0_ & ~0x00000002);
        avatarBlock_ = getDefaultInstance().getAvatarBlock();
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:AvatarDataMessage)
    }
    
    static {
      defaultInstance = new AvatarDataMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:AvatarDataMessage)
  }
  
  public interface AvatarEndMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 requestId = 1;
    boolean hasRequestId();
    int getRequestId();
  }
  public static final class AvatarEndMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements AvatarEndMessageOrBuilder {
    // Use AvatarEndMessage.newBuilder() to construct.
    private AvatarEndMessage(Builder builder) {
      super(builder);
    }
    private AvatarEndMessage(boolean noInit) {}
    
    private static final AvatarEndMessage defaultInstance;
    public static AvatarEndMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public AvatarEndMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    private int bitField0_;
    // required uint32 requestId = 1;
    public static final int REQUESTID_FIELD_NUMBER = 1;
    private int requestId_;
    public boolean hasRequestId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getRequestId() {
      return requestId_;
    }
    
    private void initFields() {
      requestId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasRequestId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, requestId_);
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, requestId_);
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.AvatarEndMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarEndMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarEndMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarEndMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarEndMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarEndMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarEndMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarEndMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarEndMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AvatarEndMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.AvatarEndMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.AvatarEndMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.AvatarEndMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.AvatarEndMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        requestId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.AvatarEndMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.AvatarEndMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.AvatarEndMessage build() {
        de.pokerth.protocol.ProtoBuf.AvatarEndMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.AvatarEndMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.AvatarEndMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.AvatarEndMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.AvatarEndMessage result = new de.pokerth.protocol.ProtoBuf.AvatarEndMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.requestId_ = requestId_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasRequestId()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              requestId_ = input.readUInt32();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 requestId = 1;
      private int requestId_ ;
      public boolean hasRequestId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getRequestId() {
        return requestId_;
      }
      public Builder setRequestId(int value) {
        bitField0_ |= 0x00000001;
        requestId_ = value;
        
        return this;
      }
      public Builder clearRequestId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        requestId_ = 0;
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:AvatarEndMessage)
    }
    
    static {
      defaultInstance = new AvatarEndMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:AvatarEndMessage)
  }
  
  public interface UnknownAvatarMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 requestId = 1;
    boolean hasRequestId();
    int getRequestId();
  }
  public static final class UnknownAvatarMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements UnknownAvatarMessageOrBuilder {
    // Use UnknownAvatarMessage.newBuilder() to construct.
    private UnknownAvatarMessage(Builder builder) {
      super(builder);
    }
    private UnknownAvatarMessage(boolean noInit) {}
    
    private static final UnknownAvatarMessage defaultInstance;
    public static UnknownAvatarMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public UnknownAvatarMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    private int bitField0_;
    // required uint32 requestId = 1;
    public static final int REQUESTID_FIELD_NUMBER = 1;
    private int requestId_;
    public boolean hasRequestId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getRequestId() {
      return requestId_;
    }
    
    private void initFields() {
      requestId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasRequestId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, requestId_);
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, requestId_);
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.UnknownAvatarMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        requestId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage build() {
        de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage result = new de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.requestId_ = requestId_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasRequestId()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              requestId_ = input.readUInt32();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 requestId = 1;
      private int requestId_ ;
      public boolean hasRequestId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getRequestId() {
        return requestId_;
      }
      public Builder setRequestId(int value) {
        bitField0_ |= 0x00000001;
        requestId_ = value;
        
        return this;
      }
      public Builder clearRequestId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        requestId_ = 0;
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:UnknownAvatarMessage)
    }
    
    static {
      defaultInstance = new UnknownAvatarMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:UnknownAvatarMessage)
  }
  
  public interface PlayerListMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 playerId = 1;
    boolean hasPlayerId();
    int getPlayerId();
    
    // required .PlayerListMessage.PlayerListNotification playerListNotification = 2;
    boolean hasPlayerListNotification();
    de.pokerth.protocol.ProtoBuf.PlayerListMessage.PlayerListNotification getPlayerListNotification();
  }
  public static final class PlayerListMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements PlayerListMessageOrBuilder {
    // Use PlayerListMessage.newBuilder() to construct.
    private PlayerListMessage(Builder builder) {
      super(builder);
    }
    private PlayerListMessage(boolean noInit) {}
    
    private static final PlayerListMessage defaultInstance;
    public static PlayerListMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public PlayerListMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public enum PlayerListNotification
        implements com.google.protobuf.Internal.EnumLite {
      playerListNew(0, 0),
      playerListLeft(1, 1),
      ;
      
      public static final int playerListNew_VALUE = 0;
      public static final int playerListLeft_VALUE = 1;
      
      
      public final int getNumber() { return value; }
      
      public static PlayerListNotification valueOf(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 com.google.protobuf.Internal.EnumLiteMap<PlayerListNotification>
          internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<PlayerListNotification>() {
              public PlayerListNotification findValueByNumber(int number) {
                return PlayerListNotification.valueOf(number);
              }
            };
      
      private final int value;
      
      private PlayerListNotification(int index, int value) {
        this.value = value;
      }
      
      // @@protoc_insertion_point(enum_scope:PlayerListMessage.PlayerListNotification)
    }
    
    private int bitField0_;
    // required uint32 playerId = 1;
    public static final int PLAYERID_FIELD_NUMBER = 1;
    private int playerId_;
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getPlayerId() {
      return playerId_;
    }
    
    // required .PlayerListMessage.PlayerListNotification playerListNotification = 2;
    public static final int PLAYERLISTNOTIFICATION_FIELD_NUMBER = 2;
    private de.pokerth.protocol.ProtoBuf.PlayerListMessage.PlayerListNotification playerListNotification_;
    public boolean hasPlayerListNotification() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public de.pokerth.protocol.ProtoBuf.PlayerListMessage.PlayerListNotification getPlayerListNotification() {
      return playerListNotification_;
    }
    
    private void initFields() {
      playerId_ = 0;
      playerListNotification_ = de.pokerth.protocol.ProtoBuf.PlayerListMessage.PlayerListNotification.playerListNew;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerListNotification()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeEnum(2, playerListNotification_.getNumber());
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, playerListNotification_.getNumber());
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.PlayerListMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerListMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerListMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerListMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerListMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerListMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerListMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerListMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerListMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerListMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.PlayerListMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.PlayerListMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.PlayerListMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.PlayerListMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        playerListNotification_ = de.pokerth.protocol.ProtoBuf.PlayerListMessage.PlayerListNotification.playerListNew;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.PlayerListMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.PlayerListMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.PlayerListMessage build() {
        de.pokerth.protocol.ProtoBuf.PlayerListMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.PlayerListMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.PlayerListMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.PlayerListMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.PlayerListMessage result = new de.pokerth.protocol.ProtoBuf.PlayerListMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.playerListNotification_ = playerListNotification_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasPlayerId()) {
          
          return false;
        }
        if (!hasPlayerListNotification()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readUInt32();
              break;
            }
            case 16: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.PlayerListMessage.PlayerListNotification value = de.pokerth.protocol.ProtoBuf.PlayerListMessage.PlayerListNotification.valueOf(rawValue);
              if (value != null) {
                bitField0_ |= 0x00000002;
                playerListNotification_ = value;
              }
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 playerId = 1;
      private int playerId_ ;
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getPlayerId() {
        return playerId_;
      }
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        
        return this;
      }
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        
        return this;
      }
      
      // required .PlayerListMessage.PlayerListNotification playerListNotification = 2;
      private de.pokerth.protocol.ProtoBuf.PlayerListMessage.PlayerListNotification playerListNotification_ = de.pokerth.protocol.ProtoBuf.PlayerListMessage.PlayerListNotification.playerListNew;
      public boolean hasPlayerListNotification() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public de.pokerth.protocol.ProtoBuf.PlayerListMessage.PlayerListNotification getPlayerListNotification() {
        return playerListNotification_;
      }
      public Builder setPlayerListNotification(de.pokerth.protocol.ProtoBuf.PlayerListMessage.PlayerListNotification value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        playerListNotification_ = value;
        
        return this;
      }
      public Builder clearPlayerListNotification() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerListNotification_ = de.pokerth.protocol.ProtoBuf.PlayerListMessage.PlayerListNotification.playerListNew;
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:PlayerListMessage)
    }
    
    static {
      defaultInstance = new PlayerListMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:PlayerListMessage)
  }
  
  public interface GameListNewMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 gameId = 1;
    boolean hasGameId();
    int getGameId();
    
    // required .NetGameMode gameMode = 2;
    boolean hasGameMode();
    de.pokerth.protocol.ProtoBuf.NetGameMode getGameMode();
    
    // required bool isPrivate = 3;
    boolean hasIsPrivate();
    boolean getIsPrivate();
    
    // repeated uint32 playerIds = 4 [packed = true];
    java.util.List<java.lang.Integer> getPlayerIdsList();
    int getPlayerIdsCount();
    int getPlayerIds(int index);
    
    // required uint32 adminPlayerId = 5;
    boolean hasAdminPlayerId();
    int getAdminPlayerId();
    
    // required .NetGameInfo gameInfo = 6;
    boolean hasGameInfo();
    de.pokerth.protocol.ProtoBuf.NetGameInfo getGameInfo();
  }
  public static final class GameListNewMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements GameListNewMessageOrBuilder {
    // Use GameListNewMessage.newBuilder() to construct.
    private GameListNewMessage(Builder builder) {
      super(builder);
    }
    private GameListNewMessage(boolean noInit) {}
    
    private static final GameListNewMessage defaultInstance;
    public static GameListNewMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public GameListNewMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    private int bitField0_;
    // required uint32 gameId = 1;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getGameId() {
      return gameId_;
    }
    
    // required .NetGameMode gameMode = 2;
    public static final int GAMEMODE_FIELD_NUMBER = 2;
    private de.pokerth.protocol.ProtoBuf.NetGameMode gameMode_;
    public boolean hasGameMode() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public de.pokerth.protocol.ProtoBuf.NetGameMode getGameMode() {
      return gameMode_;
    }
    
    // required bool isPrivate = 3;
    public static final int ISPRIVATE_FIELD_NUMBER = 3;
    private boolean isPrivate_;
    public boolean hasIsPrivate() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    public boolean getIsPrivate() {
      return isPrivate_;
    }
    
    // repeated uint32 playerIds = 4 [packed = true];
    public static final int PLAYERIDS_FIELD_NUMBER = 4;
    private java.util.List<java.lang.Integer> playerIds_;
    public java.util.List<java.lang.Integer>
        getPlayerIdsList() {
      return playerIds_;
    }
    public int getPlayerIdsCount() {
      return playerIds_.size();
    }
    public int getPlayerIds(int index) {
      return playerIds_.get(index);
    }
    private int playerIdsMemoizedSerializedSize = -1;
    
    // required uint32 adminPlayerId = 5;
    public static final int ADMINPLAYERID_FIELD_NUMBER = 5;
    private int adminPlayerId_;
    public boolean hasAdminPlayerId() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    public int getAdminPlayerId() {
      return adminPlayerId_;
    }
    
    // required .NetGameInfo gameInfo = 6;
    public static final int GAMEINFO_FIELD_NUMBER = 6;
    private de.pokerth.protocol.ProtoBuf.NetGameInfo gameInfo_;
    public boolean hasGameInfo() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    public de.pokerth.protocol.ProtoBuf.NetGameInfo getGameInfo() {
      return gameInfo_;
    }
    
    private void initFields() {
      gameId_ = 0;
      gameMode_ = de.pokerth.protocol.ProtoBuf.NetGameMode.netGameCreated;
      isPrivate_ = false;
      playerIds_ = java.util.Collections.emptyList();;
      adminPlayerId_ = 0;
      gameInfo_ = de.pokerth.protocol.ProtoBuf.NetGameInfo.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      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;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeEnum(2, gameMode_.getNumber());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBool(3, isPrivate_);
      }
      if (getPlayerIdsList().size() > 0) {
        output.writeRawVarint32(34);
        output.writeRawVarint32(playerIdsMemoizedSerializedSize);
      }
      for (int i = 0; i < playerIds_.size(); i++) {
        output.writeUInt32NoTag(playerIds_.get(i));
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(5, adminPlayerId_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeMessage(6, gameInfo_);
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, gameMode_.getNumber());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        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_.get(i));
        }
        size += dataSize;
        if (!getPlayerIdsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        playerIdsMemoizedSerializedSize = dataSize;
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, adminPlayerId_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, gameInfo_);
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.GameListNewMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameListNewMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameListNewMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameListNewMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameListNewMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameListNewMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameListNewMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.GameListNewMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.GameListNewMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameListNewMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.GameListNewMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.GameListNewMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.GameListNewMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.GameListNewMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        gameMode_ = de.pokerth.protocol.ProtoBuf.NetGameMode.netGameCreated;
        bitField0_ = (bitField0_ & ~0x00000002);
        isPrivate_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        playerIds_ = java.util.Collections.emptyList();;
        bitField0_ = (bitField0_ & ~0x00000008);
        adminPlayerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        gameInfo_ = de.pokerth.protocol.ProtoBuf.NetGameInfo.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.GameListNewMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.GameListNewMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.GameListNewMessage build() {
        de.pokerth.protocol.ProtoBuf.GameListNewMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.GameListNewMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.GameListNewMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.GameListNewMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.GameListNewMessage result = new de.pokerth.protocol.ProtoBuf.GameListNewMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.gameMode_ = gameMode_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.isPrivate_ = isPrivate_;
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          playerIds_ = java.util.Collections.unmodifiableList(playerIds_);
          bitField0_ = (bitField0_ & ~0x00000008);
        }
        result.playerIds_ = playerIds_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000008;
        }
        result.adminPlayerId_ = adminPlayerId_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000010;
        }
        result.gameInfo_ = gameInfo_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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_);
          }
          
        }
        if (other.hasAdminPlayerId()) {
          setAdminPlayerId(other.getAdminPlayerId());
        }
        if (other.hasGameInfo()) {
          mergeGameInfo(other.getGameInfo());
        }
        return this;
      }
      
      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;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.NetGameMode value = de.pokerth.protocol.ProtoBuf.NetGameMode.valueOf(rawValue);
              if (value != null) {
                bitField0_ |= 0x00000002;
                gameMode_ = value;
              }
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              isPrivate_ = input.readBool();
              break;
            }
            case 32: {
              ensurePlayerIdsIsMutable();
              playerIds_.add(input.readUInt32());
              break;
            }
            case 34: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPlayerIds(input.readUInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              adminPlayerId_ = input.readUInt32();
              break;
            }
            case 50: {
              de.pokerth.protocol.ProtoBuf.NetGameInfo.Builder subBuilder = de.pokerth.protocol.ProtoBuf.NetGameInfo.newBuilder();
              if (hasGameInfo()) {
                subBuilder.mergeFrom(getGameInfo());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setGameInfo(subBuilder.buildPartial());
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 gameId = 1;
      private int gameId_ ;
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getGameId() {
        return gameId_;
      }
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }
      
      // required .NetGameMode gameMode = 2;
      private de.pokerth.protocol.ProtoBuf.NetGameMode gameMode_ = de.pokerth.protocol.ProtoBuf.NetGameMode.netGameCreated;
      public boolean hasGameMode() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public de.pokerth.protocol.ProtoBuf.NetGameMode getGameMode() {
        return gameMode_;
      }
      public Builder setGameMode(de.pokerth.protocol.ProtoBuf.NetGameMode value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        gameMode_ = value;
        
        return this;
      }
      public Builder clearGameMode() {
        bitField0_ = (bitField0_ & ~0x00000002);
        gameMode_ = de.pokerth.protocol.ProtoBuf.NetGameMode.netGameCreated;
        
        return this;
      }
      
      // required bool isPrivate = 3;
      private boolean isPrivate_ ;
      public boolean hasIsPrivate() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public boolean getIsPrivate() {
        return isPrivate_;
      }
      public Builder setIsPrivate(boolean value) {
        bitField0_ |= 0x00000004;
        isPrivate_ = value;
        
        return this;
      }
      public Builder clearIsPrivate() {
        bitField0_ = (bitField0_ & ~0x00000004);
        isPrivate_ = false;
        
        return this;
      }
      
      // repeated uint32 playerIds = 4 [packed = true];
      private java.util.List<java.lang.Integer> playerIds_ = java.util.Collections.emptyList();;
      private void ensurePlayerIdsIsMutable() {
        if (!((bitField0_ & 0x00000008) == 0x00000008)) {
          playerIds_ = new java.util.ArrayList<java.lang.Integer>(playerIds_);
          bitField0_ |= 0x00000008;
         }
      }
      public java.util.List<java.lang.Integer>
          getPlayerIdsList() {
        return java.util.Collections.unmodifiableList(playerIds_);
      }
      public int getPlayerIdsCount() {
        return playerIds_.size();
      }
      public int getPlayerIds(int index) {
        return playerIds_.get(index);
      }
      public Builder setPlayerIds(
          int index, int value) {
        ensurePlayerIdsIsMutable();
        playerIds_.set(index, value);
        
        return this;
      }
      public Builder addPlayerIds(int value) {
        ensurePlayerIdsIsMutable();
        playerIds_.add(value);
        
        return this;
      }
      public Builder addAllPlayerIds(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensurePlayerIdsIsMutable();
        super.addAll(values, playerIds_);
        
        return this;
      }
      public Builder clearPlayerIds() {
        playerIds_ = java.util.Collections.emptyList();;
        bitField0_ = (bitField0_ & ~0x00000008);
        
        return this;
      }
      
      // required uint32 adminPlayerId = 5;
      private int adminPlayerId_ ;
      public boolean hasAdminPlayerId() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      public int getAdminPlayerId() {
        return adminPlayerId_;
      }
      public Builder setAdminPlayerId(int value) {
        bitField0_ |= 0x00000010;
        adminPlayerId_ = value;
        
        return this;
      }
      public Builder clearAdminPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000010);
        adminPlayerId_ = 0;
        
        return this;
      }
      
      // required .NetGameInfo gameInfo = 6;
      private de.pokerth.protocol.ProtoBuf.NetGameInfo gameInfo_ = de.pokerth.protocol.ProtoBuf.NetGameInfo.getDefaultInstance();
      public boolean hasGameInfo() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      public de.pokerth.protocol.ProtoBuf.NetGameInfo getGameInfo() {
        return gameInfo_;
      }
      public Builder setGameInfo(de.pokerth.protocol.ProtoBuf.NetGameInfo value) {
        if (value == null) {
          throw new NullPointerException();
        }
        gameInfo_ = value;
        
        bitField0_ |= 0x00000020;
        return this;
      }
      public Builder setGameInfo(
          de.pokerth.protocol.ProtoBuf.NetGameInfo.Builder builderForValue) {
        gameInfo_ = builderForValue.build();
        
        bitField0_ |= 0x00000020;
        return this;
      }
      public Builder mergeGameInfo(de.pokerth.protocol.ProtoBuf.NetGameInfo value) {
        if (((bitField0_ & 0x00000020) == 0x00000020) &&
            gameInfo_ != de.pokerth.protocol.ProtoBuf.NetGameInfo.getDefaultInstance()) {
          gameInfo_ =
            de.pokerth.protocol.ProtoBuf.NetGameInfo.newBuilder(gameInfo_).mergeFrom(value).buildPartial();
        } else {
          gameInfo_ = value;
        }
        
        bitField0_ |= 0x00000020;
        return this;
      }
      public Builder clearGameInfo() {
        gameInfo_ = de.pokerth.protocol.ProtoBuf.NetGameInfo.getDefaultInstance();
        
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:GameListNewMessage)
    }
    
    static {
      defaultInstance = new GameListNewMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:GameListNewMessage)
  }
  
  public interface GameListUpdateMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 gameId = 1;
    boolean hasGameId();
    int getGameId();
    
    // required .NetGameMode gameMode = 2;
    boolean hasGameMode();
    de.pokerth.protocol.ProtoBuf.NetGameMode getGameMode();
  }
  public static final class GameListUpdateMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements GameListUpdateMessageOrBuilder {
    // Use GameListUpdateMessage.newBuilder() to construct.
    private GameListUpdateMessage(Builder builder) {
      super(builder);
    }
    private GameListUpdateMessage(boolean noInit) {}
    
    private static final GameListUpdateMessage defaultInstance;
    public static GameListUpdateMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public GameListUpdateMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    private int bitField0_;
    // required uint32 gameId = 1;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getGameId() {
      return gameId_;
    }
    
    // required .NetGameMode gameMode = 2;
    public static final int GAMEMODE_FIELD_NUMBER = 2;
    private de.pokerth.protocol.ProtoBuf.NetGameMode gameMode_;
    public boolean hasGameMode() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public de.pokerth.protocol.ProtoBuf.NetGameMode getGameMode() {
      return gameMode_;
    }
    
    private void initFields() {
      gameId_ = 0;
      gameMode_ = de.pokerth.protocol.ProtoBuf.NetGameMode.netGameCreated;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasGameMode()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeEnum(2, gameMode_.getNumber());
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, gameMode_.getNumber());
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.GameListUpdateMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameListUpdateMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameListUpdateMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameListUpdateMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameListUpdateMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameListUpdateMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameListUpdateMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.GameListUpdateMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.GameListUpdateMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameListUpdateMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.GameListUpdateMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.GameListUpdateMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.GameListUpdateMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.GameListUpdateMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        gameMode_ = de.pokerth.protocol.ProtoBuf.NetGameMode.netGameCreated;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.GameListUpdateMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.GameListUpdateMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.GameListUpdateMessage build() {
        de.pokerth.protocol.ProtoBuf.GameListUpdateMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.GameListUpdateMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.GameListUpdateMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.GameListUpdateMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.GameListUpdateMessage result = new de.pokerth.protocol.ProtoBuf.GameListUpdateMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.gameMode_ = gameMode_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasGameId()) {
          
          return false;
        }
        if (!hasGameMode()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.NetGameMode value = de.pokerth.protocol.ProtoBuf.NetGameMode.valueOf(rawValue);
              if (value != null) {
                bitField0_ |= 0x00000002;
                gameMode_ = value;
              }
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 gameId = 1;
      private int gameId_ ;
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getGameId() {
        return gameId_;
      }
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }
      
      // required .NetGameMode gameMode = 2;
      private de.pokerth.protocol.ProtoBuf.NetGameMode gameMode_ = de.pokerth.protocol.ProtoBuf.NetGameMode.netGameCreated;
      public boolean hasGameMode() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public de.pokerth.protocol.ProtoBuf.NetGameMode getGameMode() {
        return gameMode_;
      }
      public Builder setGameMode(de.pokerth.protocol.ProtoBuf.NetGameMode value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        gameMode_ = value;
        
        return this;
      }
      public Builder clearGameMode() {
        bitField0_ = (bitField0_ & ~0x00000002);
        gameMode_ = de.pokerth.protocol.ProtoBuf.NetGameMode.netGameCreated;
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:GameListUpdateMessage)
    }
    
    static {
      defaultInstance = new GameListUpdateMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:GameListUpdateMessage)
  }
  
  public interface GameListPlayerJoinedMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 gameId = 1;
    boolean hasGameId();
    int getGameId();
    
    // required uint32 playerId = 2;
    boolean hasPlayerId();
    int getPlayerId();
  }
  public static final class GameListPlayerJoinedMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements GameListPlayerJoinedMessageOrBuilder {
    // Use GameListPlayerJoinedMessage.newBuilder() to construct.
    private GameListPlayerJoinedMessage(Builder builder) {
      super(builder);
    }
    private GameListPlayerJoinedMessage(boolean noInit) {}
    
    private static final GameListPlayerJoinedMessage defaultInstance;
    public static GameListPlayerJoinedMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public GameListPlayerJoinedMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    private int bitField0_;
    // required uint32 gameId = 1;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getGameId() {
      return gameId_;
    }
    
    // required uint32 playerId = 2;
    public static final int PLAYERID_FIELD_NUMBER = 2;
    private int playerId_;
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public int getPlayerId() {
      return playerId_;
    }
    
    private void initFields() {
      gameId_ = 0;
      playerId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, playerId_);
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, playerId_);
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage build() {
        de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage result = new de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.playerId_ = playerId_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasGameId()) {
          
          return false;
        }
        if (!hasPlayerId()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              playerId_ = input.readUInt32();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 gameId = 1;
      private int gameId_ ;
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getGameId() {
        return gameId_;
      }
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }
      
      // required uint32 playerId = 2;
      private int playerId_ ;
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getPlayerId() {
        return playerId_;
      }
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000002;
        playerId_ = value;
        
        return this;
      }
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId_ = 0;
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:GameListPlayerJoinedMessage)
    }
    
    static {
      defaultInstance = new GameListPlayerJoinedMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:GameListPlayerJoinedMessage)
  }
  
  public interface GameListPlayerLeftMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 gameId = 1;
    boolean hasGameId();
    int getGameId();
    
    // required uint32 playerId = 2;
    boolean hasPlayerId();
    int getPlayerId();
  }
  public static final class GameListPlayerLeftMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements GameListPlayerLeftMessageOrBuilder {
    // Use GameListPlayerLeftMessage.newBuilder() to construct.
    private GameListPlayerLeftMessage(Builder builder) {
      super(builder);
    }
    private GameListPlayerLeftMessage(boolean noInit) {}
    
    private static final GameListPlayerLeftMessage defaultInstance;
    public static GameListPlayerLeftMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public GameListPlayerLeftMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    private int bitField0_;
    // required uint32 gameId = 1;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getGameId() {
      return gameId_;
    }
    
    // required uint32 playerId = 2;
    public static final int PLAYERID_FIELD_NUMBER = 2;
    private int playerId_;
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public int getPlayerId() {
      return playerId_;
    }
    
    private void initFields() {
      gameId_ = 0;
      playerId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, playerId_);
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, playerId_);
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage build() {
        de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage result = new de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.playerId_ = playerId_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasGameId()) {
          
          return false;
        }
        if (!hasPlayerId()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              playerId_ = input.readUInt32();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 gameId = 1;
      private int gameId_ ;
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getGameId() {
        return gameId_;
      }
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }
      
      // required uint32 playerId = 2;
      private int playerId_ ;
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getPlayerId() {
        return playerId_;
      }
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000002;
        playerId_ = value;
        
        return this;
      }
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId_ = 0;
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:GameListPlayerLeftMessage)
    }
    
    static {
      defaultInstance = new GameListPlayerLeftMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:GameListPlayerLeftMessage)
  }
  
  public interface GameListSpectatorJoinedMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 gameId = 1;
    boolean hasGameId();
    int getGameId();
    
    // required uint32 playerId = 2;
    boolean hasPlayerId();
    int getPlayerId();
  }
  public static final class GameListSpectatorJoinedMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements GameListSpectatorJoinedMessageOrBuilder {
    // Use GameListSpectatorJoinedMessage.newBuilder() to construct.
    private GameListSpectatorJoinedMessage(Builder builder) {
      super(builder);
    }
    private GameListSpectatorJoinedMessage(boolean noInit) {}
    
    private static final GameListSpectatorJoinedMessage defaultInstance;
    public static GameListSpectatorJoinedMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public GameListSpectatorJoinedMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    private int bitField0_;
    // required uint32 gameId = 1;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getGameId() {
      return gameId_;
    }
    
    // required uint32 playerId = 2;
    public static final int PLAYERID_FIELD_NUMBER = 2;
    private int playerId_;
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public int getPlayerId() {
      return playerId_;
    }
    
    private void initFields() {
      gameId_ = 0;
      playerId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, playerId_);
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, playerId_);
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage build() {
        de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage result = new de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.playerId_ = playerId_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasGameId()) {
          
          return false;
        }
        if (!hasPlayerId()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              playerId_ = input.readUInt32();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 gameId = 1;
      private int gameId_ ;
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getGameId() {
        return gameId_;
      }
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }
      
      // required uint32 playerId = 2;
      private int playerId_ ;
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getPlayerId() {
        return playerId_;
      }
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000002;
        playerId_ = value;
        
        return this;
      }
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId_ = 0;
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:GameListSpectatorJoinedMessage)
    }
    
    static {
      defaultInstance = new GameListSpectatorJoinedMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:GameListSpectatorJoinedMessage)
  }
  
  public interface GameListSpectatorLeftMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 gameId = 1;
    boolean hasGameId();
    int getGameId();
    
    // required uint32 playerId = 2;
    boolean hasPlayerId();
    int getPlayerId();
  }
  public static final class GameListSpectatorLeftMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements GameListSpectatorLeftMessageOrBuilder {
    // Use GameListSpectatorLeftMessage.newBuilder() to construct.
    private GameListSpectatorLeftMessage(Builder builder) {
      super(builder);
    }
    private GameListSpectatorLeftMessage(boolean noInit) {}
    
    private static final GameListSpectatorLeftMessage defaultInstance;
    public static GameListSpectatorLeftMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public GameListSpectatorLeftMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    private int bitField0_;
    // required uint32 gameId = 1;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getGameId() {
      return gameId_;
    }
    
    // required uint32 playerId = 2;
    public static final int PLAYERID_FIELD_NUMBER = 2;
    private int playerId_;
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public int getPlayerId() {
      return playerId_;
    }
    
    private void initFields() {
      gameId_ = 0;
      playerId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, playerId_);
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, playerId_);
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage build() {
        de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage result = new de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.playerId_ = playerId_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasGameId()) {
          
          return false;
        }
        if (!hasPlayerId()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              playerId_ = input.readUInt32();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 gameId = 1;
      private int gameId_ ;
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getGameId() {
        return gameId_;
      }
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }
      
      // required uint32 playerId = 2;
      private int playerId_ ;
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getPlayerId() {
        return playerId_;
      }
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000002;
        playerId_ = value;
        
        return this;
      }
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId_ = 0;
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:GameListSpectatorLeftMessage)
    }
    
    static {
      defaultInstance = new GameListSpectatorLeftMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:GameListSpectatorLeftMessage)
  }
  
  public interface GameListAdminChangedMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 gameId = 1;
    boolean hasGameId();
    int getGameId();
    
    // required uint32 newAdminPlayerId = 2;
    boolean hasNewAdminPlayerId();
    int getNewAdminPlayerId();
  }
  public static final class GameListAdminChangedMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements GameListAdminChangedMessageOrBuilder {
    // Use GameListAdminChangedMessage.newBuilder() to construct.
    private GameListAdminChangedMessage(Builder builder) {
      super(builder);
    }
    private GameListAdminChangedMessage(boolean noInit) {}
    
    private static final GameListAdminChangedMessage defaultInstance;
    public static GameListAdminChangedMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public GameListAdminChangedMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    private int bitField0_;
    // required uint32 gameId = 1;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getGameId() {
      return gameId_;
    }
    
    // required uint32 newAdminPlayerId = 2;
    public static final int NEWADMINPLAYERID_FIELD_NUMBER = 2;
    private int newAdminPlayerId_;
    public boolean hasNewAdminPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public int getNewAdminPlayerId() {
      return newAdminPlayerId_;
    }
    
    private void initFields() {
      gameId_ = 0;
      newAdminPlayerId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasNewAdminPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, newAdminPlayerId_);
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, newAdminPlayerId_);
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        newAdminPlayerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage build() {
        de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage result = new de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.newAdminPlayerId_ = newAdminPlayerId_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasGameId()) {
          
          return false;
        }
        if (!hasNewAdminPlayerId()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              newAdminPlayerId_ = input.readUInt32();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 gameId = 1;
      private int gameId_ ;
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getGameId() {
        return gameId_;
      }
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }
      
      // required uint32 newAdminPlayerId = 2;
      private int newAdminPlayerId_ ;
      public boolean hasNewAdminPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getNewAdminPlayerId() {
        return newAdminPlayerId_;
      }
      public Builder setNewAdminPlayerId(int value) {
        bitField0_ |= 0x00000002;
        newAdminPlayerId_ = value;
        
        return this;
      }
      public Builder clearNewAdminPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        newAdminPlayerId_ = 0;
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:GameListAdminChangedMessage)
    }
    
    static {
      defaultInstance = new GameListAdminChangedMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:GameListAdminChangedMessage)
  }
  
  public interface PlayerInfoRequestMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // repeated uint32 playerId = 1 [packed = true];
    java.util.List<java.lang.Integer> getPlayerIdList();
    int getPlayerIdCount();
    int getPlayerId(int index);
  }
  public static final class PlayerInfoRequestMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements PlayerInfoRequestMessageOrBuilder {
    // Use PlayerInfoRequestMessage.newBuilder() to construct.
    private PlayerInfoRequestMessage(Builder builder) {
      super(builder);
    }
    private PlayerInfoRequestMessage(boolean noInit) {}
    
    private static final PlayerInfoRequestMessage defaultInstance;
    public static PlayerInfoRequestMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public PlayerInfoRequestMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    // repeated uint32 playerId = 1 [packed = true];
    public static final int PLAYERID_FIELD_NUMBER = 1;
    private java.util.List<java.lang.Integer> playerId_;
    public java.util.List<java.lang.Integer>
        getPlayerIdList() {
      return playerId_;
    }
    public int getPlayerIdCount() {
      return playerId_.size();
    }
    public int getPlayerId(int index) {
      return playerId_.get(index);
    }
    private int playerIdMemoizedSerializedSize = -1;
    
    private void initFields() {
      playerId_ = java.util.Collections.emptyList();;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (getPlayerIdList().size() > 0) {
        output.writeRawVarint32(10);
        output.writeRawVarint32(playerIdMemoizedSerializedSize);
      }
      for (int i = 0; i < playerId_.size(); i++) {
        output.writeUInt32NoTag(playerId_.get(i));
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      {
        int dataSize = 0;
        for (int i = 0; i < playerId_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeUInt32SizeNoTag(playerId_.get(i));
        }
        size += dataSize;
        if (!getPlayerIdList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        playerIdMemoizedSerializedSize = dataSize;
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        playerId_ = java.util.Collections.emptyList();;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage build() {
        de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage result = new de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage(this);
        int from_bitField0_ = bitField0_;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          playerId_ = java.util.Collections.unmodifiableList(playerId_);
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.playerId_ = playerId_;
        return result;
      }
      
      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_);
          }
          
        }
        return this;
      }
      
      public final boolean isInitialized() {
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              ensurePlayerIdIsMutable();
              playerId_.add(input.readUInt32());
              break;
            }
            case 10: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPlayerId(input.readUInt32());
              }
              input.popLimit(limit);
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // repeated uint32 playerId = 1 [packed = true];
      private java.util.List<java.lang.Integer> playerId_ = java.util.Collections.emptyList();;
      private void ensurePlayerIdIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          playerId_ = new java.util.ArrayList<java.lang.Integer>(playerId_);
          bitField0_ |= 0x00000001;
         }
      }
      public java.util.List<java.lang.Integer>
          getPlayerIdList() {
        return java.util.Collections.unmodifiableList(playerId_);
      }
      public int getPlayerIdCount() {
        return playerId_.size();
      }
      public int getPlayerId(int index) {
        return playerId_.get(index);
      }
      public Builder setPlayerId(
          int index, int value) {
        ensurePlayerIdIsMutable();
        playerId_.set(index, value);
        
        return this;
      }
      public Builder addPlayerId(int value) {
        ensurePlayerIdIsMutable();
        playerId_.add(value);
        
        return this;
      }
      public Builder addAllPlayerId(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensurePlayerIdIsMutable();
        super.addAll(values, playerId_);
        
        return this;
      }
      public Builder clearPlayerId() {
        playerId_ = java.util.Collections.emptyList();;
        bitField0_ = (bitField0_ & ~0x00000001);
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:PlayerInfoRequestMessage)
    }
    
    static {
      defaultInstance = new PlayerInfoRequestMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:PlayerInfoRequestMessage)
  }
  
  public interface PlayerInfoReplyMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 playerId = 1;
    boolean hasPlayerId();
    int getPlayerId();
    
    // optional .PlayerInfoReplyMessage.PlayerInfoData playerInfoData = 2;
    boolean hasPlayerInfoData();
    de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData getPlayerInfoData();
  }
  public static final class PlayerInfoReplyMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements PlayerInfoReplyMessageOrBuilder {
    // Use PlayerInfoReplyMessage.newBuilder() to construct.
    private PlayerInfoReplyMessage(Builder builder) {
      super(builder);
    }
    private PlayerInfoReplyMessage(boolean noInit) {}
    
    private static final PlayerInfoReplyMessage defaultInstance;
    public static PlayerInfoReplyMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public PlayerInfoReplyMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public interface PlayerInfoDataOrBuilder
        extends com.google.protobuf.MessageLiteOrBuilder {
      
      // required string playerName = 1;
      boolean hasPlayerName();
      String getPlayerName();
      
      // required bool isHuman = 2;
      boolean hasIsHuman();
      boolean getIsHuman();
      
      // required .NetPlayerInfoRights playerRights = 3;
      boolean hasPlayerRights();
      de.pokerth.protocol.ProtoBuf.NetPlayerInfoRights getPlayerRights();
      
      // optional string countryCode = 4;
      boolean hasCountryCode();
      String getCountryCode();
      
      // optional .PlayerInfoReplyMessage.PlayerInfoData.AvatarData avatarData = 5;
      boolean hasAvatarData();
      de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData getAvatarData();
    }
    public static final class PlayerInfoData extends
        com.google.protobuf.GeneratedMessageLite
        implements PlayerInfoDataOrBuilder {
      // Use PlayerInfoData.newBuilder() to construct.
      private PlayerInfoData(Builder builder) {
        super(builder);
      }
      private PlayerInfoData(boolean noInit) {}
      
      private static final PlayerInfoData defaultInstance;
      public static PlayerInfoData getDefaultInstance() {
        return defaultInstance;
      }
      
      public PlayerInfoData getDefaultInstanceForType() {
        return defaultInstance;
      }
      
      public interface AvatarDataOrBuilder
          extends com.google.protobuf.MessageLiteOrBuilder {
        
        // required .NetAvatarType avatarType = 1;
        boolean hasAvatarType();
        de.pokerth.protocol.ProtoBuf.NetAvatarType getAvatarType();
        
        // required bytes avatarHash = 2;
        boolean hasAvatarHash();
        com.google.protobuf.ByteString getAvatarHash();
      }
      public static final class AvatarData extends
          com.google.protobuf.GeneratedMessageLite
          implements AvatarDataOrBuilder {
        // Use AvatarData.newBuilder() to construct.
        private AvatarData(Builder builder) {
          super(builder);
        }
        private AvatarData(boolean noInit) {}
        
        private static final AvatarData defaultInstance;
        public static AvatarData getDefaultInstance() {
          return defaultInstance;
        }
        
        public AvatarData getDefaultInstanceForType() {
          return defaultInstance;
        }
        
        private int bitField0_;
        // required .NetAvatarType avatarType = 1;
        public static final int AVATARTYPE_FIELD_NUMBER = 1;
        private de.pokerth.protocol.ProtoBuf.NetAvatarType avatarType_;
        public boolean hasAvatarType() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        public de.pokerth.protocol.ProtoBuf.NetAvatarType getAvatarType() {
          return avatarType_;
        }
        
        // required bytes avatarHash = 2;
        public static final int AVATARHASH_FIELD_NUMBER = 2;
        private com.google.protobuf.ByteString avatarHash_;
        public boolean hasAvatarHash() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        public com.google.protobuf.ByteString getAvatarHash() {
          return avatarHash_;
        }
        
        private void initFields() {
          avatarType_ = de.pokerth.protocol.ProtoBuf.NetAvatarType.netAvatarImagePng;
          avatarHash_ = com.google.protobuf.ByteString.EMPTY;
        }
        private byte memoizedIsInitialized = -1;
        public final boolean isInitialized() {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized != -1) return isInitialized == 1;
          
          if (!hasAvatarType()) {
            memoizedIsInitialized = 0;
            return false;
          }
          if (!hasAvatarHash()) {
            memoizedIsInitialized = 0;
            return false;
          }
          memoizedIsInitialized = 1;
          return true;
        }
        
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                            throws java.io.IOException {
          getSerializedSize();
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            output.writeEnum(1, avatarType_.getNumber());
          }
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            output.writeBytes(2, avatarHash_);
          }
        }
        
        private int memoizedSerializedSize = -1;
        public int getSerializedSize() {
          int size = memoizedSerializedSize;
          if (size != -1) return size;
        
          size = 0;
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            size += com.google.protobuf.CodedOutputStream
              .computeEnumSize(1, avatarType_.getNumber());
          }
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            size += com.google.protobuf.CodedOutputStream
              .computeBytesSize(2, avatarHash_);
          }
          memoizedSerializedSize = size;
          return size;
        }
        
        private static final long serialVersionUID = 0L;
        @java.lang.Override
        protected java.lang.Object writeReplace()
            throws java.io.ObjectStreamException {
          return super.writeReplace();
        }
        
        public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data).buildParsed();
        }
        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 newBuilder().mergeFrom(data, extensionRegistry)
                   .buildParsed();
        }
        public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data).buildParsed();
        }
        public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data, extensionRegistry)
                   .buildParsed();
        }
        public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return newBuilder().mergeFrom(input).buildParsed();
        }
        public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return newBuilder().mergeFrom(input, extensionRegistry)
                   .buildParsed();
        }
        public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          Builder builder = newBuilder();
          if (builder.mergeDelimitedFrom(input)) {
            return builder.buildParsed();
          } else {
            return null;
          }
        }
        public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          Builder builder = newBuilder();
          if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
            return builder.buildParsed();
          } else {
            return null;
          }
        }
        public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return newBuilder().mergeFrom(input).buildParsed();
        }
        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 newBuilder().mergeFrom(input, extensionRegistry)
                   .buildParsed();
        }
        
        public static Builder newBuilder() { return Builder.create(); }
        public Builder newBuilderForType() { return newBuilder(); }
        public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData prototype) {
          return newBuilder().mergeFrom(prototype);
        }
        public Builder toBuilder() { return newBuilder(this); }
        
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageLite.Builder<
              de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData, Builder>
            implements de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarDataOrBuilder {
          // Construct using de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData.newBuilder()
          private Builder() {
            maybeForceBuilderInitialization();
          }
          
          private void maybeForceBuilderInitialization() {
          }
          private static Builder create() {
            return new Builder();
          }
          
          public Builder clear() {
            super.clear();
            avatarType_ = de.pokerth.protocol.ProtoBuf.NetAvatarType.netAvatarImagePng;
            bitField0_ = (bitField0_ & ~0x00000001);
            avatarHash_ = com.google.protobuf.ByteString.EMPTY;
            bitField0_ = (bitField0_ & ~0x00000002);
            return this;
          }
          
          public Builder clone() {
            return create().mergeFrom(buildPartial());
          }
          
          public de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData getDefaultInstanceForType() {
            return de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData.getDefaultInstance();
          }
          
          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;
          }
          
          private de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData buildParsed()
              throws com.google.protobuf.InvalidProtocolBufferException {
            de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(
                result).asInvalidProtocolBufferException();
            }
            return result;
          }
          
          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);
            int from_bitField0_ = bitField0_;
            int to_bitField0_ = 0;
            if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
              to_bitField0_ |= 0x00000001;
            }
            result.avatarType_ = avatarType_;
            if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
              to_bitField0_ |= 0x00000002;
            }
            result.avatarHash_ = avatarHash_;
            result.bitField0_ = to_bitField0_;
            return result;
          }
          
          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());
            }
            return this;
          }
          
          public final boolean isInitialized() {
            if (!hasAvatarType()) {
              
              return false;
            }
            if (!hasAvatarHash()) {
              
              return false;
            }
            return true;
          }
          
          public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
            while (true) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  
                  return this;
                default: {
                  if (!parseUnknownField(input, extensionRegistry, tag)) {
                    
                    return this;
                  }
                  break;
                }
                case 8: {
                  int rawValue = input.readEnum();
                  de.pokerth.protocol.ProtoBuf.NetAvatarType value = de.pokerth.protocol.ProtoBuf.NetAvatarType.valueOf(rawValue);
                  if (value != null) {
                    bitField0_ |= 0x00000001;
                    avatarType_ = value;
                  }
                  break;
                }
                case 18: {
                  bitField0_ |= 0x00000002;
                  avatarHash_ = input.readBytes();
                  break;
                }
              }
            }
          }
          
          private int bitField0_;
          
          // required .NetAvatarType avatarType = 1;
          private de.pokerth.protocol.ProtoBuf.NetAvatarType avatarType_ = de.pokerth.protocol.ProtoBuf.NetAvatarType.netAvatarImagePng;
          public boolean hasAvatarType() {
            return ((bitField0_ & 0x00000001) == 0x00000001);
          }
          public de.pokerth.protocol.ProtoBuf.NetAvatarType getAvatarType() {
            return avatarType_;
          }
          public Builder setAvatarType(de.pokerth.protocol.ProtoBuf.NetAvatarType value) {
            if (value == null) {
              throw new NullPointerException();
            }
            bitField0_ |= 0x00000001;
            avatarType_ = value;
            
            return this;
          }
          public Builder clearAvatarType() {
            bitField0_ = (bitField0_ & ~0x00000001);
            avatarType_ = de.pokerth.protocol.ProtoBuf.NetAvatarType.netAvatarImagePng;
            
            return this;
          }
          
          // required bytes avatarHash = 2;
          private com.google.protobuf.ByteString avatarHash_ = com.google.protobuf.ByteString.EMPTY;
          public boolean hasAvatarHash() {
            return ((bitField0_ & 0x00000002) == 0x00000002);
          }
          public com.google.protobuf.ByteString getAvatarHash() {
            return avatarHash_;
          }
          public Builder setAvatarHash(com.google.protobuf.ByteString value) {
            if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
            avatarHash_ = value;
            
            return this;
          }
          public Builder clearAvatarHash() {
            bitField0_ = (bitField0_ & ~0x00000002);
            avatarHash_ = getDefaultInstance().getAvatarHash();
            
            return this;
          }
          
          // @@protoc_insertion_point(builder_scope:PlayerInfoReplyMessage.PlayerInfoData.AvatarData)
        }
        
        static {
          defaultInstance = new AvatarData(true);
          defaultInstance.initFields();
        }
        
        // @@protoc_insertion_point(class_scope:PlayerInfoReplyMessage.PlayerInfoData.AvatarData)
      }
      
      private int bitField0_;
      // required string playerName = 1;
      public static final int PLAYERNAME_FIELD_NUMBER = 1;
      private java.lang.Object playerName_;
      public boolean hasPlayerName() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public String getPlayerName() {
        java.lang.Object ref = playerName_;
        if (ref instanceof String) {
          return (String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          if (com.google.protobuf.Internal.isValidUtf8(bs)) {
            playerName_ = s;
          }
          return s;
        }
      }
      private com.google.protobuf.ByteString getPlayerNameBytes() {
        java.lang.Object ref = playerName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8((String) ref);
          playerName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      
      // required bool isHuman = 2;
      public static final int ISHUMAN_FIELD_NUMBER = 2;
      private boolean isHuman_;
      public boolean hasIsHuman() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public boolean getIsHuman() {
        return isHuman_;
      }
      
      // required .NetPlayerInfoRights playerRights = 3;
      public static final int PLAYERRIGHTS_FIELD_NUMBER = 3;
      private de.pokerth.protocol.ProtoBuf.NetPlayerInfoRights playerRights_;
      public boolean hasPlayerRights() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public de.pokerth.protocol.ProtoBuf.NetPlayerInfoRights getPlayerRights() {
        return playerRights_;
      }
      
      // optional string countryCode = 4;
      public static final int COUNTRYCODE_FIELD_NUMBER = 4;
      private java.lang.Object countryCode_;
      public boolean hasCountryCode() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      public String getCountryCode() {
        java.lang.Object ref = countryCode_;
        if (ref instanceof String) {
          return (String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          if (com.google.protobuf.Internal.isValidUtf8(bs)) {
            countryCode_ = s;
          }
          return s;
        }
      }
      private com.google.protobuf.ByteString getCountryCodeBytes() {
        java.lang.Object ref = countryCode_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8((String) ref);
          countryCode_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      
      // optional .PlayerInfoReplyMessage.PlayerInfoData.AvatarData avatarData = 5;
      public static final int AVATARDATA_FIELD_NUMBER = 5;
      private de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData avatarData_;
      public boolean hasAvatarData() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      public de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData getAvatarData() {
        return avatarData_;
      }
      
      private void initFields() {
        playerName_ = "";
        isHuman_ = false;
        playerRights_ = de.pokerth.protocol.ProtoBuf.NetPlayerInfoRights.netPlayerRightsGuest;
        countryCode_ = "";
        avatarData_ = de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData.getDefaultInstance();
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized != -1) return isInitialized == 1;
        
        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;
      }
      
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeBytes(1, getPlayerNameBytes());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeBool(2, isHuman_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeEnum(3, playerRights_.getNumber());
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          output.writeBytes(4, getCountryCodeBytes());
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          output.writeMessage(5, avatarData_);
        }
      }
      
      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
      
        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(1, getPlayerNameBytes());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(2, isHuman_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeEnumSize(3, playerRights_.getNumber());
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(4, getCountryCodeBytes());
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(5, avatarData_);
        }
        memoizedSerializedSize = size;
        return size;
      }
      
      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }
      
      public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      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 newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      
      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }
      
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData, Builder>
          implements de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoDataOrBuilder {
        // Construct using de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }
        
        private void maybeForceBuilderInitialization() {
        }
        private static Builder create() {
          return new Builder();
        }
        
        public Builder clear() {
          super.clear();
          playerName_ = "";
          bitField0_ = (bitField0_ & ~0x00000001);
          isHuman_ = false;
          bitField0_ = (bitField0_ & ~0x00000002);
          playerRights_ = de.pokerth.protocol.ProtoBuf.NetPlayerInfoRights.netPlayerRightsGuest;
          bitField0_ = (bitField0_ & ~0x00000004);
          countryCode_ = "";
          bitField0_ = (bitField0_ & ~0x00000008);
          avatarData_ = de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData.getDefaultInstance();
          bitField0_ = (bitField0_ & ~0x00000010);
          return this;
        }
        
        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }
        
        public de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData getDefaultInstanceForType() {
          return de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.getDefaultInstance();
        }
        
        public de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData build() {
          de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
        
        private de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData buildParsed()
            throws com.google.protobuf.InvalidProtocolBufferException {
          de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(
              result).asInvalidProtocolBufferException();
          }
          return result;
        }
        
        public de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData buildPartial() {
          de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData result = new de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.playerName_ = playerName_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.isHuman_ = isHuman_;
          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
            to_bitField0_ |= 0x00000004;
          }
          result.playerRights_ = playerRights_;
          if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
            to_bitField0_ |= 0x00000008;
          }
          result.countryCode_ = countryCode_;
          if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
            to_bitField0_ |= 0x00000010;
          }
          result.avatarData_ = avatarData_;
          result.bitField0_ = to_bitField0_;
          return result;
        }
        
        public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData other) {
          if (other == de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.getDefaultInstance()) return this;
          if (other.hasPlayerName()) {
            setPlayerName(other.getPlayerName());
          }
          if (other.hasIsHuman()) {
            setIsHuman(other.getIsHuman());
          }
          if (other.hasPlayerRights()) {
            setPlayerRights(other.getPlayerRights());
          }
          if (other.hasCountryCode()) {
            setCountryCode(other.getCountryCode());
          }
          if (other.hasAvatarData()) {
            mergeAvatarData(other.getAvatarData());
          }
          return this;
        }
        
        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;
        }
        
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          while (true) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                
                return this;
              default: {
                if (!parseUnknownField(input, extensionRegistry, tag)) {
                  
                  return this;
                }
                break;
              }
              case 10: {
                bitField0_ |= 0x00000001;
                playerName_ = input.readBytes();
                break;
              }
              case 16: {
                bitField0_ |= 0x00000002;
                isHuman_ = input.readBool();
                break;
              }
              case 24: {
                int rawValue = input.readEnum();
                de.pokerth.protocol.ProtoBuf.NetPlayerInfoRights value = de.pokerth.protocol.ProtoBuf.NetPlayerInfoRights.valueOf(rawValue);
                if (value != null) {
                  bitField0_ |= 0x00000004;
                  playerRights_ = value;
                }
                break;
              }
              case 34: {
                bitField0_ |= 0x00000008;
                countryCode_ = input.readBytes();
                break;
              }
              case 42: {
                de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData.Builder subBuilder = de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData.newBuilder();
                if (hasAvatarData()) {
                  subBuilder.mergeFrom(getAvatarData());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setAvatarData(subBuilder.buildPartial());
                break;
              }
            }
          }
        }
        
        private int bitField0_;
        
        // required string playerName = 1;
        private java.lang.Object playerName_ = "";
        public boolean hasPlayerName() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        public String getPlayerName() {
          java.lang.Object ref = playerName_;
          if (!(ref instanceof String)) {
            String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
            playerName_ = s;
            return s;
          } else {
            return (String) ref;
          }
        }
        public Builder setPlayerName(String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
          playerName_ = value;
          
          return this;
        }
        public Builder clearPlayerName() {
          bitField0_ = (bitField0_ & ~0x00000001);
          playerName_ = getDefaultInstance().getPlayerName();
          
          return this;
        }
        void setPlayerName(com.google.protobuf.ByteString value) {
          bitField0_ |= 0x00000001;
          playerName_ = value;
          
        }
        
        // required bool isHuman = 2;
        private boolean isHuman_ ;
        public boolean hasIsHuman() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        public boolean getIsHuman() {
          return isHuman_;
        }
        public Builder setIsHuman(boolean value) {
          bitField0_ |= 0x00000002;
          isHuman_ = value;
          
          return this;
        }
        public Builder clearIsHuman() {
          bitField0_ = (bitField0_ & ~0x00000002);
          isHuman_ = false;
          
          return this;
        }
        
        // required .NetPlayerInfoRights playerRights = 3;
        private de.pokerth.protocol.ProtoBuf.NetPlayerInfoRights playerRights_ = de.pokerth.protocol.ProtoBuf.NetPlayerInfoRights.netPlayerRightsGuest;
        public boolean hasPlayerRights() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        public de.pokerth.protocol.ProtoBuf.NetPlayerInfoRights getPlayerRights() {
          return playerRights_;
        }
        public Builder setPlayerRights(de.pokerth.protocol.ProtoBuf.NetPlayerInfoRights value) {
          if (value == null) {
            throw new NullPointerException();
          }
          bitField0_ |= 0x00000004;
          playerRights_ = value;
          
          return this;
        }
        public Builder clearPlayerRights() {
          bitField0_ = (bitField0_ & ~0x00000004);
          playerRights_ = de.pokerth.protocol.ProtoBuf.NetPlayerInfoRights.netPlayerRightsGuest;
          
          return this;
        }
        
        // optional string countryCode = 4;
        private java.lang.Object countryCode_ = "";
        public boolean hasCountryCode() {
          return ((bitField0_ & 0x00000008) == 0x00000008);
        }
        public String getCountryCode() {
          java.lang.Object ref = countryCode_;
          if (!(ref instanceof String)) {
            String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
            countryCode_ = s;
            return s;
          } else {
            return (String) ref;
          }
        }
        public Builder setCountryCode(String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
          countryCode_ = value;
          
          return this;
        }
        public Builder clearCountryCode() {
          bitField0_ = (bitField0_ & ~0x00000008);
          countryCode_ = getDefaultInstance().getCountryCode();
          
          return this;
        }
        void setCountryCode(com.google.protobuf.ByteString value) {
          bitField0_ |= 0x00000008;
          countryCode_ = value;
          
        }
        
        // optional .PlayerInfoReplyMessage.PlayerInfoData.AvatarData avatarData = 5;
        private de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData avatarData_ = de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData.getDefaultInstance();
        public boolean hasAvatarData() {
          return ((bitField0_ & 0x00000010) == 0x00000010);
        }
        public de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData getAvatarData() {
          return avatarData_;
        }
        public Builder setAvatarData(de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData value) {
          if (value == null) {
            throw new NullPointerException();
          }
          avatarData_ = value;
          
          bitField0_ |= 0x00000010;
          return this;
        }
        public Builder setAvatarData(
            de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData.Builder builderForValue) {
          avatarData_ = builderForValue.build();
          
          bitField0_ |= 0x00000010;
          return this;
        }
        public Builder mergeAvatarData(de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData value) {
          if (((bitField0_ & 0x00000010) == 0x00000010) &&
              avatarData_ != de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData.getDefaultInstance()) {
            avatarData_ =
              de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData.newBuilder(avatarData_).mergeFrom(value).buildPartial();
          } else {
            avatarData_ = value;
          }
          
          bitField0_ |= 0x00000010;
          return this;
        }
        public Builder clearAvatarData() {
          avatarData_ = de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.AvatarData.getDefaultInstance();
          
          bitField0_ = (bitField0_ & ~0x00000010);
          return this;
        }
        
        // @@protoc_insertion_point(builder_scope:PlayerInfoReplyMessage.PlayerInfoData)
      }
      
      static {
        defaultInstance = new PlayerInfoData(true);
        defaultInstance.initFields();
      }
      
      // @@protoc_insertion_point(class_scope:PlayerInfoReplyMessage.PlayerInfoData)
    }
    
    private int bitField0_;
    // required uint32 playerId = 1;
    public static final int PLAYERID_FIELD_NUMBER = 1;
    private int playerId_;
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getPlayerId() {
      return playerId_;
    }
    
    // optional .PlayerInfoReplyMessage.PlayerInfoData playerInfoData = 2;
    public static final int PLAYERINFODATA_FIELD_NUMBER = 2;
    private de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData playerInfoData_;
    public boolean hasPlayerInfoData() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData getPlayerInfoData() {
      return playerInfoData_;
    }
    
    private void initFields() {
      playerId_ = 0;
      playerInfoData_ = de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (hasPlayerInfoData()) {
        if (!getPlayerInfoData().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, playerInfoData_);
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, playerInfoData_);
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        playerInfoData_ = de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage build() {
        de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage result = new de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.playerInfoData_ = playerInfoData_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasPlayerId()) {
          
          return false;
        }
        if (hasPlayerInfoData()) {
          if (!getPlayerInfoData().isInitialized()) {
            
            return false;
          }
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readUInt32();
              break;
            }
            case 18: {
              de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.Builder subBuilder = de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.newBuilder();
              if (hasPlayerInfoData()) {
                subBuilder.mergeFrom(getPlayerInfoData());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setPlayerInfoData(subBuilder.buildPartial());
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 playerId = 1;
      private int playerId_ ;
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getPlayerId() {
        return playerId_;
      }
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        
        return this;
      }
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        
        return this;
      }
      
      // optional .PlayerInfoReplyMessage.PlayerInfoData playerInfoData = 2;
      private de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData playerInfoData_ = de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.getDefaultInstance();
      public boolean hasPlayerInfoData() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData getPlayerInfoData() {
        return playerInfoData_;
      }
      public Builder setPlayerInfoData(de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData value) {
        if (value == null) {
          throw new NullPointerException();
        }
        playerInfoData_ = value;
        
        bitField0_ |= 0x00000002;
        return this;
      }
      public Builder setPlayerInfoData(
          de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.Builder builderForValue) {
        playerInfoData_ = builderForValue.build();
        
        bitField0_ |= 0x00000002;
        return this;
      }
      public Builder mergePlayerInfoData(de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData value) {
        if (((bitField0_ & 0x00000002) == 0x00000002) &&
            playerInfoData_ != de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.getDefaultInstance()) {
          playerInfoData_ =
            de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.newBuilder(playerInfoData_).mergeFrom(value).buildPartial();
        } else {
          playerInfoData_ = value;
        }
        
        bitField0_ |= 0x00000002;
        return this;
      }
      public Builder clearPlayerInfoData() {
        playerInfoData_ = de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.PlayerInfoData.getDefaultInstance();
        
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:PlayerInfoReplyMessage)
    }
    
    static {
      defaultInstance = new PlayerInfoReplyMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:PlayerInfoReplyMessage)
  }
  
  public interface SubscriptionRequestMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required .SubscriptionRequestMessage.SubscriptionAction subscriptionAction = 1;
    boolean hasSubscriptionAction();
    de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.SubscriptionAction getSubscriptionAction();
  }
  public static final class SubscriptionRequestMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements SubscriptionRequestMessageOrBuilder {
    // Use SubscriptionRequestMessage.newBuilder() to construct.
    private SubscriptionRequestMessage(Builder builder) {
      super(builder);
    }
    private SubscriptionRequestMessage(boolean noInit) {}
    
    private static final SubscriptionRequestMessage defaultInstance;
    public static SubscriptionRequestMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public SubscriptionRequestMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public enum SubscriptionAction
        implements com.google.protobuf.Internal.EnumLite {
      unsubscribeGameList(0, 1),
      resubscribeGameList(1, 2),
      ;
      
      public static final int unsubscribeGameList_VALUE = 1;
      public static final int resubscribeGameList_VALUE = 2;
      
      
      public final int getNumber() { return value; }
      
      public static SubscriptionAction valueOf(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 com.google.protobuf.Internal.EnumLiteMap<SubscriptionAction>
          internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<SubscriptionAction>() {
              public SubscriptionAction findValueByNumber(int number) {
                return SubscriptionAction.valueOf(number);
              }
            };
      
      private final int value;
      
      private SubscriptionAction(int index, int value) {
        this.value = value;
      }
      
      // @@protoc_insertion_point(enum_scope:SubscriptionRequestMessage.SubscriptionAction)
    }
    
    private int bitField0_;
    // required .SubscriptionRequestMessage.SubscriptionAction subscriptionAction = 1;
    public static final int SUBSCRIPTIONACTION_FIELD_NUMBER = 1;
    private de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.SubscriptionAction subscriptionAction_;
    public boolean hasSubscriptionAction() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.SubscriptionAction getSubscriptionAction() {
      return subscriptionAction_;
    }
    
    private void initFields() {
      subscriptionAction_ = de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.SubscriptionAction.unsubscribeGameList;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasSubscriptionAction()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeEnum(1, subscriptionAction_.getNumber());
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, subscriptionAction_.getNumber());
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        subscriptionAction_ = de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.SubscriptionAction.unsubscribeGameList;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage build() {
        de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage result = new de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.subscriptionAction_ = subscriptionAction_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasSubscriptionAction()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.SubscriptionAction value = de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.SubscriptionAction.valueOf(rawValue);
              if (value != null) {
                bitField0_ |= 0x00000001;
                subscriptionAction_ = value;
              }
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required .SubscriptionRequestMessage.SubscriptionAction subscriptionAction = 1;
      private de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.SubscriptionAction subscriptionAction_ = de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.SubscriptionAction.unsubscribeGameList;
      public boolean hasSubscriptionAction() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.SubscriptionAction getSubscriptionAction() {
        return subscriptionAction_;
      }
      public Builder setSubscriptionAction(de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.SubscriptionAction value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        subscriptionAction_ = value;
        
        return this;
      }
      public Builder clearSubscriptionAction() {
        bitField0_ = (bitField0_ & ~0x00000001);
        subscriptionAction_ = de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.SubscriptionAction.unsubscribeGameList;
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:SubscriptionRequestMessage)
    }
    
    static {
      defaultInstance = new SubscriptionRequestMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:SubscriptionRequestMessage)
  }
  
  public interface JoinExistingGameMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 gameId = 1;
    boolean hasGameId();
    int getGameId();
    
    // optional string password = 2;
    boolean hasPassword();
    String getPassword();
    
    // optional bool autoLeave = 3;
    boolean hasAutoLeave();
    boolean getAutoLeave();
    
    // optional bool spectateOnly = 4;
    boolean hasSpectateOnly();
    boolean getSpectateOnly();
  }
  public static final class JoinExistingGameMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements JoinExistingGameMessageOrBuilder {
    // Use JoinExistingGameMessage.newBuilder() to construct.
    private JoinExistingGameMessage(Builder builder) {
      super(builder);
    }
    private JoinExistingGameMessage(boolean noInit) {}
    
    private static final JoinExistingGameMessage defaultInstance;
    public static JoinExistingGameMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public JoinExistingGameMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    private int bitField0_;
    // required uint32 gameId = 1;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getGameId() {
      return gameId_;
    }
    
    // optional string password = 2;
    public static final int PASSWORD_FIELD_NUMBER = 2;
    private java.lang.Object password_;
    public boolean hasPassword() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public String getPassword() {
      java.lang.Object ref = password_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
          password_ = s;
        }
        return s;
      }
    }
    private com.google.protobuf.ByteString getPasswordBytes() {
      java.lang.Object ref = password_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
        password_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    
    // optional bool autoLeave = 3;
    public static final int AUTOLEAVE_FIELD_NUMBER = 3;
    private boolean autoLeave_;
    public boolean hasAutoLeave() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    public boolean getAutoLeave() {
      return autoLeave_;
    }
    
    // optional bool spectateOnly = 4;
    public static final int SPECTATEONLY_FIELD_NUMBER = 4;
    private boolean spectateOnly_;
    public boolean hasSpectateOnly() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    public boolean getSpectateOnly() {
      return spectateOnly_;
    }
    
    private void initFields() {
      gameId_ = 0;
      password_ = "";
      autoLeave_ = false;
      spectateOnly_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, getPasswordBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBool(3, autoLeave_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBool(4, spectateOnly_);
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getPasswordBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, autoLeave_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(4, spectateOnly_);
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.JoinExistingGameMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        password_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        autoLeave_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        spectateOnly_ = false;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage build() {
        de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage result = new de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.password_ = password_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.autoLeave_ = autoLeave_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.spectateOnly_ = spectateOnly_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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()) {
          setPassword(other.getPassword());
        }
        if (other.hasAutoLeave()) {
          setAutoLeave(other.getAutoLeave());
        }
        if (other.hasSpectateOnly()) {
          setSpectateOnly(other.getSpectateOnly());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasGameId()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 18: {
              bitField0_ |= 0x00000002;
              password_ = input.readBytes();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              autoLeave_ = input.readBool();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              spectateOnly_ = input.readBool();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 gameId = 1;
      private int gameId_ ;
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getGameId() {
        return gameId_;
      }
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }
      
      // optional string password = 2;
      private java.lang.Object password_ = "";
      public boolean hasPassword() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public String getPassword() {
        java.lang.Object ref = password_;
        if (!(ref instanceof String)) {
          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
          password_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      public Builder setPassword(String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        password_ = value;
        
        return this;
      }
      public Builder clearPassword() {
        bitField0_ = (bitField0_ & ~0x00000002);
        password_ = getDefaultInstance().getPassword();
        
        return this;
      }
      void setPassword(com.google.protobuf.ByteString value) {
        bitField0_ |= 0x00000002;
        password_ = value;
        
      }
      
      // optional bool autoLeave = 3;
      private boolean autoLeave_ ;
      public boolean hasAutoLeave() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public boolean getAutoLeave() {
        return autoLeave_;
      }
      public Builder setAutoLeave(boolean value) {
        bitField0_ |= 0x00000004;
        autoLeave_ = value;
        
        return this;
      }
      public Builder clearAutoLeave() {
        bitField0_ = (bitField0_ & ~0x00000004);
        autoLeave_ = false;
        
        return this;
      }
      
      // optional bool spectateOnly = 4;
      private boolean spectateOnly_ ;
      public boolean hasSpectateOnly() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      public boolean getSpectateOnly() {
        return spectateOnly_;
      }
      public Builder setSpectateOnly(boolean value) {
        bitField0_ |= 0x00000008;
        spectateOnly_ = value;
        
        return this;
      }
      public Builder clearSpectateOnly() {
        bitField0_ = (bitField0_ & ~0x00000008);
        spectateOnly_ = false;
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:JoinExistingGameMessage)
    }
    
    static {
      defaultInstance = new JoinExistingGameMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:JoinExistingGameMessage)
  }
  
  public interface JoinNewGameMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required .NetGameInfo gameInfo = 1;
    boolean hasGameInfo();
    de.pokerth.protocol.ProtoBuf.NetGameInfo getGameInfo();
    
    // optional string password = 2;
    boolean hasPassword();
    String getPassword();
    
    // optional bool autoLeave = 3;
    boolean hasAutoLeave();
    boolean getAutoLeave();
  }
  public static final class JoinNewGameMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements JoinNewGameMessageOrBuilder {
    // Use JoinNewGameMessage.newBuilder() to construct.
    private JoinNewGameMessage(Builder builder) {
      super(builder);
    }
    private JoinNewGameMessage(boolean noInit) {}
    
    private static final JoinNewGameMessage defaultInstance;
    public static JoinNewGameMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public JoinNewGameMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    private int bitField0_;
    // required .NetGameInfo gameInfo = 1;
    public static final int GAMEINFO_FIELD_NUMBER = 1;
    private de.pokerth.protocol.ProtoBuf.NetGameInfo gameInfo_;
    public boolean hasGameInfo() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public de.pokerth.protocol.ProtoBuf.NetGameInfo getGameInfo() {
      return gameInfo_;
    }
    
    // optional string password = 2;
    public static final int PASSWORD_FIELD_NUMBER = 2;
    private java.lang.Object password_;
    public boolean hasPassword() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public String getPassword() {
      java.lang.Object ref = password_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
          password_ = s;
        }
        return s;
      }
    }
    private com.google.protobuf.ByteString getPasswordBytes() {
      java.lang.Object ref = password_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
        password_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    
    // optional bool autoLeave = 3;
    public static final int AUTOLEAVE_FIELD_NUMBER = 3;
    private boolean autoLeave_;
    public boolean hasAutoLeave() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    public boolean getAutoLeave() {
      return autoLeave_;
    }
    
    private void initFields() {
      gameInfo_ = de.pokerth.protocol.ProtoBuf.NetGameInfo.getDefaultInstance();
      password_ = "";
      autoLeave_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasGameInfo()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getGameInfo().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, gameInfo_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, getPasswordBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBool(3, autoLeave_);
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, gameInfo_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getPasswordBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, autoLeave_);
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.JoinNewGameMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.JoinNewGameMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.JoinNewGameMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.JoinNewGameMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.JoinNewGameMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.JoinNewGameMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.JoinNewGameMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.JoinNewGameMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.JoinNewGameMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.JoinNewGameMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.JoinNewGameMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.JoinNewGameMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.JoinNewGameMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.JoinNewGameMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        gameInfo_ = de.pokerth.protocol.ProtoBuf.NetGameInfo.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000001);
        password_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        autoLeave_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.JoinNewGameMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.JoinNewGameMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.JoinNewGameMessage build() {
        de.pokerth.protocol.ProtoBuf.JoinNewGameMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.JoinNewGameMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.JoinNewGameMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.JoinNewGameMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.JoinNewGameMessage result = new de.pokerth.protocol.ProtoBuf.JoinNewGameMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameInfo_ = gameInfo_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.password_ = password_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.autoLeave_ = autoLeave_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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()) {
          setPassword(other.getPassword());
        }
        if (other.hasAutoLeave()) {
          setAutoLeave(other.getAutoLeave());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasGameInfo()) {
          
          return false;
        }
        if (!getGameInfo().isInitialized()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 10: {
              de.pokerth.protocol.ProtoBuf.NetGameInfo.Builder subBuilder = de.pokerth.protocol.ProtoBuf.NetGameInfo.newBuilder();
              if (hasGameInfo()) {
                subBuilder.mergeFrom(getGameInfo());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setGameInfo(subBuilder.buildPartial());
              break;
            }
            case 18: {
              bitField0_ |= 0x00000002;
              password_ = input.readBytes();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              autoLeave_ = input.readBool();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required .NetGameInfo gameInfo = 1;
      private de.pokerth.protocol.ProtoBuf.NetGameInfo gameInfo_ = de.pokerth.protocol.ProtoBuf.NetGameInfo.getDefaultInstance();
      public boolean hasGameInfo() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public de.pokerth.protocol.ProtoBuf.NetGameInfo getGameInfo() {
        return gameInfo_;
      }
      public Builder setGameInfo(de.pokerth.protocol.ProtoBuf.NetGameInfo value) {
        if (value == null) {
          throw new NullPointerException();
        }
        gameInfo_ = value;
        
        bitField0_ |= 0x00000001;
        return this;
      }
      public Builder setGameInfo(
          de.pokerth.protocol.ProtoBuf.NetGameInfo.Builder builderForValue) {
        gameInfo_ = builderForValue.build();
        
        bitField0_ |= 0x00000001;
        return this;
      }
      public Builder mergeGameInfo(de.pokerth.protocol.ProtoBuf.NetGameInfo value) {
        if (((bitField0_ & 0x00000001) == 0x00000001) &&
            gameInfo_ != de.pokerth.protocol.ProtoBuf.NetGameInfo.getDefaultInstance()) {
          gameInfo_ =
            de.pokerth.protocol.ProtoBuf.NetGameInfo.newBuilder(gameInfo_).mergeFrom(value).buildPartial();
        } else {
          gameInfo_ = value;
        }
        
        bitField0_ |= 0x00000001;
        return this;
      }
      public Builder clearGameInfo() {
        gameInfo_ = de.pokerth.protocol.ProtoBuf.NetGameInfo.getDefaultInstance();
        
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      
      // optional string password = 2;
      private java.lang.Object password_ = "";
      public boolean hasPassword() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public String getPassword() {
        java.lang.Object ref = password_;
        if (!(ref instanceof String)) {
          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
          password_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      public Builder setPassword(String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        password_ = value;
        
        return this;
      }
      public Builder clearPassword() {
        bitField0_ = (bitField0_ & ~0x00000002);
        password_ = getDefaultInstance().getPassword();
        
        return this;
      }
      void setPassword(com.google.protobuf.ByteString value) {
        bitField0_ |= 0x00000002;
        password_ = value;
        
      }
      
      // optional bool autoLeave = 3;
      private boolean autoLeave_ ;
      public boolean hasAutoLeave() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public boolean getAutoLeave() {
        return autoLeave_;
      }
      public Builder setAutoLeave(boolean value) {
        bitField0_ |= 0x00000004;
        autoLeave_ = value;
        
        return this;
      }
      public Builder clearAutoLeave() {
        bitField0_ = (bitField0_ & ~0x00000004);
        autoLeave_ = false;
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:JoinNewGameMessage)
    }
    
    static {
      defaultInstance = new JoinNewGameMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:JoinNewGameMessage)
  }
  
  public interface RejoinExistingGameMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 gameId = 1;
    boolean hasGameId();
    int getGameId();
    
    // optional bool autoLeave = 2;
    boolean hasAutoLeave();
    boolean getAutoLeave();
  }
  public static final class RejoinExistingGameMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements RejoinExistingGameMessageOrBuilder {
    // Use RejoinExistingGameMessage.newBuilder() to construct.
    private RejoinExistingGameMessage(Builder builder) {
      super(builder);
    }
    private RejoinExistingGameMessage(boolean noInit) {}
    
    private static final RejoinExistingGameMessage defaultInstance;
    public static RejoinExistingGameMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public RejoinExistingGameMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    private int bitField0_;
    // required uint32 gameId = 1;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getGameId() {
      return gameId_;
    }
    
    // optional bool autoLeave = 2;
    public static final int AUTOLEAVE_FIELD_NUMBER = 2;
    private boolean autoLeave_;
    public boolean hasAutoLeave() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public boolean getAutoLeave() {
      return autoLeave_;
    }
    
    private void initFields() {
      gameId_ = 0;
      autoLeave_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBool(2, autoLeave_);
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, autoLeave_);
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        autoLeave_ = false;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage build() {
        de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage result = new de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.autoLeave_ = autoLeave_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasGameId()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              autoLeave_ = input.readBool();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 gameId = 1;
      private int gameId_ ;
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getGameId() {
        return gameId_;
      }
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }
      
      // optional bool autoLeave = 2;
      private boolean autoLeave_ ;
      public boolean hasAutoLeave() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public boolean getAutoLeave() {
        return autoLeave_;
      }
      public Builder setAutoLeave(boolean value) {
        bitField0_ |= 0x00000002;
        autoLeave_ = value;
        
        return this;
      }
      public Builder clearAutoLeave() {
        bitField0_ = (bitField0_ & ~0x00000002);
        autoLeave_ = false;
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:RejoinExistingGameMessage)
    }
    
    static {
      defaultInstance = new RejoinExistingGameMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:RejoinExistingGameMessage)
  }
  
  public interface JoinGameAckMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 gameId = 1;
    boolean hasGameId();
    int getGameId();
    
    // required bool areYouGameAdmin = 2;
    boolean hasAreYouGameAdmin();
    boolean getAreYouGameAdmin();
    
    // required .NetGameInfo gameInfo = 3;
    boolean hasGameInfo();
    de.pokerth.protocol.ProtoBuf.NetGameInfo getGameInfo();
  }
  public static final class JoinGameAckMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements JoinGameAckMessageOrBuilder {
    // Use JoinGameAckMessage.newBuilder() to construct.
    private JoinGameAckMessage(Builder builder) {
      super(builder);
    }
    private JoinGameAckMessage(boolean noInit) {}
    
    private static final JoinGameAckMessage defaultInstance;
    public static JoinGameAckMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public JoinGameAckMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    private int bitField0_;
    // required uint32 gameId = 1;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getGameId() {
      return gameId_;
    }
    
    // required bool areYouGameAdmin = 2;
    public static final int AREYOUGAMEADMIN_FIELD_NUMBER = 2;
    private boolean areYouGameAdmin_;
    public boolean hasAreYouGameAdmin() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public boolean getAreYouGameAdmin() {
      return areYouGameAdmin_;
    }
    
    // required .NetGameInfo gameInfo = 3;
    public static final int GAMEINFO_FIELD_NUMBER = 3;
    private de.pokerth.protocol.ProtoBuf.NetGameInfo gameInfo_;
    public boolean hasGameInfo() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    public de.pokerth.protocol.ProtoBuf.NetGameInfo getGameInfo() {
      return gameInfo_;
    }
    
    private void initFields() {
      gameId_ = 0;
      areYouGameAdmin_ = false;
      gameInfo_ = de.pokerth.protocol.ProtoBuf.NetGameInfo.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      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;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBool(2, areYouGameAdmin_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(3, gameInfo_);
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, areYouGameAdmin_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, gameInfo_);
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.JoinGameAckMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.JoinGameAckMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.JoinGameAckMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.JoinGameAckMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.JoinGameAckMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.JoinGameAckMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.JoinGameAckMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.JoinGameAckMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.JoinGameAckMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.JoinGameAckMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.JoinGameAckMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.JoinGameAckMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.JoinGameAckMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.JoinGameAckMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        areYouGameAdmin_ = false;
        bitField0_ = (bitField0_ & ~0x00000002);
        gameInfo_ = de.pokerth.protocol.ProtoBuf.NetGameInfo.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.JoinGameAckMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.JoinGameAckMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.JoinGameAckMessage build() {
        de.pokerth.protocol.ProtoBuf.JoinGameAckMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.JoinGameAckMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.JoinGameAckMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.JoinGameAckMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.JoinGameAckMessage result = new de.pokerth.protocol.ProtoBuf.JoinGameAckMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.areYouGameAdmin_ = areYouGameAdmin_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.gameInfo_ = gameInfo_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasGameId()) {
          
          return false;
        }
        if (!hasAreYouGameAdmin()) {
          
          return false;
        }
        if (!hasGameInfo()) {
          
          return false;
        }
        if (!getGameInfo().isInitialized()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              areYouGameAdmin_ = input.readBool();
              break;
            }
            case 26: {
              de.pokerth.protocol.ProtoBuf.NetGameInfo.Builder subBuilder = de.pokerth.protocol.ProtoBuf.NetGameInfo.newBuilder();
              if (hasGameInfo()) {
                subBuilder.mergeFrom(getGameInfo());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setGameInfo(subBuilder.buildPartial());
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 gameId = 1;
      private int gameId_ ;
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getGameId() {
        return gameId_;
      }
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }
      
      // required bool areYouGameAdmin = 2;
      private boolean areYouGameAdmin_ ;
      public boolean hasAreYouGameAdmin() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public boolean getAreYouGameAdmin() {
        return areYouGameAdmin_;
      }
      public Builder setAreYouGameAdmin(boolean value) {
        bitField0_ |= 0x00000002;
        areYouGameAdmin_ = value;
        
        return this;
      }
      public Builder clearAreYouGameAdmin() {
        bitField0_ = (bitField0_ & ~0x00000002);
        areYouGameAdmin_ = false;
        
        return this;
      }
      
      // required .NetGameInfo gameInfo = 3;
      private de.pokerth.protocol.ProtoBuf.NetGameInfo gameInfo_ = de.pokerth.protocol.ProtoBuf.NetGameInfo.getDefaultInstance();
      public boolean hasGameInfo() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public de.pokerth.protocol.ProtoBuf.NetGameInfo getGameInfo() {
        return gameInfo_;
      }
      public Builder setGameInfo(de.pokerth.protocol.ProtoBuf.NetGameInfo value) {
        if (value == null) {
          throw new NullPointerException();
        }
        gameInfo_ = value;
        
        bitField0_ |= 0x00000004;
        return this;
      }
      public Builder setGameInfo(
          de.pokerth.protocol.ProtoBuf.NetGameInfo.Builder builderForValue) {
        gameInfo_ = builderForValue.build();
        
        bitField0_ |= 0x00000004;
        return this;
      }
      public Builder mergeGameInfo(de.pokerth.protocol.ProtoBuf.NetGameInfo value) {
        if (((bitField0_ & 0x00000004) == 0x00000004) &&
            gameInfo_ != de.pokerth.protocol.ProtoBuf.NetGameInfo.getDefaultInstance()) {
          gameInfo_ =
            de.pokerth.protocol.ProtoBuf.NetGameInfo.newBuilder(gameInfo_).mergeFrom(value).buildPartial();
        } else {
          gameInfo_ = value;
        }
        
        bitField0_ |= 0x00000004;
        return this;
      }
      public Builder clearGameInfo() {
        gameInfo_ = de.pokerth.protocol.ProtoBuf.NetGameInfo.getDefaultInstance();
        
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:JoinGameAckMessage)
    }
    
    static {
      defaultInstance = new JoinGameAckMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:JoinGameAckMessage)
  }
  
  public interface JoinGameFailedMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 gameId = 1;
    boolean hasGameId();
    int getGameId();
    
    // required .JoinGameFailedMessage.JoinGameFailureReason joinGameFailureReason = 2;
    boolean hasJoinGameFailureReason();
    de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.JoinGameFailureReason getJoinGameFailureReason();
  }
  public static final class JoinGameFailedMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements JoinGameFailedMessageOrBuilder {
    // Use JoinGameFailedMessage.newBuilder() to construct.
    private JoinGameFailedMessage(Builder builder) {
      super(builder);
    }
    private JoinGameFailedMessage(boolean noInit) {}
    
    private static final JoinGameFailedMessage defaultInstance;
    public static JoinGameFailedMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public JoinGameFailedMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public enum JoinGameFailureReason
        implements com.google.protobuf.Internal.EnumLite {
      invalidGame(0, 1),
      gameIsFull(1, 2),
      gameIsRunning(2, 3),
      invalidPassword(3, 4),
      notAllowedAsGuest(4, 5),
      notInvited(5, 6),
      gameNameInUse(6, 7),
      badGameName(7, 8),
      invalidSettings(8, 9),
      ipAddressBlocked(9, 10),
      rejoinFailed(10, 11),
      ;
      
      public static final int invalidGame_VALUE = 1;
      public static final int gameIsFull_VALUE = 2;
      public static final int gameIsRunning_VALUE = 3;
      public static final int invalidPassword_VALUE = 4;
      public static final int notAllowedAsGuest_VALUE = 5;
      public static final int notInvited_VALUE = 6;
      public static final int gameNameInUse_VALUE = 7;
      public static final int badGameName_VALUE = 8;
      public static final int invalidSettings_VALUE = 9;
      public static final int ipAddressBlocked_VALUE = 10;
      public static final int rejoinFailed_VALUE = 11;
      
      
      public final int getNumber() { return value; }
      
      public static JoinGameFailureReason valueOf(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;
          default: return null;
        }
      }
      
      public static com.google.protobuf.Internal.EnumLiteMap<JoinGameFailureReason>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static com.google.protobuf.Internal.EnumLiteMap<JoinGameFailureReason>
          internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<JoinGameFailureReason>() {
              public JoinGameFailureReason findValueByNumber(int number) {
                return JoinGameFailureReason.valueOf(number);
              }
            };
      
      private final int value;
      
      private JoinGameFailureReason(int index, int value) {
        this.value = value;
      }
      
      // @@protoc_insertion_point(enum_scope:JoinGameFailedMessage.JoinGameFailureReason)
    }
    
    private int bitField0_;
    // required uint32 gameId = 1;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getGameId() {
      return gameId_;
    }
    
    // required .JoinGameFailedMessage.JoinGameFailureReason joinGameFailureReason = 2;
    public static final int JOINGAMEFAILUREREASON_FIELD_NUMBER = 2;
    private de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.JoinGameFailureReason joinGameFailureReason_;
    public boolean hasJoinGameFailureReason() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.JoinGameFailureReason getJoinGameFailureReason() {
      return joinGameFailureReason_;
    }
    
    private void initFields() {
      gameId_ = 0;
      joinGameFailureReason_ = de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.JoinGameFailureReason.invalidGame;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasJoinGameFailureReason()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeEnum(2, joinGameFailureReason_.getNumber());
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, joinGameFailureReason_.getNumber());
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.JoinGameFailedMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        joinGameFailureReason_ = de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.JoinGameFailureReason.invalidGame;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage build() {
        de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage result = new de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.joinGameFailureReason_ = joinGameFailureReason_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasGameId()) {
          
          return false;
        }
        if (!hasJoinGameFailureReason()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.JoinGameFailureReason value = de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.JoinGameFailureReason.valueOf(rawValue);
              if (value != null) {
                bitField0_ |= 0x00000002;
                joinGameFailureReason_ = value;
              }
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 gameId = 1;
      private int gameId_ ;
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getGameId() {
        return gameId_;
      }
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }
      
      // required .JoinGameFailedMessage.JoinGameFailureReason joinGameFailureReason = 2;
      private de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.JoinGameFailureReason joinGameFailureReason_ = de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.JoinGameFailureReason.invalidGame;
      public boolean hasJoinGameFailureReason() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.JoinGameFailureReason getJoinGameFailureReason() {
        return joinGameFailureReason_;
      }
      public Builder setJoinGameFailureReason(de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.JoinGameFailureReason value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        joinGameFailureReason_ = value;
        
        return this;
      }
      public Builder clearJoinGameFailureReason() {
        bitField0_ = (bitField0_ & ~0x00000002);
        joinGameFailureReason_ = de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.JoinGameFailureReason.invalidGame;
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:JoinGameFailedMessage)
    }
    
    static {
      defaultInstance = new JoinGameFailedMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:JoinGameFailedMessage)
  }
  
  public interface GamePlayerJoinedMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 gameId = 1;
    boolean hasGameId();
    int getGameId();
    
    // required uint32 playerId = 2;
    boolean hasPlayerId();
    int getPlayerId();
    
    // required bool isGameAdmin = 3;
    boolean hasIsGameAdmin();
    boolean getIsGameAdmin();
  }
  public static final class GamePlayerJoinedMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements GamePlayerJoinedMessageOrBuilder {
    // Use GamePlayerJoinedMessage.newBuilder() to construct.
    private GamePlayerJoinedMessage(Builder builder) {
      super(builder);
    }
    private GamePlayerJoinedMessage(boolean noInit) {}
    
    private static final GamePlayerJoinedMessage defaultInstance;
    public static GamePlayerJoinedMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public GamePlayerJoinedMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    private int bitField0_;
    // required uint32 gameId = 1;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getGameId() {
      return gameId_;
    }
    
    // required uint32 playerId = 2;
    public static final int PLAYERID_FIELD_NUMBER = 2;
    private int playerId_;
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public int getPlayerId() {
      return playerId_;
    }
    
    // required bool isGameAdmin = 3;
    public static final int ISGAMEADMIN_FIELD_NUMBER = 3;
    private boolean isGameAdmin_;
    public boolean hasIsGameAdmin() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    public boolean getIsGameAdmin() {
      return isGameAdmin_;
    }
    
    private void initFields() {
      gameId_ = 0;
      playerId_ = 0;
      isGameAdmin_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasIsGameAdmin()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBool(3, isGameAdmin_);
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, isGameAdmin_);
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        isGameAdmin_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage build() {
        de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage result = new de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.isGameAdmin_ = isGameAdmin_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasGameId()) {
          
          return false;
        }
        if (!hasPlayerId()) {
          
          return false;
        }
        if (!hasIsGameAdmin()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              playerId_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              isGameAdmin_ = input.readBool();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 gameId = 1;
      private int gameId_ ;
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getGameId() {
        return gameId_;
      }
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }
      
      // required uint32 playerId = 2;
      private int playerId_ ;
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getPlayerId() {
        return playerId_;
      }
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000002;
        playerId_ = value;
        
        return this;
      }
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId_ = 0;
        
        return this;
      }
      
      // required bool isGameAdmin = 3;
      private boolean isGameAdmin_ ;
      public boolean hasIsGameAdmin() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public boolean getIsGameAdmin() {
        return isGameAdmin_;
      }
      public Builder setIsGameAdmin(boolean value) {
        bitField0_ |= 0x00000004;
        isGameAdmin_ = value;
        
        return this;
      }
      public Builder clearIsGameAdmin() {
        bitField0_ = (bitField0_ & ~0x00000004);
        isGameAdmin_ = false;
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:GamePlayerJoinedMessage)
    }
    
    static {
      defaultInstance = new GamePlayerJoinedMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:GamePlayerJoinedMessage)
  }
  
  public interface GamePlayerLeftMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 gameId = 1;
    boolean hasGameId();
    int getGameId();
    
    // required uint32 playerId = 2;
    boolean hasPlayerId();
    int getPlayerId();
    
    // required .GamePlayerLeftMessage.GamePlayerLeftReason gamePlayerLeftReason = 3;
    boolean hasGamePlayerLeftReason();
    de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason getGamePlayerLeftReason();
  }
  public static final class GamePlayerLeftMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements GamePlayerLeftMessageOrBuilder {
    // Use GamePlayerLeftMessage.newBuilder() to construct.
    private GamePlayerLeftMessage(Builder builder) {
      super(builder);
    }
    private GamePlayerLeftMessage(boolean noInit) {}
    
    private static final GamePlayerLeftMessage defaultInstance;
    public static GamePlayerLeftMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public GamePlayerLeftMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public enum GamePlayerLeftReason
        implements com.google.protobuf.Internal.EnumLite {
      leftOnRequest(0, 0),
      leftKicked(1, 1),
      leftError(2, 2),
      ;
      
      public static final int leftOnRequest_VALUE = 0;
      public static final int leftKicked_VALUE = 1;
      public static final int leftError_VALUE = 2;
      
      
      public final int getNumber() { return value; }
      
      public static GamePlayerLeftReason valueOf(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 com.google.protobuf.Internal.EnumLiteMap<GamePlayerLeftReason>
          internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<GamePlayerLeftReason>() {
              public GamePlayerLeftReason findValueByNumber(int number) {
                return GamePlayerLeftReason.valueOf(number);
              }
            };
      
      private final int value;
      
      private GamePlayerLeftReason(int index, int value) {
        this.value = value;
      }
      
      // @@protoc_insertion_point(enum_scope:GamePlayerLeftMessage.GamePlayerLeftReason)
    }
    
    private int bitField0_;
    // required uint32 gameId = 1;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getGameId() {
      return gameId_;
    }
    
    // required uint32 playerId = 2;
    public static final int PLAYERID_FIELD_NUMBER = 2;
    private int playerId_;
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public int getPlayerId() {
      return playerId_;
    }
    
    // required .GamePlayerLeftMessage.GamePlayerLeftReason gamePlayerLeftReason = 3;
    public static final int GAMEPLAYERLEFTREASON_FIELD_NUMBER = 3;
    private de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason gamePlayerLeftReason_;
    public boolean hasGamePlayerLeftReason() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    public de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason getGamePlayerLeftReason() {
      return gamePlayerLeftReason_;
    }
    
    private void initFields() {
      gameId_ = 0;
      playerId_ = 0;
      gamePlayerLeftReason_ = de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason.leftOnRequest;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasGamePlayerLeftReason()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeEnum(3, gamePlayerLeftReason_.getNumber());
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, gamePlayerLeftReason_.getNumber());
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        gamePlayerLeftReason_ = de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason.leftOnRequest;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage build() {
        de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage result = new de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.gamePlayerLeftReason_ = gamePlayerLeftReason_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasGameId()) {
          
          return false;
        }
        if (!hasPlayerId()) {
          
          return false;
        }
        if (!hasGamePlayerLeftReason()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              playerId_ = input.readUInt32();
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason value = de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason.valueOf(rawValue);
              if (value != null) {
                bitField0_ |= 0x00000004;
                gamePlayerLeftReason_ = value;
              }
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 gameId = 1;
      private int gameId_ ;
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getGameId() {
        return gameId_;
      }
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }
      
      // required uint32 playerId = 2;
      private int playerId_ ;
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getPlayerId() {
        return playerId_;
      }
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000002;
        playerId_ = value;
        
        return this;
      }
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId_ = 0;
        
        return this;
      }
      
      // required .GamePlayerLeftMessage.GamePlayerLeftReason gamePlayerLeftReason = 3;
      private de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason gamePlayerLeftReason_ = de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason.leftOnRequest;
      public boolean hasGamePlayerLeftReason() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason getGamePlayerLeftReason() {
        return gamePlayerLeftReason_;
      }
      public Builder setGamePlayerLeftReason(de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        gamePlayerLeftReason_ = value;
        
        return this;
      }
      public Builder clearGamePlayerLeftReason() {
        bitField0_ = (bitField0_ & ~0x00000004);
        gamePlayerLeftReason_ = de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason.leftOnRequest;
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:GamePlayerLeftMessage)
    }
    
    static {
      defaultInstance = new GamePlayerLeftMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:GamePlayerLeftMessage)
  }
  
  public interface GameSpectatorJoinedMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 gameId = 1;
    boolean hasGameId();
    int getGameId();
    
    // required uint32 playerId = 2;
    boolean hasPlayerId();
    int getPlayerId();
  }
  public static final class GameSpectatorJoinedMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements GameSpectatorJoinedMessageOrBuilder {
    // Use GameSpectatorJoinedMessage.newBuilder() to construct.
    private GameSpectatorJoinedMessage(Builder builder) {
      super(builder);
    }
    private GameSpectatorJoinedMessage(boolean noInit) {}
    
    private static final GameSpectatorJoinedMessage defaultInstance;
    public static GameSpectatorJoinedMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public GameSpectatorJoinedMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    private int bitField0_;
    // required uint32 gameId = 1;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getGameId() {
      return gameId_;
    }
    
    // required uint32 playerId = 2;
    public static final int PLAYERID_FIELD_NUMBER = 2;
    private int playerId_;
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public int getPlayerId() {
      return playerId_;
    }
    
    private void initFields() {
      gameId_ = 0;
      playerId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, playerId_);
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, playerId_);
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage build() {
        de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage result = new de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.playerId_ = playerId_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasGameId()) {
          
          return false;
        }
        if (!hasPlayerId()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              playerId_ = input.readUInt32();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 gameId = 1;
      private int gameId_ ;
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getGameId() {
        return gameId_;
      }
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }
      
      // required uint32 playerId = 2;
      private int playerId_ ;
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getPlayerId() {
        return playerId_;
      }
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000002;
        playerId_ = value;
        
        return this;
      }
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId_ = 0;
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:GameSpectatorJoinedMessage)
    }
    
    static {
      defaultInstance = new GameSpectatorJoinedMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:GameSpectatorJoinedMessage)
  }
  
  public interface GameSpectatorLeftMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 gameId = 1;
    boolean hasGameId();
    int getGameId();
    
    // required uint32 playerId = 2;
    boolean hasPlayerId();
    int getPlayerId();
    
    // required .GamePlayerLeftMessage.GamePlayerLeftReason gameSpectatorLeftReason = 3;
    boolean hasGameSpectatorLeftReason();
    de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason getGameSpectatorLeftReason();
  }
  public static final class GameSpectatorLeftMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements GameSpectatorLeftMessageOrBuilder {
    // Use GameSpectatorLeftMessage.newBuilder() to construct.
    private GameSpectatorLeftMessage(Builder builder) {
      super(builder);
    }
    private GameSpectatorLeftMessage(boolean noInit) {}
    
    private static final GameSpectatorLeftMessage defaultInstance;
    public static GameSpectatorLeftMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public GameSpectatorLeftMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    private int bitField0_;
    // required uint32 gameId = 1;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getGameId() {
      return gameId_;
    }
    
    // required uint32 playerId = 2;
    public static final int PLAYERID_FIELD_NUMBER = 2;
    private int playerId_;
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public int getPlayerId() {
      return playerId_;
    }
    
    // required .GamePlayerLeftMessage.GamePlayerLeftReason gameSpectatorLeftReason = 3;
    public static final int GAMESPECTATORLEFTREASON_FIELD_NUMBER = 3;
    private de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason gameSpectatorLeftReason_;
    public boolean hasGameSpectatorLeftReason() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    public de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason getGameSpectatorLeftReason() {
      return gameSpectatorLeftReason_;
    }
    
    private void initFields() {
      gameId_ = 0;
      playerId_ = 0;
      gameSpectatorLeftReason_ = de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason.leftOnRequest;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasGameSpectatorLeftReason()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeEnum(3, gameSpectatorLeftReason_.getNumber());
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, gameSpectatorLeftReason_.getNumber());
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        gameSpectatorLeftReason_ = de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason.leftOnRequest;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage build() {
        de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage result = new de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.gameSpectatorLeftReason_ = gameSpectatorLeftReason_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasGameId()) {
          
          return false;
        }
        if (!hasPlayerId()) {
          
          return false;
        }
        if (!hasGameSpectatorLeftReason()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              playerId_ = input.readUInt32();
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason value = de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason.valueOf(rawValue);
              if (value != null) {
                bitField0_ |= 0x00000004;
                gameSpectatorLeftReason_ = value;
              }
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 gameId = 1;
      private int gameId_ ;
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getGameId() {
        return gameId_;
      }
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }
      
      // required uint32 playerId = 2;
      private int playerId_ ;
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getPlayerId() {
        return playerId_;
      }
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000002;
        playerId_ = value;
        
        return this;
      }
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId_ = 0;
        
        return this;
      }
      
      // required .GamePlayerLeftMessage.GamePlayerLeftReason gameSpectatorLeftReason = 3;
      private de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason gameSpectatorLeftReason_ = de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason.leftOnRequest;
      public boolean hasGameSpectatorLeftReason() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason getGameSpectatorLeftReason() {
        return gameSpectatorLeftReason_;
      }
      public Builder setGameSpectatorLeftReason(de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        gameSpectatorLeftReason_ = value;
        
        return this;
      }
      public Builder clearGameSpectatorLeftReason() {
        bitField0_ = (bitField0_ & ~0x00000004);
        gameSpectatorLeftReason_ = de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.GamePlayerLeftReason.leftOnRequest;
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:GameSpectatorLeftMessage)
    }
    
    static {
      defaultInstance = new GameSpectatorLeftMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:GameSpectatorLeftMessage)
  }
  
  public interface GameAdminChangedMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 gameId = 1;
    boolean hasGameId();
    int getGameId();
    
    // required uint32 newAdminPlayerId = 2;
    boolean hasNewAdminPlayerId();
    int getNewAdminPlayerId();
  }
  public static final class GameAdminChangedMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements GameAdminChangedMessageOrBuilder {
    // Use GameAdminChangedMessage.newBuilder() to construct.
    private GameAdminChangedMessage(Builder builder) {
      super(builder);
    }
    private GameAdminChangedMessage(boolean noInit) {}
    
    private static final GameAdminChangedMessage defaultInstance;
    public static GameAdminChangedMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public GameAdminChangedMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    private int bitField0_;
    // required uint32 gameId = 1;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getGameId() {
      return gameId_;
    }
    
    // required uint32 newAdminPlayerId = 2;
    public static final int NEWADMINPLAYERID_FIELD_NUMBER = 2;
    private int newAdminPlayerId_;
    public boolean hasNewAdminPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public int getNewAdminPlayerId() {
      return newAdminPlayerId_;
    }
    
    private void initFields() {
      gameId_ = 0;
      newAdminPlayerId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasNewAdminPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, newAdminPlayerId_);
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, newAdminPlayerId_);
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.GameAdminChangedMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        newAdminPlayerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage build() {
        de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage result = new de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.newAdminPlayerId_ = newAdminPlayerId_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasGameId()) {
          
          return false;
        }
        if (!hasNewAdminPlayerId()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              newAdminPlayerId_ = input.readUInt32();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 gameId = 1;
      private int gameId_ ;
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getGameId() {
        return gameId_;
      }
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }
      
      // required uint32 newAdminPlayerId = 2;
      private int newAdminPlayerId_ ;
      public boolean hasNewAdminPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getNewAdminPlayerId() {
        return newAdminPlayerId_;
      }
      public Builder setNewAdminPlayerId(int value) {
        bitField0_ |= 0x00000002;
        newAdminPlayerId_ = value;
        
        return this;
      }
      public Builder clearNewAdminPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        newAdminPlayerId_ = 0;
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:GameAdminChangedMessage)
    }
    
    static {
      defaultInstance = new GameAdminChangedMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:GameAdminChangedMessage)
  }
  
  public interface RemovedFromGameMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 gameId = 1;
    boolean hasGameId();
    int getGameId();
    
    // required .RemovedFromGameMessage.RemovedFromGameReason removedFromGameReason = 2;
    boolean hasRemovedFromGameReason();
    de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.RemovedFromGameReason getRemovedFromGameReason();
  }
  public static final class RemovedFromGameMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements RemovedFromGameMessageOrBuilder {
    // Use RemovedFromGameMessage.newBuilder() to construct.
    private RemovedFromGameMessage(Builder builder) {
      super(builder);
    }
    private RemovedFromGameMessage(boolean noInit) {}
    
    private static final RemovedFromGameMessage defaultInstance;
    public static RemovedFromGameMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public RemovedFromGameMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public enum RemovedFromGameReason
        implements com.google.protobuf.Internal.EnumLite {
      removedOnRequest(0, 0),
      kickedFromGame(1, 1),
      gameIsFull(2, 2),
      gameIsRunning(3, 3),
      gameTimeout(4, 4),
      removedStartFailed(5, 5),
      ;
      
      public static final int removedOnRequest_VALUE = 0;
      public static final int kickedFromGame_VALUE = 1;
      public static final int gameIsFull_VALUE = 2;
      public static final int gameIsRunning_VALUE = 3;
      public static final int gameTimeout_VALUE = 4;
      public static final int removedStartFailed_VALUE = 5;
      
      
      public final int getNumber() { return value; }
      
      public static RemovedFromGameReason valueOf(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;
          default: return null;
        }
      }
      
      public static com.google.protobuf.Internal.EnumLiteMap<RemovedFromGameReason>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static com.google.protobuf.Internal.EnumLiteMap<RemovedFromGameReason>
          internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<RemovedFromGameReason>() {
              public RemovedFromGameReason findValueByNumber(int number) {
                return RemovedFromGameReason.valueOf(number);
              }
            };
      
      private final int value;
      
      private RemovedFromGameReason(int index, int value) {
        this.value = value;
      }
      
      // @@protoc_insertion_point(enum_scope:RemovedFromGameMessage.RemovedFromGameReason)
    }
    
    private int bitField0_;
    // required uint32 gameId = 1;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getGameId() {
      return gameId_;
    }
    
    // required .RemovedFromGameMessage.RemovedFromGameReason removedFromGameReason = 2;
    public static final int REMOVEDFROMGAMEREASON_FIELD_NUMBER = 2;
    private de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.RemovedFromGameReason removedFromGameReason_;
    public boolean hasRemovedFromGameReason() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.RemovedFromGameReason getRemovedFromGameReason() {
      return removedFromGameReason_;
    }
    
    private void initFields() {
      gameId_ = 0;
      removedFromGameReason_ = de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.RemovedFromGameReason.removedOnRequest;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasRemovedFromGameReason()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeEnum(2, removedFromGameReason_.getNumber());
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, removedFromGameReason_.getNumber());
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.RemovedFromGameMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        removedFromGameReason_ = de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.RemovedFromGameReason.removedOnRequest;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage build() {
        de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage result = new de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.removedFromGameReason_ = removedFromGameReason_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasGameId()) {
          
          return false;
        }
        if (!hasRemovedFromGameReason()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.RemovedFromGameReason value = de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.RemovedFromGameReason.valueOf(rawValue);
              if (value != null) {
                bitField0_ |= 0x00000002;
                removedFromGameReason_ = value;
              }
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 gameId = 1;
      private int gameId_ ;
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getGameId() {
        return gameId_;
      }
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }
      
      // required .RemovedFromGameMessage.RemovedFromGameReason removedFromGameReason = 2;
      private de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.RemovedFromGameReason removedFromGameReason_ = de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.RemovedFromGameReason.removedOnRequest;
      public boolean hasRemovedFromGameReason() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.RemovedFromGameReason getRemovedFromGameReason() {
        return removedFromGameReason_;
      }
      public Builder setRemovedFromGameReason(de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.RemovedFromGameReason value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        removedFromGameReason_ = value;
        
        return this;
      }
      public Builder clearRemovedFromGameReason() {
        bitField0_ = (bitField0_ & ~0x00000002);
        removedFromGameReason_ = de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.RemovedFromGameReason.removedOnRequest;
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:RemovedFromGameMessage)
    }
    
    static {
      defaultInstance = new RemovedFromGameMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:RemovedFromGameMessage)
  }
  
  public interface KickPlayerRequestMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 gameId = 1;
    boolean hasGameId();
    int getGameId();
    
    // required uint32 playerId = 2;
    boolean hasPlayerId();
    int getPlayerId();
  }
  public static final class KickPlayerRequestMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements KickPlayerRequestMessageOrBuilder {
    // Use KickPlayerRequestMessage.newBuilder() to construct.
    private KickPlayerRequestMessage(Builder builder) {
      super(builder);
    }
    private KickPlayerRequestMessage(boolean noInit) {}
    
    private static final KickPlayerRequestMessage defaultInstance;
    public static KickPlayerRequestMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public KickPlayerRequestMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    private int bitField0_;
    // required uint32 gameId = 1;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getGameId() {
      return gameId_;
    }
    
    // required uint32 playerId = 2;
    public static final int PLAYERID_FIELD_NUMBER = 2;
    private int playerId_;
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public int getPlayerId() {
      return playerId_;
    }
    
    private void initFields() {
      gameId_ = 0;
      playerId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, playerId_);
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, playerId_);
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage build() {
        de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage result = new de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.playerId_ = playerId_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasGameId()) {
          
          return false;
        }
        if (!hasPlayerId()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              playerId_ = input.readUInt32();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 gameId = 1;
      private int gameId_ ;
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getGameId() {
        return gameId_;
      }
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }
      
      // required uint32 playerId = 2;
      private int playerId_ ;
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getPlayerId() {
        return playerId_;
      }
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000002;
        playerId_ = value;
        
        return this;
      }
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId_ = 0;
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:KickPlayerRequestMessage)
    }
    
    static {
      defaultInstance = new KickPlayerRequestMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:KickPlayerRequestMessage)
  }
  
  public interface LeaveGameRequestMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 gameId = 1;
    boolean hasGameId();
    int getGameId();
  }
  public static final class LeaveGameRequestMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements LeaveGameRequestMessageOrBuilder {
    // Use LeaveGameRequestMessage.newBuilder() to construct.
    private LeaveGameRequestMessage(Builder builder) {
      super(builder);
    }
    private LeaveGameRequestMessage(boolean noInit) {}
    
    private static final LeaveGameRequestMessage defaultInstance;
    public static LeaveGameRequestMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public LeaveGameRequestMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    private int bitField0_;
    // required uint32 gameId = 1;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getGameId() {
      return gameId_;
    }
    
    private void initFields() {
      gameId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, gameId_);
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage build() {
        de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage result = new de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasGameId()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 gameId = 1;
      private int gameId_ ;
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getGameId() {
        return gameId_;
      }
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:LeaveGameRequestMessage)
    }
    
    static {
      defaultInstance = new LeaveGameRequestMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:LeaveGameRequestMessage)
  }
  
  public interface InvitePlayerToGameMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 gameId = 1;
    boolean hasGameId();
    int getGameId();
    
    // required uint32 playerId = 2;
    boolean hasPlayerId();
    int getPlayerId();
  }
  public static final class InvitePlayerToGameMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements InvitePlayerToGameMessageOrBuilder {
    // Use InvitePlayerToGameMessage.newBuilder() to construct.
    private InvitePlayerToGameMessage(Builder builder) {
      super(builder);
    }
    private InvitePlayerToGameMessage(boolean noInit) {}
    
    private static final InvitePlayerToGameMessage defaultInstance;
    public static InvitePlayerToGameMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public InvitePlayerToGameMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    private int bitField0_;
    // required uint32 gameId = 1;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getGameId() {
      return gameId_;
    }
    
    // required uint32 playerId = 2;
    public static final int PLAYERID_FIELD_NUMBER = 2;
    private int playerId_;
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public int getPlayerId() {
      return playerId_;
    }
    
    private void initFields() {
      gameId_ = 0;
      playerId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, playerId_);
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, playerId_);
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage build() {
        de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage result = new de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.playerId_ = playerId_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasGameId()) {
          
          return false;
        }
        if (!hasPlayerId()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              playerId_ = input.readUInt32();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 gameId = 1;
      private int gameId_ ;
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getGameId() {
        return gameId_;
      }
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }
      
      // required uint32 playerId = 2;
      private int playerId_ ;
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getPlayerId() {
        return playerId_;
      }
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000002;
        playerId_ = value;
        
        return this;
      }
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId_ = 0;
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:InvitePlayerToGameMessage)
    }
    
    static {
      defaultInstance = new InvitePlayerToGameMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:InvitePlayerToGameMessage)
  }
  
  public interface InviteNotifyMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 gameId = 1;
    boolean hasGameId();
    int getGameId();
    
    // required uint32 playerIdWho = 2;
    boolean hasPlayerIdWho();
    int getPlayerIdWho();
    
    // required uint32 playerIdByWhom = 3;
    boolean hasPlayerIdByWhom();
    int getPlayerIdByWhom();
  }
  public static final class InviteNotifyMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements InviteNotifyMessageOrBuilder {
    // Use InviteNotifyMessage.newBuilder() to construct.
    private InviteNotifyMessage(Builder builder) {
      super(builder);
    }
    private InviteNotifyMessage(boolean noInit) {}
    
    private static final InviteNotifyMessage defaultInstance;
    public static InviteNotifyMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public InviteNotifyMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    private int bitField0_;
    // required uint32 gameId = 1;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getGameId() {
      return gameId_;
    }
    
    // required uint32 playerIdWho = 2;
    public static final int PLAYERIDWHO_FIELD_NUMBER = 2;
    private int playerIdWho_;
    public boolean hasPlayerIdWho() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public int getPlayerIdWho() {
      return playerIdWho_;
    }
    
    // required uint32 playerIdByWhom = 3;
    public static final int PLAYERIDBYWHOM_FIELD_NUMBER = 3;
    private int playerIdByWhom_;
    public boolean hasPlayerIdByWhom() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    public int getPlayerIdByWhom() {
      return playerIdByWhom_;
    }
    
    private void initFields() {
      gameId_ = 0;
      playerIdWho_ = 0;
      playerIdByWhom_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerIdWho()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerIdByWhom()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, playerIdWho_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, playerIdByWhom_);
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, playerIdWho_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, playerIdByWhom_);
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.InviteNotifyMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.InviteNotifyMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.InviteNotifyMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.InviteNotifyMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.InviteNotifyMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.InviteNotifyMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.InviteNotifyMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.InviteNotifyMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.InviteNotifyMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.InviteNotifyMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.InviteNotifyMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.InviteNotifyMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.InviteNotifyMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.InviteNotifyMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        playerIdWho_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        playerIdByWhom_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.InviteNotifyMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.InviteNotifyMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.InviteNotifyMessage build() {
        de.pokerth.protocol.ProtoBuf.InviteNotifyMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.InviteNotifyMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.InviteNotifyMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.InviteNotifyMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.InviteNotifyMessage result = new de.pokerth.protocol.ProtoBuf.InviteNotifyMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.playerIdWho_ = playerIdWho_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.playerIdByWhom_ = playerIdByWhom_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasGameId()) {
          
          return false;
        }
        if (!hasPlayerIdWho()) {
          
          return false;
        }
        if (!hasPlayerIdByWhom()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              playerIdWho_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              playerIdByWhom_ = input.readUInt32();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 gameId = 1;
      private int gameId_ ;
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getGameId() {
        return gameId_;
      }
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }
      
      // required uint32 playerIdWho = 2;
      private int playerIdWho_ ;
      public boolean hasPlayerIdWho() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getPlayerIdWho() {
        return playerIdWho_;
      }
      public Builder setPlayerIdWho(int value) {
        bitField0_ |= 0x00000002;
        playerIdWho_ = value;
        
        return this;
      }
      public Builder clearPlayerIdWho() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerIdWho_ = 0;
        
        return this;
      }
      
      // required uint32 playerIdByWhom = 3;
      private int playerIdByWhom_ ;
      public boolean hasPlayerIdByWhom() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public int getPlayerIdByWhom() {
        return playerIdByWhom_;
      }
      public Builder setPlayerIdByWhom(int value) {
        bitField0_ |= 0x00000004;
        playerIdByWhom_ = value;
        
        return this;
      }
      public Builder clearPlayerIdByWhom() {
        bitField0_ = (bitField0_ & ~0x00000004);
        playerIdByWhom_ = 0;
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:InviteNotifyMessage)
    }
    
    static {
      defaultInstance = new InviteNotifyMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:InviteNotifyMessage)
  }
  
  public interface RejectGameInvitationMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 gameId = 1;
    boolean hasGameId();
    int getGameId();
    
    // required .RejectGameInvitationMessage.RejectGameInvReason myRejectReason = 2;
    boolean hasMyRejectReason();
    de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason getMyRejectReason();
  }
  public static final class RejectGameInvitationMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements RejectGameInvitationMessageOrBuilder {
    // Use RejectGameInvitationMessage.newBuilder() to construct.
    private RejectGameInvitationMessage(Builder builder) {
      super(builder);
    }
    private RejectGameInvitationMessage(boolean noInit) {}
    
    private static final RejectGameInvitationMessage defaultInstance;
    public static RejectGameInvitationMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public RejectGameInvitationMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public enum RejectGameInvReason
        implements com.google.protobuf.Internal.EnumLite {
      rejectReasonNo(0, 0),
      rejectReasonBusy(1, 1),
      ;
      
      public static final int rejectReasonNo_VALUE = 0;
      public static final int rejectReasonBusy_VALUE = 1;
      
      
      public final int getNumber() { return value; }
      
      public static RejectGameInvReason valueOf(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 com.google.protobuf.Internal.EnumLiteMap<RejectGameInvReason>
          internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<RejectGameInvReason>() {
              public RejectGameInvReason findValueByNumber(int number) {
                return RejectGameInvReason.valueOf(number);
              }
            };
      
      private final int value;
      
      private RejectGameInvReason(int index, int value) {
        this.value = value;
      }
      
      // @@protoc_insertion_point(enum_scope:RejectGameInvitationMessage.RejectGameInvReason)
    }
    
    private int bitField0_;
    // required uint32 gameId = 1;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getGameId() {
      return gameId_;
    }
    
    // required .RejectGameInvitationMessage.RejectGameInvReason myRejectReason = 2;
    public static final int MYREJECTREASON_FIELD_NUMBER = 2;
    private de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason myRejectReason_;
    public boolean hasMyRejectReason() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason getMyRejectReason() {
      return myRejectReason_;
    }
    
    private void initFields() {
      gameId_ = 0;
      myRejectReason_ = de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason.rejectReasonNo;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasMyRejectReason()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeEnum(2, myRejectReason_.getNumber());
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, myRejectReason_.getNumber());
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        myRejectReason_ = de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason.rejectReasonNo;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage build() {
        de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage result = new de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.myRejectReason_ = myRejectReason_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasGameId()) {
          
          return false;
        }
        if (!hasMyRejectReason()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason value = de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason.valueOf(rawValue);
              if (value != null) {
                bitField0_ |= 0x00000002;
                myRejectReason_ = value;
              }
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 gameId = 1;
      private int gameId_ ;
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getGameId() {
        return gameId_;
      }
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }
      
      // required .RejectGameInvitationMessage.RejectGameInvReason myRejectReason = 2;
      private de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason myRejectReason_ = de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason.rejectReasonNo;
      public boolean hasMyRejectReason() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason getMyRejectReason() {
        return myRejectReason_;
      }
      public Builder setMyRejectReason(de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        myRejectReason_ = value;
        
        return this;
      }
      public Builder clearMyRejectReason() {
        bitField0_ = (bitField0_ & ~0x00000002);
        myRejectReason_ = de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason.rejectReasonNo;
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:RejectGameInvitationMessage)
    }
    
    static {
      defaultInstance = new RejectGameInvitationMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:RejectGameInvitationMessage)
  }
  
  public interface RejectInvNotifyMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 gameId = 1;
    boolean hasGameId();
    int getGameId();
    
    // required uint32 playerId = 2;
    boolean hasPlayerId();
    int getPlayerId();
    
    // required .RejectGameInvitationMessage.RejectGameInvReason playerRejectReason = 3;
    boolean hasPlayerRejectReason();
    de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason getPlayerRejectReason();
  }
  public static final class RejectInvNotifyMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements RejectInvNotifyMessageOrBuilder {
    // Use RejectInvNotifyMessage.newBuilder() to construct.
    private RejectInvNotifyMessage(Builder builder) {
      super(builder);
    }
    private RejectInvNotifyMessage(boolean noInit) {}
    
    private static final RejectInvNotifyMessage defaultInstance;
    public static RejectInvNotifyMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public RejectInvNotifyMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    private int bitField0_;
    // required uint32 gameId = 1;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getGameId() {
      return gameId_;
    }
    
    // required uint32 playerId = 2;
    public static final int PLAYERID_FIELD_NUMBER = 2;
    private int playerId_;
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public int getPlayerId() {
      return playerId_;
    }
    
    // required .RejectGameInvitationMessage.RejectGameInvReason playerRejectReason = 3;
    public static final int PLAYERREJECTREASON_FIELD_NUMBER = 3;
    private de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason playerRejectReason_;
    public boolean hasPlayerRejectReason() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    public de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason getPlayerRejectReason() {
      return playerRejectReason_;
    }
    
    private void initFields() {
      gameId_ = 0;
      playerId_ = 0;
      playerRejectReason_ = de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason.rejectReasonNo;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerRejectReason()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeEnum(3, playerRejectReason_.getNumber());
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, playerRejectReason_.getNumber());
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        playerRejectReason_ = de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason.rejectReasonNo;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage build() {
        de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage result = new de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.playerRejectReason_ = playerRejectReason_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasGameId()) {
          
          return false;
        }
        if (!hasPlayerId()) {
          
          return false;
        }
        if (!hasPlayerRejectReason()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              playerId_ = input.readUInt32();
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason value = de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason.valueOf(rawValue);
              if (value != null) {
                bitField0_ |= 0x00000004;
                playerRejectReason_ = value;
              }
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 gameId = 1;
      private int gameId_ ;
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getGameId() {
        return gameId_;
      }
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }
      
      // required uint32 playerId = 2;
      private int playerId_ ;
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getPlayerId() {
        return playerId_;
      }
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000002;
        playerId_ = value;
        
        return this;
      }
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId_ = 0;
        
        return this;
      }
      
      // required .RejectGameInvitationMessage.RejectGameInvReason playerRejectReason = 3;
      private de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason playerRejectReason_ = de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason.rejectReasonNo;
      public boolean hasPlayerRejectReason() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason getPlayerRejectReason() {
        return playerRejectReason_;
      }
      public Builder setPlayerRejectReason(de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        playerRejectReason_ = value;
        
        return this;
      }
      public Builder clearPlayerRejectReason() {
        bitField0_ = (bitField0_ & ~0x00000004);
        playerRejectReason_ = de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.RejectGameInvReason.rejectReasonNo;
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:RejectInvNotifyMessage)
    }
    
    static {
      defaultInstance = new RejectInvNotifyMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:RejectInvNotifyMessage)
  }
  
  public interface StartEventMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 gameId = 1;
    boolean hasGameId();
    int getGameId();
    
    // required .StartEventMessage.StartEventType startEventType = 2;
    boolean hasStartEventType();
    de.pokerth.protocol.ProtoBuf.StartEventMessage.StartEventType getStartEventType();
    
    // optional bool fillWithComputerPlayers = 3;
    boolean hasFillWithComputerPlayers();
    boolean getFillWithComputerPlayers();
  }
  public static final class StartEventMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements StartEventMessageOrBuilder {
    // Use StartEventMessage.newBuilder() to construct.
    private StartEventMessage(Builder builder) {
      super(builder);
    }
    private StartEventMessage(boolean noInit) {}
    
    private static final StartEventMessage defaultInstance;
    public static StartEventMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public StartEventMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public enum StartEventType
        implements com.google.protobuf.Internal.EnumLite {
      startEvent(0, 0),
      rejoinEvent(1, 1),
      ;
      
      public static final int startEvent_VALUE = 0;
      public static final int rejoinEvent_VALUE = 1;
      
      
      public final int getNumber() { return value; }
      
      public static StartEventType valueOf(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 com.google.protobuf.Internal.EnumLiteMap<StartEventType>
          internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<StartEventType>() {
              public StartEventType findValueByNumber(int number) {
                return StartEventType.valueOf(number);
              }
            };
      
      private final int value;
      
      private StartEventType(int index, int value) {
        this.value = value;
      }
      
      // @@protoc_insertion_point(enum_scope:StartEventMessage.StartEventType)
    }
    
    private int bitField0_;
    // required uint32 gameId = 1;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getGameId() {
      return gameId_;
    }
    
    // required .StartEventMessage.StartEventType startEventType = 2;
    public static final int STARTEVENTTYPE_FIELD_NUMBER = 2;
    private de.pokerth.protocol.ProtoBuf.StartEventMessage.StartEventType startEventType_;
    public boolean hasStartEventType() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public de.pokerth.protocol.ProtoBuf.StartEventMessage.StartEventType getStartEventType() {
      return startEventType_;
    }
    
    // optional bool fillWithComputerPlayers = 3;
    public static final int FILLWITHCOMPUTERPLAYERS_FIELD_NUMBER = 3;
    private boolean fillWithComputerPlayers_;
    public boolean hasFillWithComputerPlayers() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    public boolean getFillWithComputerPlayers() {
      return fillWithComputerPlayers_;
    }
    
    private void initFields() {
      gameId_ = 0;
      startEventType_ = de.pokerth.protocol.ProtoBuf.StartEventMessage.StartEventType.startEvent;
      fillWithComputerPlayers_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasStartEventType()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeEnum(2, startEventType_.getNumber());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBool(3, fillWithComputerPlayers_);
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, startEventType_.getNumber());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, fillWithComputerPlayers_);
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.StartEventMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.StartEventMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.StartEventMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.StartEventMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.StartEventMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.StartEventMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.StartEventMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.StartEventMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.StartEventMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.StartEventMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.StartEventMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.StartEventMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.StartEventMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.StartEventMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        startEventType_ = de.pokerth.protocol.ProtoBuf.StartEventMessage.StartEventType.startEvent;
        bitField0_ = (bitField0_ & ~0x00000002);
        fillWithComputerPlayers_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.StartEventMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.StartEventMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.StartEventMessage build() {
        de.pokerth.protocol.ProtoBuf.StartEventMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.StartEventMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.StartEventMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.StartEventMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.StartEventMessage result = new de.pokerth.protocol.ProtoBuf.StartEventMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.startEventType_ = startEventType_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.fillWithComputerPlayers_ = fillWithComputerPlayers_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasGameId()) {
          
          return false;
        }
        if (!hasStartEventType()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.StartEventMessage.StartEventType value = de.pokerth.protocol.ProtoBuf.StartEventMessage.StartEventType.valueOf(rawValue);
              if (value != null) {
                bitField0_ |= 0x00000002;
                startEventType_ = value;
              }
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              fillWithComputerPlayers_ = input.readBool();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 gameId = 1;
      private int gameId_ ;
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getGameId() {
        return gameId_;
      }
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }
      
      // required .StartEventMessage.StartEventType startEventType = 2;
      private de.pokerth.protocol.ProtoBuf.StartEventMessage.StartEventType startEventType_ = de.pokerth.protocol.ProtoBuf.StartEventMessage.StartEventType.startEvent;
      public boolean hasStartEventType() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public de.pokerth.protocol.ProtoBuf.StartEventMessage.StartEventType getStartEventType() {
        return startEventType_;
      }
      public Builder setStartEventType(de.pokerth.protocol.ProtoBuf.StartEventMessage.StartEventType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        startEventType_ = value;
        
        return this;
      }
      public Builder clearStartEventType() {
        bitField0_ = (bitField0_ & ~0x00000002);
        startEventType_ = de.pokerth.protocol.ProtoBuf.StartEventMessage.StartEventType.startEvent;
        
        return this;
      }
      
      // optional bool fillWithComputerPlayers = 3;
      private boolean fillWithComputerPlayers_ ;
      public boolean hasFillWithComputerPlayers() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public boolean getFillWithComputerPlayers() {
        return fillWithComputerPlayers_;
      }
      public Builder setFillWithComputerPlayers(boolean value) {
        bitField0_ |= 0x00000004;
        fillWithComputerPlayers_ = value;
        
        return this;
      }
      public Builder clearFillWithComputerPlayers() {
        bitField0_ = (bitField0_ & ~0x00000004);
        fillWithComputerPlayers_ = false;
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:StartEventMessage)
    }
    
    static {
      defaultInstance = new StartEventMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:StartEventMessage)
  }
  
  public interface StartEventAckMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 gameId = 1;
    boolean hasGameId();
    int getGameId();
  }
  public static final class StartEventAckMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements StartEventAckMessageOrBuilder {
    // Use StartEventAckMessage.newBuilder() to construct.
    private StartEventAckMessage(Builder builder) {
      super(builder);
    }
    private StartEventAckMessage(boolean noInit) {}
    
    private static final StartEventAckMessage defaultInstance;
    public static StartEventAckMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public StartEventAckMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    private int bitField0_;
    // required uint32 gameId = 1;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getGameId() {
      return gameId_;
    }
    
    private void initFields() {
      gameId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, gameId_);
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.StartEventAckMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.StartEventAckMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.StartEventAckMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.StartEventAckMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.StartEventAckMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.StartEventAckMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.StartEventAckMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.StartEventAckMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.StartEventAckMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.StartEventAckMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.StartEventAckMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.StartEventAckMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.StartEventAckMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.StartEventAckMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.StartEventAckMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.StartEventAckMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.StartEventAckMessage build() {
        de.pokerth.protocol.ProtoBuf.StartEventAckMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.StartEventAckMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.StartEventAckMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.StartEventAckMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.StartEventAckMessage result = new de.pokerth.protocol.ProtoBuf.StartEventAckMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasGameId()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 gameId = 1;
      private int gameId_ ;
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getGameId() {
        return gameId_;
      }
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:StartEventAckMessage)
    }
    
    static {
      defaultInstance = new StartEventAckMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:StartEventAckMessage)
  }
  
  public interface GameStartInitialMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 gameId = 1;
    boolean hasGameId();
    int getGameId();
    
    // required uint32 startDealerPlayerId = 2;
    boolean hasStartDealerPlayerId();
    int getStartDealerPlayerId();
    
    // repeated uint32 playerSeats = 3 [packed = true];
    java.util.List<java.lang.Integer> getPlayerSeatsList();
    int getPlayerSeatsCount();
    int getPlayerSeats(int index);
  }
  public static final class GameStartInitialMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements GameStartInitialMessageOrBuilder {
    // Use GameStartInitialMessage.newBuilder() to construct.
    private GameStartInitialMessage(Builder builder) {
      super(builder);
    }
    private GameStartInitialMessage(boolean noInit) {}
    
    private static final GameStartInitialMessage defaultInstance;
    public static GameStartInitialMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public GameStartInitialMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    private int bitField0_;
    // required uint32 gameId = 1;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getGameId() {
      return gameId_;
    }
    
    // required uint32 startDealerPlayerId = 2;
    public static final int STARTDEALERPLAYERID_FIELD_NUMBER = 2;
    private int startDealerPlayerId_;
    public boolean hasStartDealerPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public int getStartDealerPlayerId() {
      return startDealerPlayerId_;
    }
    
    // repeated uint32 playerSeats = 3 [packed = true];
    public static final int PLAYERSEATS_FIELD_NUMBER = 3;
    private java.util.List<java.lang.Integer> playerSeats_;
    public java.util.List<java.lang.Integer>
        getPlayerSeatsList() {
      return playerSeats_;
    }
    public int getPlayerSeatsCount() {
      return playerSeats_.size();
    }
    public int getPlayerSeats(int index) {
      return playerSeats_.get(index);
    }
    private int playerSeatsMemoizedSerializedSize = -1;
    
    private void initFields() {
      gameId_ = 0;
      startDealerPlayerId_ = 0;
      playerSeats_ = java.util.Collections.emptyList();;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasStartDealerPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, startDealerPlayerId_);
      }
      if (getPlayerSeatsList().size() > 0) {
        output.writeRawVarint32(26);
        output.writeRawVarint32(playerSeatsMemoizedSerializedSize);
      }
      for (int i = 0; i < playerSeats_.size(); i++) {
        output.writeUInt32NoTag(playerSeats_.get(i));
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        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_.get(i));
        }
        size += dataSize;
        if (!getPlayerSeatsList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        playerSeatsMemoizedSerializedSize = dataSize;
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.GameStartInitialMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameStartInitialMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameStartInitialMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameStartInitialMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameStartInitialMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameStartInitialMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameStartInitialMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.GameStartInitialMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.GameStartInitialMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameStartInitialMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.GameStartInitialMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.GameStartInitialMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.GameStartInitialMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.GameStartInitialMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        startDealerPlayerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        playerSeats_ = java.util.Collections.emptyList();;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.GameStartInitialMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.GameStartInitialMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.GameStartInitialMessage build() {
        de.pokerth.protocol.ProtoBuf.GameStartInitialMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.GameStartInitialMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.GameStartInitialMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.GameStartInitialMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.GameStartInitialMessage result = new de.pokerth.protocol.ProtoBuf.GameStartInitialMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.startDealerPlayerId_ = startDealerPlayerId_;
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          playerSeats_ = java.util.Collections.unmodifiableList(playerSeats_);
          bitField0_ = (bitField0_ & ~0x00000004);
        }
        result.playerSeats_ = playerSeats_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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_);
          }
          
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasGameId()) {
          
          return false;
        }
        if (!hasStartDealerPlayerId()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              startDealerPlayerId_ = input.readUInt32();
              break;
            }
            case 24: {
              ensurePlayerSeatsIsMutable();
              playerSeats_.add(input.readUInt32());
              break;
            }
            case 26: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              while (input.getBytesUntilLimit() > 0) {
                addPlayerSeats(input.readUInt32());
              }
              input.popLimit(limit);
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 gameId = 1;
      private int gameId_ ;
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getGameId() {
        return gameId_;
      }
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }
      
      // required uint32 startDealerPlayerId = 2;
      private int startDealerPlayerId_ ;
      public boolean hasStartDealerPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getStartDealerPlayerId() {
        return startDealerPlayerId_;
      }
      public Builder setStartDealerPlayerId(int value) {
        bitField0_ |= 0x00000002;
        startDealerPlayerId_ = value;
        
        return this;
      }
      public Builder clearStartDealerPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        startDealerPlayerId_ = 0;
        
        return this;
      }
      
      // repeated uint32 playerSeats = 3 [packed = true];
      private java.util.List<java.lang.Integer> playerSeats_ = java.util.Collections.emptyList();;
      private void ensurePlayerSeatsIsMutable() {
        if (!((bitField0_ & 0x00000004) == 0x00000004)) {
          playerSeats_ = new java.util.ArrayList<java.lang.Integer>(playerSeats_);
          bitField0_ |= 0x00000004;
         }
      }
      public java.util.List<java.lang.Integer>
          getPlayerSeatsList() {
        return java.util.Collections.unmodifiableList(playerSeats_);
      }
      public int getPlayerSeatsCount() {
        return playerSeats_.size();
      }
      public int getPlayerSeats(int index) {
        return playerSeats_.get(index);
      }
      public Builder setPlayerSeats(
          int index, int value) {
        ensurePlayerSeatsIsMutable();
        playerSeats_.set(index, value);
        
        return this;
      }
      public Builder addPlayerSeats(int value) {
        ensurePlayerSeatsIsMutable();
        playerSeats_.add(value);
        
        return this;
      }
      public Builder addAllPlayerSeats(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensurePlayerSeatsIsMutable();
        super.addAll(values, playerSeats_);
        
        return this;
      }
      public Builder clearPlayerSeats() {
        playerSeats_ = java.util.Collections.emptyList();;
        bitField0_ = (bitField0_ & ~0x00000004);
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:GameStartInitialMessage)
    }
    
    static {
      defaultInstance = new GameStartInitialMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:GameStartInitialMessage)
  }
  
  public interface GameStartRejoinMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 gameId = 1;
    boolean hasGameId();
    int getGameId();
    
    // required uint32 startDealerPlayerId = 2;
    boolean hasStartDealerPlayerId();
    int getStartDealerPlayerId();
    
    // required uint32 handNum = 3;
    boolean hasHandNum();
    int getHandNum();
    
    // repeated .GameStartRejoinMessage.RejoinPlayerData rejoinPlayerData = 4;
    java.util.List<de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData> 
        getRejoinPlayerDataList();
    de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData getRejoinPlayerData(int index);
    int getRejoinPlayerDataCount();
  }
  public static final class GameStartRejoinMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements GameStartRejoinMessageOrBuilder {
    // Use GameStartRejoinMessage.newBuilder() to construct.
    private GameStartRejoinMessage(Builder builder) {
      super(builder);
    }
    private GameStartRejoinMessage(boolean noInit) {}
    
    private static final GameStartRejoinMessage defaultInstance;
    public static GameStartRejoinMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public GameStartRejoinMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public interface RejoinPlayerDataOrBuilder
        extends com.google.protobuf.MessageLiteOrBuilder {
      
      // required uint32 playerId = 1;
      boolean hasPlayerId();
      int getPlayerId();
      
      // required uint32 playerMoney = 2;
      boolean hasPlayerMoney();
      int getPlayerMoney();
    }
    public static final class RejoinPlayerData extends
        com.google.protobuf.GeneratedMessageLite
        implements RejoinPlayerDataOrBuilder {
      // Use RejoinPlayerData.newBuilder() to construct.
      private RejoinPlayerData(Builder builder) {
        super(builder);
      }
      private RejoinPlayerData(boolean noInit) {}
      
      private static final RejoinPlayerData defaultInstance;
      public static RejoinPlayerData getDefaultInstance() {
        return defaultInstance;
      }
      
      public RejoinPlayerData getDefaultInstanceForType() {
        return defaultInstance;
      }
      
      private int bitField0_;
      // required uint32 playerId = 1;
      public static final int PLAYERID_FIELD_NUMBER = 1;
      private int playerId_;
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getPlayerId() {
        return playerId_;
      }
      
      // required uint32 playerMoney = 2;
      public static final int PLAYERMONEY_FIELD_NUMBER = 2;
      private int playerMoney_;
      public boolean hasPlayerMoney() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getPlayerMoney() {
        return playerMoney_;
      }
      
      private void initFields() {
        playerId_ = 0;
        playerMoney_ = 0;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized != -1) return isInitialized == 1;
        
        if (!hasPlayerId()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!hasPlayerMoney()) {
          memoizedIsInitialized = 0;
          return false;
        }
        memoizedIsInitialized = 1;
        return true;
      }
      
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeUInt32(1, playerId_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeUInt32(2, playerMoney_);
        }
      }
      
      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
      
        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(1, playerId_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(2, playerMoney_);
        }
        memoizedSerializedSize = size;
        return size;
      }
      
      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }
      
      public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      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 newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      
      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }
      
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData, Builder>
          implements de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerDataOrBuilder {
        // Construct using de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }
        
        private void maybeForceBuilderInitialization() {
        }
        private static Builder create() {
          return new Builder();
        }
        
        public Builder clear() {
          super.clear();
          playerId_ = 0;
          bitField0_ = (bitField0_ & ~0x00000001);
          playerMoney_ = 0;
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }
        
        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }
        
        public de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData getDefaultInstanceForType() {
          return de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData.getDefaultInstance();
        }
        
        public de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData build() {
          de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
        
        private de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData buildParsed()
            throws com.google.protobuf.InvalidProtocolBufferException {
          de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(
              result).asInvalidProtocolBufferException();
          }
          return result;
        }
        
        public de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData buildPartial() {
          de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData result = new de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.playerId_ = playerId_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.playerMoney_ = playerMoney_;
          result.bitField0_ = to_bitField0_;
          return result;
        }
        
        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());
          }
          return this;
        }
        
        public final boolean isInitialized() {
          if (!hasPlayerId()) {
            
            return false;
          }
          if (!hasPlayerMoney()) {
            
            return false;
          }
          return true;
        }
        
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          while (true) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                
                return this;
              default: {
                if (!parseUnknownField(input, extensionRegistry, tag)) {
                  
                  return this;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                playerId_ = input.readUInt32();
                break;
              }
              case 16: {
                bitField0_ |= 0x00000002;
                playerMoney_ = input.readUInt32();
                break;
              }
            }
          }
        }
        
        private int bitField0_;
        
        // required uint32 playerId = 1;
        private int playerId_ ;
        public boolean hasPlayerId() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        public int getPlayerId() {
          return playerId_;
        }
        public Builder setPlayerId(int value) {
          bitField0_ |= 0x00000001;
          playerId_ = value;
          
          return this;
        }
        public Builder clearPlayerId() {
          bitField0_ = (bitField0_ & ~0x00000001);
          playerId_ = 0;
          
          return this;
        }
        
        // required uint32 playerMoney = 2;
        private int playerMoney_ ;
        public boolean hasPlayerMoney() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        public int getPlayerMoney() {
          return playerMoney_;
        }
        public Builder setPlayerMoney(int value) {
          bitField0_ |= 0x00000002;
          playerMoney_ = value;
          
          return this;
        }
        public Builder clearPlayerMoney() {
          bitField0_ = (bitField0_ & ~0x00000002);
          playerMoney_ = 0;
          
          return this;
        }
        
        // @@protoc_insertion_point(builder_scope:GameStartRejoinMessage.RejoinPlayerData)
      }
      
      static {
        defaultInstance = new RejoinPlayerData(true);
        defaultInstance.initFields();
      }
      
      // @@protoc_insertion_point(class_scope:GameStartRejoinMessage.RejoinPlayerData)
    }
    
    private int bitField0_;
    // required uint32 gameId = 1;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getGameId() {
      return gameId_;
    }
    
    // required uint32 startDealerPlayerId = 2;
    public static final int STARTDEALERPLAYERID_FIELD_NUMBER = 2;
    private int startDealerPlayerId_;
    public boolean hasStartDealerPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public int getStartDealerPlayerId() {
      return startDealerPlayerId_;
    }
    
    // required uint32 handNum = 3;
    public static final int HANDNUM_FIELD_NUMBER = 3;
    private int handNum_;
    public boolean hasHandNum() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    public int getHandNum() {
      return handNum_;
    }
    
    // repeated .GameStartRejoinMessage.RejoinPlayerData rejoinPlayerData = 4;
    public static final int REJOINPLAYERDATA_FIELD_NUMBER = 4;
    private java.util.List<de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData> rejoinPlayerData_;
    public java.util.List<de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData> getRejoinPlayerDataList() {
      return rejoinPlayerData_;
    }
    public java.util.List<? extends de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerDataOrBuilder> 
        getRejoinPlayerDataOrBuilderList() {
      return rejoinPlayerData_;
    }
    public int getRejoinPlayerDataCount() {
      return rejoinPlayerData_.size();
    }
    public de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData getRejoinPlayerData(int index) {
      return rejoinPlayerData_.get(index);
    }
    public de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerDataOrBuilder getRejoinPlayerDataOrBuilder(
        int index) {
      return rejoinPlayerData_.get(index);
    }
    
    private void initFields() {
      gameId_ = 0;
      startDealerPlayerId_ = 0;
      handNum_ = 0;
      rejoinPlayerData_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      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;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, startDealerPlayerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, handNum_);
      }
      for (int i = 0; i < rejoinPlayerData_.size(); i++) {
        output.writeMessage(4, rejoinPlayerData_.get(i));
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, startDealerPlayerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        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));
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.GameStartRejoinMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        startDealerPlayerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        handNum_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        rejoinPlayerData_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage build() {
        de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage result = new de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.startDealerPlayerId_ = startDealerPlayerId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.handNum_ = handNum_;
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          rejoinPlayerData_ = java.util.Collections.unmodifiableList(rejoinPlayerData_);
          bitField0_ = (bitField0_ & ~0x00000008);
        }
        result.rejoinPlayerData_ = rejoinPlayerData_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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 (!other.rejoinPlayerData_.isEmpty()) {
          if (rejoinPlayerData_.isEmpty()) {
            rejoinPlayerData_ = other.rejoinPlayerData_;
            bitField0_ = (bitField0_ & ~0x00000008);
          } else {
            ensureRejoinPlayerDataIsMutable();
            rejoinPlayerData_.addAll(other.rejoinPlayerData_);
          }
          
        }
        return this;
      }
      
      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;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              startDealerPlayerId_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              handNum_ = input.readUInt32();
              break;
            }
            case 34: {
              de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData.Builder subBuilder = de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addRejoinPlayerData(subBuilder.buildPartial());
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 gameId = 1;
      private int gameId_ ;
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getGameId() {
        return gameId_;
      }
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }
      
      // required uint32 startDealerPlayerId = 2;
      private int startDealerPlayerId_ ;
      public boolean hasStartDealerPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getStartDealerPlayerId() {
        return startDealerPlayerId_;
      }
      public Builder setStartDealerPlayerId(int value) {
        bitField0_ |= 0x00000002;
        startDealerPlayerId_ = value;
        
        return this;
      }
      public Builder clearStartDealerPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        startDealerPlayerId_ = 0;
        
        return this;
      }
      
      // required uint32 handNum = 3;
      private int handNum_ ;
      public boolean hasHandNum() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public int getHandNum() {
        return handNum_;
      }
      public Builder setHandNum(int value) {
        bitField0_ |= 0x00000004;
        handNum_ = value;
        
        return this;
      }
      public Builder clearHandNum() {
        bitField0_ = (bitField0_ & ~0x00000004);
        handNum_ = 0;
        
        return this;
      }
      
      // repeated .GameStartRejoinMessage.RejoinPlayerData rejoinPlayerData = 4;
      private java.util.List<de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData> rejoinPlayerData_ =
        java.util.Collections.emptyList();
      private void ensureRejoinPlayerDataIsMutable() {
        if (!((bitField0_ & 0x00000008) == 0x00000008)) {
          rejoinPlayerData_ = new java.util.ArrayList<de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData>(rejoinPlayerData_);
          bitField0_ |= 0x00000008;
         }
      }
      
      public java.util.List<de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData> getRejoinPlayerDataList() {
        return java.util.Collections.unmodifiableList(rejoinPlayerData_);
      }
      public int getRejoinPlayerDataCount() {
        return rejoinPlayerData_.size();
      }
      public de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData getRejoinPlayerData(int index) {
        return rejoinPlayerData_.get(index);
      }
      public Builder setRejoinPlayerData(
          int index, de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureRejoinPlayerDataIsMutable();
        rejoinPlayerData_.set(index, value);
        
        return this;
      }
      public Builder setRejoinPlayerData(
          int index, de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData.Builder builderForValue) {
        ensureRejoinPlayerDataIsMutable();
        rejoinPlayerData_.set(index, builderForValue.build());
        
        return this;
      }
      public Builder addRejoinPlayerData(de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureRejoinPlayerDataIsMutable();
        rejoinPlayerData_.add(value);
        
        return this;
      }
      public Builder addRejoinPlayerData(
          int index, de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureRejoinPlayerDataIsMutable();
        rejoinPlayerData_.add(index, value);
        
        return this;
      }
      public Builder addRejoinPlayerData(
          de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData.Builder builderForValue) {
        ensureRejoinPlayerDataIsMutable();
        rejoinPlayerData_.add(builderForValue.build());
        
        return this;
      }
      public Builder addRejoinPlayerData(
          int index, de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData.Builder builderForValue) {
        ensureRejoinPlayerDataIsMutable();
        rejoinPlayerData_.add(index, builderForValue.build());
        
        return this;
      }
      public Builder addAllRejoinPlayerData(
          java.lang.Iterable<? extends de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.RejoinPlayerData> values) {
        ensureRejoinPlayerDataIsMutable();
        super.addAll(values, rejoinPlayerData_);
        
        return this;
      }
      public Builder clearRejoinPlayerData() {
        rejoinPlayerData_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000008);
        
        return this;
      }
      public Builder removeRejoinPlayerData(int index) {
        ensureRejoinPlayerDataIsMutable();
        rejoinPlayerData_.remove(index);
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:GameStartRejoinMessage)
    }
    
    static {
      defaultInstance = new GameStartRejoinMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:GameStartRejoinMessage)
  }
  
  public interface HandStartMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 gameId = 1;
    boolean hasGameId();
    int getGameId();
    
    // optional .HandStartMessage.PlainCards plainCards = 2;
    boolean hasPlainCards();
    de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards getPlainCards();
    
    // optional bytes encryptedCards = 3;
    boolean hasEncryptedCards();
    com.google.protobuf.ByteString getEncryptedCards();
    
    // required uint32 smallBlind = 4;
    boolean hasSmallBlind();
    int getSmallBlind();
    
    // repeated .NetPlayerState seatStates = 5;
    java.util.List<de.pokerth.protocol.ProtoBuf.NetPlayerState> getSeatStatesList();
    int getSeatStatesCount();
    de.pokerth.protocol.ProtoBuf.NetPlayerState getSeatStates(int index);
  }
  public static final class HandStartMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements HandStartMessageOrBuilder {
    // Use HandStartMessage.newBuilder() to construct.
    private HandStartMessage(Builder builder) {
      super(builder);
    }
    private HandStartMessage(boolean noInit) {}
    
    private static final HandStartMessage defaultInstance;
    public static HandStartMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public HandStartMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public interface PlainCardsOrBuilder
        extends com.google.protobuf.MessageLiteOrBuilder {
      
      // required uint32 plainCard1 = 1;
      boolean hasPlainCard1();
      int getPlainCard1();
      
      // required uint32 plainCard2 = 2;
      boolean hasPlainCard2();
      int getPlainCard2();
    }
    public static final class PlainCards extends
        com.google.protobuf.GeneratedMessageLite
        implements PlainCardsOrBuilder {
      // Use PlainCards.newBuilder() to construct.
      private PlainCards(Builder builder) {
        super(builder);
      }
      private PlainCards(boolean noInit) {}
      
      private static final PlainCards defaultInstance;
      public static PlainCards getDefaultInstance() {
        return defaultInstance;
      }
      
      public PlainCards getDefaultInstanceForType() {
        return defaultInstance;
      }
      
      private int bitField0_;
      // required uint32 plainCard1 = 1;
      public static final int PLAINCARD1_FIELD_NUMBER = 1;
      private int plainCard1_;
      public boolean hasPlainCard1() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getPlainCard1() {
        return plainCard1_;
      }
      
      // required uint32 plainCard2 = 2;
      public static final int PLAINCARD2_FIELD_NUMBER = 2;
      private int plainCard2_;
      public boolean hasPlainCard2() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getPlainCard2() {
        return plainCard2_;
      }
      
      private void initFields() {
        plainCard1_ = 0;
        plainCard2_ = 0;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized != -1) return isInitialized == 1;
        
        if (!hasPlainCard1()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!hasPlainCard2()) {
          memoizedIsInitialized = 0;
          return false;
        }
        memoizedIsInitialized = 1;
        return true;
      }
      
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeUInt32(1, plainCard1_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeUInt32(2, plainCard2_);
        }
      }
      
      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
      
        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(1, plainCard1_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(2, plainCard2_);
        }
        memoizedSerializedSize = size;
        return size;
      }
      
      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }
      
      public static de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      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 newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      public static de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      
      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }
      
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards, Builder>
          implements de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCardsOrBuilder {
        // Construct using de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }
        
        private void maybeForceBuilderInitialization() {
        }
        private static Builder create() {
          return new Builder();
        }
        
        public Builder clear() {
          super.clear();
          plainCard1_ = 0;
          bitField0_ = (bitField0_ & ~0x00000001);
          plainCard2_ = 0;
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }
        
        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }
        
        public de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards getDefaultInstanceForType() {
          return de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards.getDefaultInstance();
        }
        
        public de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards build() {
          de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
        
        private de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards buildParsed()
            throws com.google.protobuf.InvalidProtocolBufferException {
          de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(
              result).asInvalidProtocolBufferException();
          }
          return result;
        }
        
        public de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards buildPartial() {
          de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards result = new de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.plainCard1_ = plainCard1_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.plainCard2_ = plainCard2_;
          result.bitField0_ = to_bitField0_;
          return result;
        }
        
        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());
          }
          return this;
        }
        
        public final boolean isInitialized() {
          if (!hasPlainCard1()) {
            
            return false;
          }
          if (!hasPlainCard2()) {
            
            return false;
          }
          return true;
        }
        
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          while (true) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                
                return this;
              default: {
                if (!parseUnknownField(input, extensionRegistry, tag)) {
                  
                  return this;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                plainCard1_ = input.readUInt32();
                break;
              }
              case 16: {
                bitField0_ |= 0x00000002;
                plainCard2_ = input.readUInt32();
                break;
              }
            }
          }
        }
        
        private int bitField0_;
        
        // required uint32 plainCard1 = 1;
        private int plainCard1_ ;
        public boolean hasPlainCard1() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        public int getPlainCard1() {
          return plainCard1_;
        }
        public Builder setPlainCard1(int value) {
          bitField0_ |= 0x00000001;
          plainCard1_ = value;
          
          return this;
        }
        public Builder clearPlainCard1() {
          bitField0_ = (bitField0_ & ~0x00000001);
          plainCard1_ = 0;
          
          return this;
        }
        
        // required uint32 plainCard2 = 2;
        private int plainCard2_ ;
        public boolean hasPlainCard2() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        public int getPlainCard2() {
          return plainCard2_;
        }
        public Builder setPlainCard2(int value) {
          bitField0_ |= 0x00000002;
          plainCard2_ = value;
          
          return this;
        }
        public Builder clearPlainCard2() {
          bitField0_ = (bitField0_ & ~0x00000002);
          plainCard2_ = 0;
          
          return this;
        }
        
        // @@protoc_insertion_point(builder_scope:HandStartMessage.PlainCards)
      }
      
      static {
        defaultInstance = new PlainCards(true);
        defaultInstance.initFields();
      }
      
      // @@protoc_insertion_point(class_scope:HandStartMessage.PlainCards)
    }
    
    private int bitField0_;
    // required uint32 gameId = 1;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getGameId() {
      return gameId_;
    }
    
    // optional .HandStartMessage.PlainCards plainCards = 2;
    public static final int PLAINCARDS_FIELD_NUMBER = 2;
    private de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards plainCards_;
    public boolean hasPlainCards() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards getPlainCards() {
      return plainCards_;
    }
    
    // optional bytes encryptedCards = 3;
    public static final int ENCRYPTEDCARDS_FIELD_NUMBER = 3;
    private com.google.protobuf.ByteString encryptedCards_;
    public boolean hasEncryptedCards() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    public com.google.protobuf.ByteString getEncryptedCards() {
      return encryptedCards_;
    }
    
    // required uint32 smallBlind = 4;
    public static final int SMALLBLIND_FIELD_NUMBER = 4;
    private int smallBlind_;
    public boolean hasSmallBlind() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    public int getSmallBlind() {
      return smallBlind_;
    }
    
    // repeated .NetPlayerState seatStates = 5;
    public static final int SEATSTATES_FIELD_NUMBER = 5;
    private java.util.List<de.pokerth.protocol.ProtoBuf.NetPlayerState> seatStates_;
    public java.util.List<de.pokerth.protocol.ProtoBuf.NetPlayerState> getSeatStatesList() {
      return seatStates_;
    }
    public int getSeatStatesCount() {
      return seatStates_.size();
    }
    public de.pokerth.protocol.ProtoBuf.NetPlayerState getSeatStates(int index) {
      return seatStates_.get(index);
    }
    
    private void initFields() {
      gameId_ = 0;
      plainCards_ = de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards.getDefaultInstance();
      encryptedCards_ = com.google.protobuf.ByteString.EMPTY;
      smallBlind_ = 0;
      seatStates_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      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;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, plainCards_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(3, encryptedCards_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(4, smallBlind_);
      }
      for (int i = 0; i < seatStates_.size(); i++) {
        output.writeEnum(5, seatStates_.get(i).getNumber());
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, plainCards_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, encryptedCards_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        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).getNumber());
        }
        size += dataSize;
        size += 1 * seatStates_.size();
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.HandStartMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.HandStartMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.HandStartMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.HandStartMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.HandStartMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.HandStartMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.HandStartMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.HandStartMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.HandStartMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.HandStartMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.HandStartMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.HandStartMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.HandStartMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.HandStartMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        plainCards_ = de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000002);
        encryptedCards_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        smallBlind_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        seatStates_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.HandStartMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.HandStartMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.HandStartMessage build() {
        de.pokerth.protocol.ProtoBuf.HandStartMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.HandStartMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.HandStartMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.HandStartMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.HandStartMessage result = new de.pokerth.protocol.ProtoBuf.HandStartMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.plainCards_ = plainCards_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.encryptedCards_ = encryptedCards_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.smallBlind_ = smallBlind_;
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          seatStates_ = java.util.Collections.unmodifiableList(seatStates_);
          bitField0_ = (bitField0_ & ~0x00000010);
        }
        result.seatStates_ = seatStates_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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_);
          }
          
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasGameId()) {
          
          return false;
        }
        if (!hasSmallBlind()) {
          
          return false;
        }
        if (hasPlainCards()) {
          if (!getPlainCards().isInitialized()) {
            
            return false;
          }
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 18: {
              de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards.Builder subBuilder = de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards.newBuilder();
              if (hasPlainCards()) {
                subBuilder.mergeFrom(getPlainCards());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setPlainCards(subBuilder.buildPartial());
              break;
            }
            case 26: {
              bitField0_ |= 0x00000004;
              encryptedCards_ = input.readBytes();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              smallBlind_ = input.readUInt32();
              break;
            }
            case 40: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.NetPlayerState value = de.pokerth.protocol.ProtoBuf.NetPlayerState.valueOf(rawValue);
              if (value != null) {
                addSeatStates(value);
              }
              break;
            }
            case 42: {
              int length = input.readRawVarint32();
              int oldLimit = input.pushLimit(length);
              while(input.getBytesUntilLimit() > 0) {
                int rawValue = input.readEnum();
                de.pokerth.protocol.ProtoBuf.NetPlayerState value = de.pokerth.protocol.ProtoBuf.NetPlayerState.valueOf(rawValue);
                if (value != null) {
                  addSeatStates(value);
                }
              }
              input.popLimit(oldLimit);
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 gameId = 1;
      private int gameId_ ;
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getGameId() {
        return gameId_;
      }
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }
      
      // optional .HandStartMessage.PlainCards plainCards = 2;
      private de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards plainCards_ = de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards.getDefaultInstance();
      public boolean hasPlainCards() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards getPlainCards() {
        return plainCards_;
      }
      public Builder setPlainCards(de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards value) {
        if (value == null) {
          throw new NullPointerException();
        }
        plainCards_ = value;
        
        bitField0_ |= 0x00000002;
        return this;
      }
      public Builder setPlainCards(
          de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards.Builder builderForValue) {
        plainCards_ = builderForValue.build();
        
        bitField0_ |= 0x00000002;
        return this;
      }
      public Builder mergePlainCards(de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards value) {
        if (((bitField0_ & 0x00000002) == 0x00000002) &&
            plainCards_ != de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards.getDefaultInstance()) {
          plainCards_ =
            de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards.newBuilder(plainCards_).mergeFrom(value).buildPartial();
        } else {
          plainCards_ = value;
        }
        
        bitField0_ |= 0x00000002;
        return this;
      }
      public Builder clearPlainCards() {
        plainCards_ = de.pokerth.protocol.ProtoBuf.HandStartMessage.PlainCards.getDefaultInstance();
        
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      
      // optional bytes encryptedCards = 3;
      private com.google.protobuf.ByteString encryptedCards_ = com.google.protobuf.ByteString.EMPTY;
      public boolean hasEncryptedCards() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public com.google.protobuf.ByteString getEncryptedCards() {
        return encryptedCards_;
      }
      public Builder setEncryptedCards(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        encryptedCards_ = value;
        
        return this;
      }
      public Builder clearEncryptedCards() {
        bitField0_ = (bitField0_ & ~0x00000004);
        encryptedCards_ = getDefaultInstance().getEncryptedCards();
        
        return this;
      }
      
      // required uint32 smallBlind = 4;
      private int smallBlind_ ;
      public boolean hasSmallBlind() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      public int getSmallBlind() {
        return smallBlind_;
      }
      public Builder setSmallBlind(int value) {
        bitField0_ |= 0x00000008;
        smallBlind_ = value;
        
        return this;
      }
      public Builder clearSmallBlind() {
        bitField0_ = (bitField0_ & ~0x00000008);
        smallBlind_ = 0;
        
        return this;
      }
      
      // repeated .NetPlayerState seatStates = 5;
      private java.util.List<de.pokerth.protocol.ProtoBuf.NetPlayerState> seatStates_ =
        java.util.Collections.emptyList();
      private void ensureSeatStatesIsMutable() {
        if (!((bitField0_ & 0x00000010) == 0x00000010)) {
          seatStates_ = new java.util.ArrayList<de.pokerth.protocol.ProtoBuf.NetPlayerState>(seatStates_);
          bitField0_ |= 0x00000010;
        }
      }
      public java.util.List<de.pokerth.protocol.ProtoBuf.NetPlayerState> getSeatStatesList() {
        return java.util.Collections.unmodifiableList(seatStates_);
      }
      public int getSeatStatesCount() {
        return seatStates_.size();
      }
      public de.pokerth.protocol.ProtoBuf.NetPlayerState getSeatStates(int index) {
        return seatStates_.get(index);
      }
      public Builder setSeatStates(
          int index, de.pokerth.protocol.ProtoBuf.NetPlayerState value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureSeatStatesIsMutable();
        seatStates_.set(index, value);
        
        return this;
      }
      public Builder addSeatStates(de.pokerth.protocol.ProtoBuf.NetPlayerState value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureSeatStatesIsMutable();
        seatStates_.add(value);
        
        return this;
      }
      public Builder addAllSeatStates(
          java.lang.Iterable<? extends de.pokerth.protocol.ProtoBuf.NetPlayerState> values) {
        ensureSeatStatesIsMutable();
        super.addAll(values, seatStates_);
        
        return this;
      }
      public Builder clearSeatStates() {
        seatStates_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000010);
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:HandStartMessage)
    }
    
    static {
      defaultInstance = new HandStartMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:HandStartMessage)
  }
  
  public interface PlayersTurnMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 gameId = 1;
    boolean hasGameId();
    int getGameId();
    
    // required uint32 playerId = 2;
    boolean hasPlayerId();
    int getPlayerId();
    
    // required .NetGameState gameState = 3;
    boolean hasGameState();
    de.pokerth.protocol.ProtoBuf.NetGameState getGameState();
  }
  public static final class PlayersTurnMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements PlayersTurnMessageOrBuilder {
    // Use PlayersTurnMessage.newBuilder() to construct.
    private PlayersTurnMessage(Builder builder) {
      super(builder);
    }
    private PlayersTurnMessage(boolean noInit) {}
    
    private static final PlayersTurnMessage defaultInstance;
    public static PlayersTurnMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public PlayersTurnMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    private int bitField0_;
    // required uint32 gameId = 1;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getGameId() {
      return gameId_;
    }
    
    // required uint32 playerId = 2;
    public static final int PLAYERID_FIELD_NUMBER = 2;
    private int playerId_;
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public int getPlayerId() {
      return playerId_;
    }
    
    // required .NetGameState gameState = 3;
    public static final int GAMESTATE_FIELD_NUMBER = 3;
    private de.pokerth.protocol.ProtoBuf.NetGameState gameState_;
    public boolean hasGameState() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    public de.pokerth.protocol.ProtoBuf.NetGameState getGameState() {
      return gameState_;
    }
    
    private void initFields() {
      gameId_ = 0;
      playerId_ = 0;
      gameState_ = de.pokerth.protocol.ProtoBuf.NetGameState.netStatePreflop;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasGameState()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeEnum(3, gameState_.getNumber());
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, gameState_.getNumber());
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.PlayersTurnMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.PlayersTurnMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.PlayersTurnMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.PlayersTurnMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.PlayersTurnMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.PlayersTurnMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.PlayersTurnMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.PlayersTurnMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.PlayersTurnMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.PlayersTurnMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.PlayersTurnMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.PlayersTurnMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.PlayersTurnMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.PlayersTurnMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        gameState_ = de.pokerth.protocol.ProtoBuf.NetGameState.netStatePreflop;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.PlayersTurnMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.PlayersTurnMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.PlayersTurnMessage build() {
        de.pokerth.protocol.ProtoBuf.PlayersTurnMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.PlayersTurnMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.PlayersTurnMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.PlayersTurnMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.PlayersTurnMessage result = new de.pokerth.protocol.ProtoBuf.PlayersTurnMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.gameState_ = gameState_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasGameId()) {
          
          return false;
        }
        if (!hasPlayerId()) {
          
          return false;
        }
        if (!hasGameState()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              playerId_ = input.readUInt32();
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.NetGameState value = de.pokerth.protocol.ProtoBuf.NetGameState.valueOf(rawValue);
              if (value != null) {
                bitField0_ |= 0x00000004;
                gameState_ = value;
              }
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 gameId = 1;
      private int gameId_ ;
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getGameId() {
        return gameId_;
      }
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }
      
      // required uint32 playerId = 2;
      private int playerId_ ;
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getPlayerId() {
        return playerId_;
      }
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000002;
        playerId_ = value;
        
        return this;
      }
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId_ = 0;
        
        return this;
      }
      
      // required .NetGameState gameState = 3;
      private de.pokerth.protocol.ProtoBuf.NetGameState gameState_ = de.pokerth.protocol.ProtoBuf.NetGameState.netStatePreflop;
      public boolean hasGameState() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public de.pokerth.protocol.ProtoBuf.NetGameState getGameState() {
        return gameState_;
      }
      public Builder setGameState(de.pokerth.protocol.ProtoBuf.NetGameState value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        gameState_ = value;
        
        return this;
      }
      public Builder clearGameState() {
        bitField0_ = (bitField0_ & ~0x00000004);
        gameState_ = de.pokerth.protocol.ProtoBuf.NetGameState.netStatePreflop;
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:PlayersTurnMessage)
    }
    
    static {
      defaultInstance = new PlayersTurnMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:PlayersTurnMessage)
  }
  
  public interface MyActionRequestMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 gameId = 1;
    boolean hasGameId();
    int getGameId();
    
    // required uint32 handNum = 2;
    boolean hasHandNum();
    int getHandNum();
    
    // required .NetGameState gameState = 3;
    boolean hasGameState();
    de.pokerth.protocol.ProtoBuf.NetGameState getGameState();
    
    // required .NetPlayerAction myAction = 4;
    boolean hasMyAction();
    de.pokerth.protocol.ProtoBuf.NetPlayerAction getMyAction();
    
    // required uint32 myRelativeBet = 5;
    boolean hasMyRelativeBet();
    int getMyRelativeBet();
  }
  public static final class MyActionRequestMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements MyActionRequestMessageOrBuilder {
    // Use MyActionRequestMessage.newBuilder() to construct.
    private MyActionRequestMessage(Builder builder) {
      super(builder);
    }
    private MyActionRequestMessage(boolean noInit) {}
    
    private static final MyActionRequestMessage defaultInstance;
    public static MyActionRequestMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public MyActionRequestMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    private int bitField0_;
    // required uint32 gameId = 1;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getGameId() {
      return gameId_;
    }
    
    // required uint32 handNum = 2;
    public static final int HANDNUM_FIELD_NUMBER = 2;
    private int handNum_;
    public boolean hasHandNum() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public int getHandNum() {
      return handNum_;
    }
    
    // required .NetGameState gameState = 3;
    public static final int GAMESTATE_FIELD_NUMBER = 3;
    private de.pokerth.protocol.ProtoBuf.NetGameState gameState_;
    public boolean hasGameState() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    public de.pokerth.protocol.ProtoBuf.NetGameState getGameState() {
      return gameState_;
    }
    
    // required .NetPlayerAction myAction = 4;
    public static final int MYACTION_FIELD_NUMBER = 4;
    private de.pokerth.protocol.ProtoBuf.NetPlayerAction myAction_;
    public boolean hasMyAction() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    public de.pokerth.protocol.ProtoBuf.NetPlayerAction getMyAction() {
      return myAction_;
    }
    
    // required uint32 myRelativeBet = 5;
    public static final int MYRELATIVEBET_FIELD_NUMBER = 5;
    private int myRelativeBet_;
    public boolean hasMyRelativeBet() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    public int getMyRelativeBet() {
      return myRelativeBet_;
    }
    
    private void initFields() {
      gameId_ = 0;
      handNum_ = 0;
      gameState_ = de.pokerth.protocol.ProtoBuf.NetGameState.netStatePreflop;
      myAction_ = de.pokerth.protocol.ProtoBuf.NetPlayerAction.netActionNone;
      myRelativeBet_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      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;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, handNum_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeEnum(3, gameState_.getNumber());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeEnum(4, myAction_.getNumber());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeUInt32(5, myRelativeBet_);
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, handNum_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, gameState_.getNumber());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(4, myAction_.getNumber());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, myRelativeBet_);
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.MyActionRequestMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.MyActionRequestMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.MyActionRequestMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.MyActionRequestMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.MyActionRequestMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.MyActionRequestMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.MyActionRequestMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.MyActionRequestMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.MyActionRequestMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.MyActionRequestMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.MyActionRequestMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.MyActionRequestMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.MyActionRequestMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.MyActionRequestMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        handNum_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        gameState_ = de.pokerth.protocol.ProtoBuf.NetGameState.netStatePreflop;
        bitField0_ = (bitField0_ & ~0x00000004);
        myAction_ = de.pokerth.protocol.ProtoBuf.NetPlayerAction.netActionNone;
        bitField0_ = (bitField0_ & ~0x00000008);
        myRelativeBet_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.MyActionRequestMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.MyActionRequestMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.MyActionRequestMessage build() {
        de.pokerth.protocol.ProtoBuf.MyActionRequestMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.MyActionRequestMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.MyActionRequestMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.MyActionRequestMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.MyActionRequestMessage result = new de.pokerth.protocol.ProtoBuf.MyActionRequestMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.handNum_ = handNum_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.gameState_ = gameState_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.myAction_ = myAction_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.myRelativeBet_ = myRelativeBet_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      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;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              handNum_ = input.readUInt32();
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.NetGameState value = de.pokerth.protocol.ProtoBuf.NetGameState.valueOf(rawValue);
              if (value != null) {
                bitField0_ |= 0x00000004;
                gameState_ = value;
              }
              break;
            }
            case 32: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.NetPlayerAction value = de.pokerth.protocol.ProtoBuf.NetPlayerAction.valueOf(rawValue);
              if (value != null) {
                bitField0_ |= 0x00000008;
                myAction_ = value;
              }
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              myRelativeBet_ = input.readUInt32();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 gameId = 1;
      private int gameId_ ;
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getGameId() {
        return gameId_;
      }
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }
      
      // required uint32 handNum = 2;
      private int handNum_ ;
      public boolean hasHandNum() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getHandNum() {
        return handNum_;
      }
      public Builder setHandNum(int value) {
        bitField0_ |= 0x00000002;
        handNum_ = value;
        
        return this;
      }
      public Builder clearHandNum() {
        bitField0_ = (bitField0_ & ~0x00000002);
        handNum_ = 0;
        
        return this;
      }
      
      // required .NetGameState gameState = 3;
      private de.pokerth.protocol.ProtoBuf.NetGameState gameState_ = de.pokerth.protocol.ProtoBuf.NetGameState.netStatePreflop;
      public boolean hasGameState() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public de.pokerth.protocol.ProtoBuf.NetGameState getGameState() {
        return gameState_;
      }
      public Builder setGameState(de.pokerth.protocol.ProtoBuf.NetGameState value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        gameState_ = value;
        
        return this;
      }
      public Builder clearGameState() {
        bitField0_ = (bitField0_ & ~0x00000004);
        gameState_ = de.pokerth.protocol.ProtoBuf.NetGameState.netStatePreflop;
        
        return this;
      }
      
      // required .NetPlayerAction myAction = 4;
      private de.pokerth.protocol.ProtoBuf.NetPlayerAction myAction_ = de.pokerth.protocol.ProtoBuf.NetPlayerAction.netActionNone;
      public boolean hasMyAction() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      public de.pokerth.protocol.ProtoBuf.NetPlayerAction getMyAction() {
        return myAction_;
      }
      public Builder setMyAction(de.pokerth.protocol.ProtoBuf.NetPlayerAction value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        myAction_ = value;
        
        return this;
      }
      public Builder clearMyAction() {
        bitField0_ = (bitField0_ & ~0x00000008);
        myAction_ = de.pokerth.protocol.ProtoBuf.NetPlayerAction.netActionNone;
        
        return this;
      }
      
      // required uint32 myRelativeBet = 5;
      private int myRelativeBet_ ;
      public boolean hasMyRelativeBet() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      public int getMyRelativeBet() {
        return myRelativeBet_;
      }
      public Builder setMyRelativeBet(int value) {
        bitField0_ |= 0x00000010;
        myRelativeBet_ = value;
        
        return this;
      }
      public Builder clearMyRelativeBet() {
        bitField0_ = (bitField0_ & ~0x00000010);
        myRelativeBet_ = 0;
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:MyActionRequestMessage)
    }
    
    static {
      defaultInstance = new MyActionRequestMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:MyActionRequestMessage)
  }
  
  public interface YourActionRejectedMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 gameId = 1;
    boolean hasGameId();
    int getGameId();
    
    // required .NetGameState gameState = 2;
    boolean hasGameState();
    de.pokerth.protocol.ProtoBuf.NetGameState getGameState();
    
    // required .NetPlayerAction yourAction = 3;
    boolean hasYourAction();
    de.pokerth.protocol.ProtoBuf.NetPlayerAction getYourAction();
    
    // required uint32 yourRelativeBet = 4;
    boolean hasYourRelativeBet();
    int getYourRelativeBet();
    
    // required .YourActionRejectedMessage.RejectionReason rejectionReason = 5;
    boolean hasRejectionReason();
    de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.RejectionReason getRejectionReason();
  }
  public static final class YourActionRejectedMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements YourActionRejectedMessageOrBuilder {
    // Use YourActionRejectedMessage.newBuilder() to construct.
    private YourActionRejectedMessage(Builder builder) {
      super(builder);
    }
    private YourActionRejectedMessage(boolean noInit) {}
    
    private static final YourActionRejectedMessage defaultInstance;
    public static YourActionRejectedMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public YourActionRejectedMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public enum RejectionReason
        implements com.google.protobuf.Internal.EnumLite {
      rejectedInvalidGameState(0, 1),
      rejectedNotYourTurn(1, 2),
      rejectedActionNotAllowed(2, 3),
      ;
      
      public static final int rejectedInvalidGameState_VALUE = 1;
      public static final int rejectedNotYourTurn_VALUE = 2;
      public static final int rejectedActionNotAllowed_VALUE = 3;
      
      
      public final int getNumber() { return value; }
      
      public static RejectionReason valueOf(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 com.google.protobuf.Internal.EnumLiteMap<RejectionReason>
          internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<RejectionReason>() {
              public RejectionReason findValueByNumber(int number) {
                return RejectionReason.valueOf(number);
              }
            };
      
      private final int value;
      
      private RejectionReason(int index, int value) {
        this.value = value;
      }
      
      // @@protoc_insertion_point(enum_scope:YourActionRejectedMessage.RejectionReason)
    }
    
    private int bitField0_;
    // required uint32 gameId = 1;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getGameId() {
      return gameId_;
    }
    
    // required .NetGameState gameState = 2;
    public static final int GAMESTATE_FIELD_NUMBER = 2;
    private de.pokerth.protocol.ProtoBuf.NetGameState gameState_;
    public boolean hasGameState() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public de.pokerth.protocol.ProtoBuf.NetGameState getGameState() {
      return gameState_;
    }
    
    // required .NetPlayerAction yourAction = 3;
    public static final int YOURACTION_FIELD_NUMBER = 3;
    private de.pokerth.protocol.ProtoBuf.NetPlayerAction yourAction_;
    public boolean hasYourAction() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    public de.pokerth.protocol.ProtoBuf.NetPlayerAction getYourAction() {
      return yourAction_;
    }
    
    // required uint32 yourRelativeBet = 4;
    public static final int YOURRELATIVEBET_FIELD_NUMBER = 4;
    private int yourRelativeBet_;
    public boolean hasYourRelativeBet() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    public int getYourRelativeBet() {
      return yourRelativeBet_;
    }
    
    // required .YourActionRejectedMessage.RejectionReason rejectionReason = 5;
    public static final int REJECTIONREASON_FIELD_NUMBER = 5;
    private de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.RejectionReason rejectionReason_;
    public boolean hasRejectionReason() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    public de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.RejectionReason getRejectionReason() {
      return rejectionReason_;
    }
    
    private void initFields() {
      gameId_ = 0;
      gameState_ = de.pokerth.protocol.ProtoBuf.NetGameState.netStatePreflop;
      yourAction_ = de.pokerth.protocol.ProtoBuf.NetPlayerAction.netActionNone;
      yourRelativeBet_ = 0;
      rejectionReason_ = de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.RejectionReason.rejectedInvalidGameState;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      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;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeEnum(2, gameState_.getNumber());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeEnum(3, yourAction_.getNumber());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(4, yourRelativeBet_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeEnum(5, rejectionReason_.getNumber());
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, gameState_.getNumber());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, yourAction_.getNumber());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, yourRelativeBet_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(5, rejectionReason_.getNumber());
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.YourActionRejectedMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        gameState_ = de.pokerth.protocol.ProtoBuf.NetGameState.netStatePreflop;
        bitField0_ = (bitField0_ & ~0x00000002);
        yourAction_ = de.pokerth.protocol.ProtoBuf.NetPlayerAction.netActionNone;
        bitField0_ = (bitField0_ & ~0x00000004);
        yourRelativeBet_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        rejectionReason_ = de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.RejectionReason.rejectedInvalidGameState;
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage build() {
        de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage result = new de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.gameState_ = gameState_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.yourAction_ = yourAction_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.yourRelativeBet_ = yourRelativeBet_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.rejectionReason_ = rejectionReason_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      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;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.NetGameState value = de.pokerth.protocol.ProtoBuf.NetGameState.valueOf(rawValue);
              if (value != null) {
                bitField0_ |= 0x00000002;
                gameState_ = value;
              }
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.NetPlayerAction value = de.pokerth.protocol.ProtoBuf.NetPlayerAction.valueOf(rawValue);
              if (value != null) {
                bitField0_ |= 0x00000004;
                yourAction_ = value;
              }
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              yourRelativeBet_ = input.readUInt32();
              break;
            }
            case 40: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.RejectionReason value = de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.RejectionReason.valueOf(rawValue);
              if (value != null) {
                bitField0_ |= 0x00000010;
                rejectionReason_ = value;
              }
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 gameId = 1;
      private int gameId_ ;
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getGameId() {
        return gameId_;
      }
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }
      
      // required .NetGameState gameState = 2;
      private de.pokerth.protocol.ProtoBuf.NetGameState gameState_ = de.pokerth.protocol.ProtoBuf.NetGameState.netStatePreflop;
      public boolean hasGameState() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public de.pokerth.protocol.ProtoBuf.NetGameState getGameState() {
        return gameState_;
      }
      public Builder setGameState(de.pokerth.protocol.ProtoBuf.NetGameState value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        gameState_ = value;
        
        return this;
      }
      public Builder clearGameState() {
        bitField0_ = (bitField0_ & ~0x00000002);
        gameState_ = de.pokerth.protocol.ProtoBuf.NetGameState.netStatePreflop;
        
        return this;
      }
      
      // required .NetPlayerAction yourAction = 3;
      private de.pokerth.protocol.ProtoBuf.NetPlayerAction yourAction_ = de.pokerth.protocol.ProtoBuf.NetPlayerAction.netActionNone;
      public boolean hasYourAction() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public de.pokerth.protocol.ProtoBuf.NetPlayerAction getYourAction() {
        return yourAction_;
      }
      public Builder setYourAction(de.pokerth.protocol.ProtoBuf.NetPlayerAction value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        yourAction_ = value;
        
        return this;
      }
      public Builder clearYourAction() {
        bitField0_ = (bitField0_ & ~0x00000004);
        yourAction_ = de.pokerth.protocol.ProtoBuf.NetPlayerAction.netActionNone;
        
        return this;
      }
      
      // required uint32 yourRelativeBet = 4;
      private int yourRelativeBet_ ;
      public boolean hasYourRelativeBet() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      public int getYourRelativeBet() {
        return yourRelativeBet_;
      }
      public Builder setYourRelativeBet(int value) {
        bitField0_ |= 0x00000008;
        yourRelativeBet_ = value;
        
        return this;
      }
      public Builder clearYourRelativeBet() {
        bitField0_ = (bitField0_ & ~0x00000008);
        yourRelativeBet_ = 0;
        
        return this;
      }
      
      // required .YourActionRejectedMessage.RejectionReason rejectionReason = 5;
      private de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.RejectionReason rejectionReason_ = de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.RejectionReason.rejectedInvalidGameState;
      public boolean hasRejectionReason() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      public de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.RejectionReason getRejectionReason() {
        return rejectionReason_;
      }
      public Builder setRejectionReason(de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.RejectionReason value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        rejectionReason_ = value;
        
        return this;
      }
      public Builder clearRejectionReason() {
        bitField0_ = (bitField0_ & ~0x00000010);
        rejectionReason_ = de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.RejectionReason.rejectedInvalidGameState;
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:YourActionRejectedMessage)
    }
    
    static {
      defaultInstance = new YourActionRejectedMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:YourActionRejectedMessage)
  }
  
  public interface PlayersActionDoneMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 gameId = 1;
    boolean hasGameId();
    int getGameId();
    
    // required uint32 playerId = 2;
    boolean hasPlayerId();
    int getPlayerId();
    
    // required .NetGameState gameState = 3;
    boolean hasGameState();
    de.pokerth.protocol.ProtoBuf.NetGameState getGameState();
    
    // required .NetPlayerAction playerAction = 4;
    boolean hasPlayerAction();
    de.pokerth.protocol.ProtoBuf.NetPlayerAction getPlayerAction();
    
    // required uint32 totalPlayerBet = 5;
    boolean hasTotalPlayerBet();
    int getTotalPlayerBet();
    
    // required uint32 playerMoney = 6;
    boolean hasPlayerMoney();
    int getPlayerMoney();
    
    // required uint32 highestSet = 7;
    boolean hasHighestSet();
    int getHighestSet();
    
    // required uint32 minimumRaise = 8;
    boolean hasMinimumRaise();
    int getMinimumRaise();
  }
  public static final class PlayersActionDoneMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements PlayersActionDoneMessageOrBuilder {
    // Use PlayersActionDoneMessage.newBuilder() to construct.
    private PlayersActionDoneMessage(Builder builder) {
      super(builder);
    }
    private PlayersActionDoneMessage(boolean noInit) {}
    
    private static final PlayersActionDoneMessage defaultInstance;
    public static PlayersActionDoneMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public PlayersActionDoneMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    private int bitField0_;
    // required uint32 gameId = 1;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getGameId() {
      return gameId_;
    }
    
    // required uint32 playerId = 2;
    public static final int PLAYERID_FIELD_NUMBER = 2;
    private int playerId_;
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public int getPlayerId() {
      return playerId_;
    }
    
    // required .NetGameState gameState = 3;
    public static final int GAMESTATE_FIELD_NUMBER = 3;
    private de.pokerth.protocol.ProtoBuf.NetGameState gameState_;
    public boolean hasGameState() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    public de.pokerth.protocol.ProtoBuf.NetGameState getGameState() {
      return gameState_;
    }
    
    // required .NetPlayerAction playerAction = 4;
    public static final int PLAYERACTION_FIELD_NUMBER = 4;
    private de.pokerth.protocol.ProtoBuf.NetPlayerAction playerAction_;
    public boolean hasPlayerAction() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    public de.pokerth.protocol.ProtoBuf.NetPlayerAction getPlayerAction() {
      return playerAction_;
    }
    
    // required uint32 totalPlayerBet = 5;
    public static final int TOTALPLAYERBET_FIELD_NUMBER = 5;
    private int totalPlayerBet_;
    public boolean hasTotalPlayerBet() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    public int getTotalPlayerBet() {
      return totalPlayerBet_;
    }
    
    // required uint32 playerMoney = 6;
    public static final int PLAYERMONEY_FIELD_NUMBER = 6;
    private int playerMoney_;
    public boolean hasPlayerMoney() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    public int getPlayerMoney() {
      return playerMoney_;
    }
    
    // required uint32 highestSet = 7;
    public static final int HIGHESTSET_FIELD_NUMBER = 7;
    private int highestSet_;
    public boolean hasHighestSet() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    public int getHighestSet() {
      return highestSet_;
    }
    
    // required uint32 minimumRaise = 8;
    public static final int MINIMUMRAISE_FIELD_NUMBER = 8;
    private int minimumRaise_;
    public boolean hasMinimumRaise() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    public int getMinimumRaise() {
      return minimumRaise_;
    }
    
    private void initFields() {
      gameId_ = 0;
      playerId_ = 0;
      gameState_ = de.pokerth.protocol.ProtoBuf.NetGameState.netStatePreflop;
      playerAction_ = de.pokerth.protocol.ProtoBuf.NetPlayerAction.netActionNone;
      totalPlayerBet_ = 0;
      playerMoney_ = 0;
      highestSet_ = 0;
      minimumRaise_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      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;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeEnum(3, gameState_.getNumber());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeEnum(4, playerAction_.getNumber());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeUInt32(5, totalPlayerBet_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeUInt32(6, playerMoney_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeUInt32(7, highestSet_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeUInt32(8, minimumRaise_);
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, gameState_.getNumber());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(4, playerAction_.getNumber());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, totalPlayerBet_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(6, playerMoney_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(7, highestSet_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(8, minimumRaise_);
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        gameState_ = de.pokerth.protocol.ProtoBuf.NetGameState.netStatePreflop;
        bitField0_ = (bitField0_ & ~0x00000004);
        playerAction_ = de.pokerth.protocol.ProtoBuf.NetPlayerAction.netActionNone;
        bitField0_ = (bitField0_ & ~0x00000008);
        totalPlayerBet_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        playerMoney_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        highestSet_ = 0;
        bitField0_ = (bitField0_ & ~0x00000040);
        minimumRaise_ = 0;
        bitField0_ = (bitField0_ & ~0x00000080);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage build() {
        de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage result = new de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.gameState_ = gameState_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.playerAction_ = playerAction_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.totalPlayerBet_ = totalPlayerBet_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.playerMoney_ = playerMoney_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.highestSet_ = highestSet_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        result.minimumRaise_ = minimumRaise_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      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;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              playerId_ = input.readUInt32();
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.NetGameState value = de.pokerth.protocol.ProtoBuf.NetGameState.valueOf(rawValue);
              if (value != null) {
                bitField0_ |= 0x00000004;
                gameState_ = value;
              }
              break;
            }
            case 32: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.NetPlayerAction value = de.pokerth.protocol.ProtoBuf.NetPlayerAction.valueOf(rawValue);
              if (value != null) {
                bitField0_ |= 0x00000008;
                playerAction_ = value;
              }
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              totalPlayerBet_ = input.readUInt32();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              playerMoney_ = input.readUInt32();
              break;
            }
            case 56: {
              bitField0_ |= 0x00000040;
              highestSet_ = input.readUInt32();
              break;
            }
            case 64: {
              bitField0_ |= 0x00000080;
              minimumRaise_ = input.readUInt32();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 gameId = 1;
      private int gameId_ ;
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getGameId() {
        return gameId_;
      }
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }
      
      // required uint32 playerId = 2;
      private int playerId_ ;
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getPlayerId() {
        return playerId_;
      }
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000002;
        playerId_ = value;
        
        return this;
      }
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId_ = 0;
        
        return this;
      }
      
      // required .NetGameState gameState = 3;
      private de.pokerth.protocol.ProtoBuf.NetGameState gameState_ = de.pokerth.protocol.ProtoBuf.NetGameState.netStatePreflop;
      public boolean hasGameState() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public de.pokerth.protocol.ProtoBuf.NetGameState getGameState() {
        return gameState_;
      }
      public Builder setGameState(de.pokerth.protocol.ProtoBuf.NetGameState value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        gameState_ = value;
        
        return this;
      }
      public Builder clearGameState() {
        bitField0_ = (bitField0_ & ~0x00000004);
        gameState_ = de.pokerth.protocol.ProtoBuf.NetGameState.netStatePreflop;
        
        return this;
      }
      
      // required .NetPlayerAction playerAction = 4;
      private de.pokerth.protocol.ProtoBuf.NetPlayerAction playerAction_ = de.pokerth.protocol.ProtoBuf.NetPlayerAction.netActionNone;
      public boolean hasPlayerAction() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      public de.pokerth.protocol.ProtoBuf.NetPlayerAction getPlayerAction() {
        return playerAction_;
      }
      public Builder setPlayerAction(de.pokerth.protocol.ProtoBuf.NetPlayerAction value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        playerAction_ = value;
        
        return this;
      }
      public Builder clearPlayerAction() {
        bitField0_ = (bitField0_ & ~0x00000008);
        playerAction_ = de.pokerth.protocol.ProtoBuf.NetPlayerAction.netActionNone;
        
        return this;
      }
      
      // required uint32 totalPlayerBet = 5;
      private int totalPlayerBet_ ;
      public boolean hasTotalPlayerBet() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      public int getTotalPlayerBet() {
        return totalPlayerBet_;
      }
      public Builder setTotalPlayerBet(int value) {
        bitField0_ |= 0x00000010;
        totalPlayerBet_ = value;
        
        return this;
      }
      public Builder clearTotalPlayerBet() {
        bitField0_ = (bitField0_ & ~0x00000010);
        totalPlayerBet_ = 0;
        
        return this;
      }
      
      // required uint32 playerMoney = 6;
      private int playerMoney_ ;
      public boolean hasPlayerMoney() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      public int getPlayerMoney() {
        return playerMoney_;
      }
      public Builder setPlayerMoney(int value) {
        bitField0_ |= 0x00000020;
        playerMoney_ = value;
        
        return this;
      }
      public Builder clearPlayerMoney() {
        bitField0_ = (bitField0_ & ~0x00000020);
        playerMoney_ = 0;
        
        return this;
      }
      
      // required uint32 highestSet = 7;
      private int highestSet_ ;
      public boolean hasHighestSet() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      public int getHighestSet() {
        return highestSet_;
      }
      public Builder setHighestSet(int value) {
        bitField0_ |= 0x00000040;
        highestSet_ = value;
        
        return this;
      }
      public Builder clearHighestSet() {
        bitField0_ = (bitField0_ & ~0x00000040);
        highestSet_ = 0;
        
        return this;
      }
      
      // required uint32 minimumRaise = 8;
      private int minimumRaise_ ;
      public boolean hasMinimumRaise() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      public int getMinimumRaise() {
        return minimumRaise_;
      }
      public Builder setMinimumRaise(int value) {
        bitField0_ |= 0x00000080;
        minimumRaise_ = value;
        
        return this;
      }
      public Builder clearMinimumRaise() {
        bitField0_ = (bitField0_ & ~0x00000080);
        minimumRaise_ = 0;
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:PlayersActionDoneMessage)
    }
    
    static {
      defaultInstance = new PlayersActionDoneMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:PlayersActionDoneMessage)
  }
  
  public interface DealFlopCardsMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 gameId = 1;
    boolean hasGameId();
    int getGameId();
    
    // required uint32 flopCard1 = 2;
    boolean hasFlopCard1();
    int getFlopCard1();
    
    // required uint32 flopCard2 = 3;
    boolean hasFlopCard2();
    int getFlopCard2();
    
    // required uint32 flopCard3 = 4;
    boolean hasFlopCard3();
    int getFlopCard3();
  }
  public static final class DealFlopCardsMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements DealFlopCardsMessageOrBuilder {
    // Use DealFlopCardsMessage.newBuilder() to construct.
    private DealFlopCardsMessage(Builder builder) {
      super(builder);
    }
    private DealFlopCardsMessage(boolean noInit) {}
    
    private static final DealFlopCardsMessage defaultInstance;
    public static DealFlopCardsMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public DealFlopCardsMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    private int bitField0_;
    // required uint32 gameId = 1;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getGameId() {
      return gameId_;
    }
    
    // required uint32 flopCard1 = 2;
    public static final int FLOPCARD1_FIELD_NUMBER = 2;
    private int flopCard1_;
    public boolean hasFlopCard1() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public int getFlopCard1() {
      return flopCard1_;
    }
    
    // required uint32 flopCard2 = 3;
    public static final int FLOPCARD2_FIELD_NUMBER = 3;
    private int flopCard2_;
    public boolean hasFlopCard2() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    public int getFlopCard2() {
      return flopCard2_;
    }
    
    // required uint32 flopCard3 = 4;
    public static final int FLOPCARD3_FIELD_NUMBER = 4;
    private int flopCard3_;
    public boolean hasFlopCard3() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    public int getFlopCard3() {
      return flopCard3_;
    }
    
    private void initFields() {
      gameId_ = 0;
      flopCard1_ = 0;
      flopCard2_ = 0;
      flopCard3_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      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;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, flopCard1_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, flopCard2_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(4, flopCard3_);
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, flopCard1_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, flopCard2_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, flopCard3_);
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.DealFlopCardsMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        flopCard1_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        flopCard2_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        flopCard3_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage build() {
        de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage result = new de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.flopCard1_ = flopCard1_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.flopCard2_ = flopCard2_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.flopCard3_ = flopCard3_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasGameId()) {
          
          return false;
        }
        if (!hasFlopCard1()) {
          
          return false;
        }
        if (!hasFlopCard2()) {
          
          return false;
        }
        if (!hasFlopCard3()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              flopCard1_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              flopCard2_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              flopCard3_ = input.readUInt32();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 gameId = 1;
      private int gameId_ ;
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getGameId() {
        return gameId_;
      }
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }
      
      // required uint32 flopCard1 = 2;
      private int flopCard1_ ;
      public boolean hasFlopCard1() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getFlopCard1() {
        return flopCard1_;
      }
      public Builder setFlopCard1(int value) {
        bitField0_ |= 0x00000002;
        flopCard1_ = value;
        
        return this;
      }
      public Builder clearFlopCard1() {
        bitField0_ = (bitField0_ & ~0x00000002);
        flopCard1_ = 0;
        
        return this;
      }
      
      // required uint32 flopCard2 = 3;
      private int flopCard2_ ;
      public boolean hasFlopCard2() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public int getFlopCard2() {
        return flopCard2_;
      }
      public Builder setFlopCard2(int value) {
        bitField0_ |= 0x00000004;
        flopCard2_ = value;
        
        return this;
      }
      public Builder clearFlopCard2() {
        bitField0_ = (bitField0_ & ~0x00000004);
        flopCard2_ = 0;
        
        return this;
      }
      
      // required uint32 flopCard3 = 4;
      private int flopCard3_ ;
      public boolean hasFlopCard3() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      public int getFlopCard3() {
        return flopCard3_;
      }
      public Builder setFlopCard3(int value) {
        bitField0_ |= 0x00000008;
        flopCard3_ = value;
        
        return this;
      }
      public Builder clearFlopCard3() {
        bitField0_ = (bitField0_ & ~0x00000008);
        flopCard3_ = 0;
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:DealFlopCardsMessage)
    }
    
    static {
      defaultInstance = new DealFlopCardsMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:DealFlopCardsMessage)
  }
  
  public interface DealTurnCardMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 gameId = 1;
    boolean hasGameId();
    int getGameId();
    
    // required uint32 turnCard = 2;
    boolean hasTurnCard();
    int getTurnCard();
  }
  public static final class DealTurnCardMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements DealTurnCardMessageOrBuilder {
    // Use DealTurnCardMessage.newBuilder() to construct.
    private DealTurnCardMessage(Builder builder) {
      super(builder);
    }
    private DealTurnCardMessage(boolean noInit) {}
    
    private static final DealTurnCardMessage defaultInstance;
    public static DealTurnCardMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public DealTurnCardMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    private int bitField0_;
    // required uint32 gameId = 1;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getGameId() {
      return gameId_;
    }
    
    // required uint32 turnCard = 2;
    public static final int TURNCARD_FIELD_NUMBER = 2;
    private int turnCard_;
    public boolean hasTurnCard() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public int getTurnCard() {
      return turnCard_;
    }
    
    private void initFields() {
      gameId_ = 0;
      turnCard_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasTurnCard()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, turnCard_);
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, turnCard_);
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.DealTurnCardMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.DealTurnCardMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.DealTurnCardMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.DealTurnCardMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.DealTurnCardMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.DealTurnCardMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.DealTurnCardMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.DealTurnCardMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.DealTurnCardMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.DealTurnCardMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.DealTurnCardMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.DealTurnCardMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.DealTurnCardMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.DealTurnCardMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        turnCard_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.DealTurnCardMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.DealTurnCardMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.DealTurnCardMessage build() {
        de.pokerth.protocol.ProtoBuf.DealTurnCardMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.DealTurnCardMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.DealTurnCardMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.DealTurnCardMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.DealTurnCardMessage result = new de.pokerth.protocol.ProtoBuf.DealTurnCardMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.turnCard_ = turnCard_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasGameId()) {
          
          return false;
        }
        if (!hasTurnCard()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              turnCard_ = input.readUInt32();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 gameId = 1;
      private int gameId_ ;
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getGameId() {
        return gameId_;
      }
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }
      
      // required uint32 turnCard = 2;
      private int turnCard_ ;
      public boolean hasTurnCard() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getTurnCard() {
        return turnCard_;
      }
      public Builder setTurnCard(int value) {
        bitField0_ |= 0x00000002;
        turnCard_ = value;
        
        return this;
      }
      public Builder clearTurnCard() {
        bitField0_ = (bitField0_ & ~0x00000002);
        turnCard_ = 0;
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:DealTurnCardMessage)
    }
    
    static {
      defaultInstance = new DealTurnCardMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:DealTurnCardMessage)
  }
  
  public interface DealRiverCardMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 gameId = 1;
    boolean hasGameId();
    int getGameId();
    
    // required uint32 riverCard = 2;
    boolean hasRiverCard();
    int getRiverCard();
  }
  public static final class DealRiverCardMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements DealRiverCardMessageOrBuilder {
    // Use DealRiverCardMessage.newBuilder() to construct.
    private DealRiverCardMessage(Builder builder) {
      super(builder);
    }
    private DealRiverCardMessage(boolean noInit) {}
    
    private static final DealRiverCardMessage defaultInstance;
    public static DealRiverCardMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public DealRiverCardMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    private int bitField0_;
    // required uint32 gameId = 1;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getGameId() {
      return gameId_;
    }
    
    // required uint32 riverCard = 2;
    public static final int RIVERCARD_FIELD_NUMBER = 2;
    private int riverCard_;
    public boolean hasRiverCard() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public int getRiverCard() {
      return riverCard_;
    }
    
    private void initFields() {
      gameId_ = 0;
      riverCard_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasRiverCard()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, riverCard_);
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, riverCard_);
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.DealRiverCardMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.DealRiverCardMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.DealRiverCardMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.DealRiverCardMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.DealRiverCardMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.DealRiverCardMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.DealRiverCardMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.DealRiverCardMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.DealRiverCardMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.DealRiverCardMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.DealRiverCardMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.DealRiverCardMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.DealRiverCardMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.DealRiverCardMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        riverCard_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.DealRiverCardMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.DealRiverCardMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.DealRiverCardMessage build() {
        de.pokerth.protocol.ProtoBuf.DealRiverCardMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.DealRiverCardMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.DealRiverCardMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.DealRiverCardMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.DealRiverCardMessage result = new de.pokerth.protocol.ProtoBuf.DealRiverCardMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.riverCard_ = riverCard_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasGameId()) {
          
          return false;
        }
        if (!hasRiverCard()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              riverCard_ = input.readUInt32();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 gameId = 1;
      private int gameId_ ;
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getGameId() {
        return gameId_;
      }
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }
      
      // required uint32 riverCard = 2;
      private int riverCard_ ;
      public boolean hasRiverCard() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getRiverCard() {
        return riverCard_;
      }
      public Builder setRiverCard(int value) {
        bitField0_ |= 0x00000002;
        riverCard_ = value;
        
        return this;
      }
      public Builder clearRiverCard() {
        bitField0_ = (bitField0_ & ~0x00000002);
        riverCard_ = 0;
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:DealRiverCardMessage)
    }
    
    static {
      defaultInstance = new DealRiverCardMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:DealRiverCardMessage)
  }
  
  public interface AllInShowCardsMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 gameId = 1;
    boolean hasGameId();
    int getGameId();
    
    // repeated .AllInShowCardsMessage.PlayerAllIn playersAllIn = 2;
    java.util.List<de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn> 
        getPlayersAllInList();
    de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn getPlayersAllIn(int index);
    int getPlayersAllInCount();
  }
  public static final class AllInShowCardsMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements AllInShowCardsMessageOrBuilder {
    // Use AllInShowCardsMessage.newBuilder() to construct.
    private AllInShowCardsMessage(Builder builder) {
      super(builder);
    }
    private AllInShowCardsMessage(boolean noInit) {}
    
    private static final AllInShowCardsMessage defaultInstance;
    public static AllInShowCardsMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public AllInShowCardsMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public interface PlayerAllInOrBuilder
        extends com.google.protobuf.MessageLiteOrBuilder {
      
      // required uint32 playerId = 1;
      boolean hasPlayerId();
      int getPlayerId();
      
      // required uint32 allInCard1 = 2;
      boolean hasAllInCard1();
      int getAllInCard1();
      
      // required uint32 allInCard2 = 3;
      boolean hasAllInCard2();
      int getAllInCard2();
    }
    public static final class PlayerAllIn extends
        com.google.protobuf.GeneratedMessageLite
        implements PlayerAllInOrBuilder {
      // Use PlayerAllIn.newBuilder() to construct.
      private PlayerAllIn(Builder builder) {
        super(builder);
      }
      private PlayerAllIn(boolean noInit) {}
      
      private static final PlayerAllIn defaultInstance;
      public static PlayerAllIn getDefaultInstance() {
        return defaultInstance;
      }
      
      public PlayerAllIn getDefaultInstanceForType() {
        return defaultInstance;
      }
      
      private int bitField0_;
      // required uint32 playerId = 1;
      public static final int PLAYERID_FIELD_NUMBER = 1;
      private int playerId_;
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getPlayerId() {
        return playerId_;
      }
      
      // required uint32 allInCard1 = 2;
      public static final int ALLINCARD1_FIELD_NUMBER = 2;
      private int allInCard1_;
      public boolean hasAllInCard1() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getAllInCard1() {
        return allInCard1_;
      }
      
      // required uint32 allInCard2 = 3;
      public static final int ALLINCARD2_FIELD_NUMBER = 3;
      private int allInCard2_;
      public boolean hasAllInCard2() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public int getAllInCard2() {
        return allInCard2_;
      }
      
      private void initFields() {
        playerId_ = 0;
        allInCard1_ = 0;
        allInCard2_ = 0;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized != -1) return isInitialized == 1;
        
        if (!hasPlayerId()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!hasAllInCard1()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!hasAllInCard2()) {
          memoizedIsInitialized = 0;
          return false;
        }
        memoizedIsInitialized = 1;
        return true;
      }
      
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeUInt32(1, playerId_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeUInt32(2, allInCard1_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeUInt32(3, allInCard2_);
        }
      }
      
      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
      
        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(1, playerId_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(2, allInCard1_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(3, allInCard2_);
        }
        memoizedSerializedSize = size;
        return size;
      }
      
      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }
      
      public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      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 newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      
      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }
      
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn, Builder>
          implements de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllInOrBuilder {
        // Construct using de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }
        
        private void maybeForceBuilderInitialization() {
        }
        private static Builder create() {
          return new Builder();
        }
        
        public Builder clear() {
          super.clear();
          playerId_ = 0;
          bitField0_ = (bitField0_ & ~0x00000001);
          allInCard1_ = 0;
          bitField0_ = (bitField0_ & ~0x00000002);
          allInCard2_ = 0;
          bitField0_ = (bitField0_ & ~0x00000004);
          return this;
        }
        
        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }
        
        public de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn getDefaultInstanceForType() {
          return de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn.getDefaultInstance();
        }
        
        public de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn build() {
          de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
        
        private de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn buildParsed()
            throws com.google.protobuf.InvalidProtocolBufferException {
          de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(
              result).asInvalidProtocolBufferException();
          }
          return result;
        }
        
        public de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn buildPartial() {
          de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn result = new de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.playerId_ = playerId_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.allInCard1_ = allInCard1_;
          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
            to_bitField0_ |= 0x00000004;
          }
          result.allInCard2_ = allInCard2_;
          result.bitField0_ = to_bitField0_;
          return result;
        }
        
        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());
          }
          return this;
        }
        
        public final boolean isInitialized() {
          if (!hasPlayerId()) {
            
            return false;
          }
          if (!hasAllInCard1()) {
            
            return false;
          }
          if (!hasAllInCard2()) {
            
            return false;
          }
          return true;
        }
        
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          while (true) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                
                return this;
              default: {
                if (!parseUnknownField(input, extensionRegistry, tag)) {
                  
                  return this;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                playerId_ = input.readUInt32();
                break;
              }
              case 16: {
                bitField0_ |= 0x00000002;
                allInCard1_ = input.readUInt32();
                break;
              }
              case 24: {
                bitField0_ |= 0x00000004;
                allInCard2_ = input.readUInt32();
                break;
              }
            }
          }
        }
        
        private int bitField0_;
        
        // required uint32 playerId = 1;
        private int playerId_ ;
        public boolean hasPlayerId() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        public int getPlayerId() {
          return playerId_;
        }
        public Builder setPlayerId(int value) {
          bitField0_ |= 0x00000001;
          playerId_ = value;
          
          return this;
        }
        public Builder clearPlayerId() {
          bitField0_ = (bitField0_ & ~0x00000001);
          playerId_ = 0;
          
          return this;
        }
        
        // required uint32 allInCard1 = 2;
        private int allInCard1_ ;
        public boolean hasAllInCard1() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        public int getAllInCard1() {
          return allInCard1_;
        }
        public Builder setAllInCard1(int value) {
          bitField0_ |= 0x00000002;
          allInCard1_ = value;
          
          return this;
        }
        public Builder clearAllInCard1() {
          bitField0_ = (bitField0_ & ~0x00000002);
          allInCard1_ = 0;
          
          return this;
        }
        
        // required uint32 allInCard2 = 3;
        private int allInCard2_ ;
        public boolean hasAllInCard2() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        public int getAllInCard2() {
          return allInCard2_;
        }
        public Builder setAllInCard2(int value) {
          bitField0_ |= 0x00000004;
          allInCard2_ = value;
          
          return this;
        }
        public Builder clearAllInCard2() {
          bitField0_ = (bitField0_ & ~0x00000004);
          allInCard2_ = 0;
          
          return this;
        }
        
        // @@protoc_insertion_point(builder_scope:AllInShowCardsMessage.PlayerAllIn)
      }
      
      static {
        defaultInstance = new PlayerAllIn(true);
        defaultInstance.initFields();
      }
      
      // @@protoc_insertion_point(class_scope:AllInShowCardsMessage.PlayerAllIn)
    }
    
    private int bitField0_;
    // required uint32 gameId = 1;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getGameId() {
      return gameId_;
    }
    
    // repeated .AllInShowCardsMessage.PlayerAllIn playersAllIn = 2;
    public static final int PLAYERSALLIN_FIELD_NUMBER = 2;
    private java.util.List<de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn> playersAllIn_;
    public java.util.List<de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn> getPlayersAllInList() {
      return playersAllIn_;
    }
    public java.util.List<? extends de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllInOrBuilder> 
        getPlayersAllInOrBuilderList() {
      return playersAllIn_;
    }
    public int getPlayersAllInCount() {
      return playersAllIn_.size();
    }
    public de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn getPlayersAllIn(int index) {
      return playersAllIn_.get(index);
    }
    public de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllInOrBuilder getPlayersAllInOrBuilder(
        int index) {
      return playersAllIn_.get(index);
    }
    
    private void initFields() {
      gameId_ = 0;
      playersAllIn_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      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;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, gameId_);
      }
      for (int i = 0; i < playersAllIn_.size(); i++) {
        output.writeMessage(2, playersAllIn_.get(i));
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      for (int i = 0; i < playersAllIn_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, playersAllIn_.get(i));
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.AllInShowCardsMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        playersAllIn_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage build() {
        de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage result = new de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          playersAllIn_ = java.util.Collections.unmodifiableList(playersAllIn_);
          bitField0_ = (bitField0_ & ~0x00000002);
        }
        result.playersAllIn_ = playersAllIn_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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 (!other.playersAllIn_.isEmpty()) {
          if (playersAllIn_.isEmpty()) {
            playersAllIn_ = other.playersAllIn_;
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            ensurePlayersAllInIsMutable();
            playersAllIn_.addAll(other.playersAllIn_);
          }
          
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasGameId()) {
          
          return false;
        }
        for (int i = 0; i < getPlayersAllInCount(); i++) {
          if (!getPlayersAllIn(i).isInitialized()) {
            
            return false;
          }
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 18: {
              de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn.Builder subBuilder = de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addPlayersAllIn(subBuilder.buildPartial());
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 gameId = 1;
      private int gameId_ ;
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getGameId() {
        return gameId_;
      }
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }
      
      // repeated .AllInShowCardsMessage.PlayerAllIn playersAllIn = 2;
      private java.util.List<de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn> playersAllIn_ =
        java.util.Collections.emptyList();
      private void ensurePlayersAllInIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          playersAllIn_ = new java.util.ArrayList<de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn>(playersAllIn_);
          bitField0_ |= 0x00000002;
         }
      }
      
      public java.util.List<de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn> getPlayersAllInList() {
        return java.util.Collections.unmodifiableList(playersAllIn_);
      }
      public int getPlayersAllInCount() {
        return playersAllIn_.size();
      }
      public de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn getPlayersAllIn(int index) {
        return playersAllIn_.get(index);
      }
      public Builder setPlayersAllIn(
          int index, de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensurePlayersAllInIsMutable();
        playersAllIn_.set(index, value);
        
        return this;
      }
      public Builder setPlayersAllIn(
          int index, de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn.Builder builderForValue) {
        ensurePlayersAllInIsMutable();
        playersAllIn_.set(index, builderForValue.build());
        
        return this;
      }
      public Builder addPlayersAllIn(de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensurePlayersAllInIsMutable();
        playersAllIn_.add(value);
        
        return this;
      }
      public Builder addPlayersAllIn(
          int index, de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensurePlayersAllInIsMutable();
        playersAllIn_.add(index, value);
        
        return this;
      }
      public Builder addPlayersAllIn(
          de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn.Builder builderForValue) {
        ensurePlayersAllInIsMutable();
        playersAllIn_.add(builderForValue.build());
        
        return this;
      }
      public Builder addPlayersAllIn(
          int index, de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn.Builder builderForValue) {
        ensurePlayersAllInIsMutable();
        playersAllIn_.add(index, builderForValue.build());
        
        return this;
      }
      public Builder addAllPlayersAllIn(
          java.lang.Iterable<? extends de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.PlayerAllIn> values) {
        ensurePlayersAllInIsMutable();
        super.addAll(values, playersAllIn_);
        
        return this;
      }
      public Builder clearPlayersAllIn() {
        playersAllIn_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000002);
        
        return this;
      }
      public Builder removePlayersAllIn(int index) {
        ensurePlayersAllInIsMutable();
        playersAllIn_.remove(index);
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:AllInShowCardsMessage)
    }
    
    static {
      defaultInstance = new AllInShowCardsMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:AllInShowCardsMessage)
  }
  
  public interface EndOfHandShowCardsMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 gameId = 1;
    boolean hasGameId();
    int getGameId();
    
    // repeated .PlayerResult playerResults = 2;
    java.util.List<de.pokerth.protocol.ProtoBuf.PlayerResult> 
        getPlayerResultsList();
    de.pokerth.protocol.ProtoBuf.PlayerResult getPlayerResults(int index);
    int getPlayerResultsCount();
  }
  public static final class EndOfHandShowCardsMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements EndOfHandShowCardsMessageOrBuilder {
    // Use EndOfHandShowCardsMessage.newBuilder() to construct.
    private EndOfHandShowCardsMessage(Builder builder) {
      super(builder);
    }
    private EndOfHandShowCardsMessage(boolean noInit) {}
    
    private static final EndOfHandShowCardsMessage defaultInstance;
    public static EndOfHandShowCardsMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public EndOfHandShowCardsMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    private int bitField0_;
    // required uint32 gameId = 1;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getGameId() {
      return gameId_;
    }
    
    // repeated .PlayerResult playerResults = 2;
    public static final int PLAYERRESULTS_FIELD_NUMBER = 2;
    private java.util.List<de.pokerth.protocol.ProtoBuf.PlayerResult> playerResults_;
    public java.util.List<de.pokerth.protocol.ProtoBuf.PlayerResult> getPlayerResultsList() {
      return playerResults_;
    }
    public java.util.List<? extends de.pokerth.protocol.ProtoBuf.PlayerResultOrBuilder> 
        getPlayerResultsOrBuilderList() {
      return playerResults_;
    }
    public int getPlayerResultsCount() {
      return playerResults_.size();
    }
    public de.pokerth.protocol.ProtoBuf.PlayerResult getPlayerResults(int index) {
      return playerResults_.get(index);
    }
    public de.pokerth.protocol.ProtoBuf.PlayerResultOrBuilder getPlayerResultsOrBuilder(
        int index) {
      return playerResults_.get(index);
    }
    
    private void initFields() {
      gameId_ = 0;
      playerResults_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      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;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, gameId_);
      }
      for (int i = 0; i < playerResults_.size(); i++) {
        output.writeMessage(2, playerResults_.get(i));
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      for (int i = 0; i < playerResults_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, playerResults_.get(i));
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        playerResults_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage build() {
        de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage result = new de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          playerResults_ = java.util.Collections.unmodifiableList(playerResults_);
          bitField0_ = (bitField0_ & ~0x00000002);
        }
        result.playerResults_ = playerResults_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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 (!other.playerResults_.isEmpty()) {
          if (playerResults_.isEmpty()) {
            playerResults_ = other.playerResults_;
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            ensurePlayerResultsIsMutable();
            playerResults_.addAll(other.playerResults_);
          }
          
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasGameId()) {
          
          return false;
        }
        for (int i = 0; i < getPlayerResultsCount(); i++) {
          if (!getPlayerResults(i).isInitialized()) {
            
            return false;
          }
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 18: {
              de.pokerth.protocol.ProtoBuf.PlayerResult.Builder subBuilder = de.pokerth.protocol.ProtoBuf.PlayerResult.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addPlayerResults(subBuilder.buildPartial());
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 gameId = 1;
      private int gameId_ ;
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getGameId() {
        return gameId_;
      }
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }
      
      // repeated .PlayerResult playerResults = 2;
      private java.util.List<de.pokerth.protocol.ProtoBuf.PlayerResult> playerResults_ =
        java.util.Collections.emptyList();
      private void ensurePlayerResultsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          playerResults_ = new java.util.ArrayList<de.pokerth.protocol.ProtoBuf.PlayerResult>(playerResults_);
          bitField0_ |= 0x00000002;
         }
      }
      
      public java.util.List<de.pokerth.protocol.ProtoBuf.PlayerResult> getPlayerResultsList() {
        return java.util.Collections.unmodifiableList(playerResults_);
      }
      public int getPlayerResultsCount() {
        return playerResults_.size();
      }
      public de.pokerth.protocol.ProtoBuf.PlayerResult getPlayerResults(int index) {
        return playerResults_.get(index);
      }
      public Builder setPlayerResults(
          int index, de.pokerth.protocol.ProtoBuf.PlayerResult value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensurePlayerResultsIsMutable();
        playerResults_.set(index, value);
        
        return this;
      }
      public Builder setPlayerResults(
          int index, de.pokerth.protocol.ProtoBuf.PlayerResult.Builder builderForValue) {
        ensurePlayerResultsIsMutable();
        playerResults_.set(index, builderForValue.build());
        
        return this;
      }
      public Builder addPlayerResults(de.pokerth.protocol.ProtoBuf.PlayerResult value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensurePlayerResultsIsMutable();
        playerResults_.add(value);
        
        return this;
      }
      public Builder addPlayerResults(
          int index, de.pokerth.protocol.ProtoBuf.PlayerResult value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensurePlayerResultsIsMutable();
        playerResults_.add(index, value);
        
        return this;
      }
      public Builder addPlayerResults(
          de.pokerth.protocol.ProtoBuf.PlayerResult.Builder builderForValue) {
        ensurePlayerResultsIsMutable();
        playerResults_.add(builderForValue.build());
        
        return this;
      }
      public Builder addPlayerResults(
          int index, de.pokerth.protocol.ProtoBuf.PlayerResult.Builder builderForValue) {
        ensurePlayerResultsIsMutable();
        playerResults_.add(index, builderForValue.build());
        
        return this;
      }
      public Builder addAllPlayerResults(
          java.lang.Iterable<? extends de.pokerth.protocol.ProtoBuf.PlayerResult> values) {
        ensurePlayerResultsIsMutable();
        super.addAll(values, playerResults_);
        
        return this;
      }
      public Builder clearPlayerResults() {
        playerResults_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000002);
        
        return this;
      }
      public Builder removePlayerResults(int index) {
        ensurePlayerResultsIsMutable();
        playerResults_.remove(index);
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:EndOfHandShowCardsMessage)
    }
    
    static {
      defaultInstance = new EndOfHandShowCardsMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:EndOfHandShowCardsMessage)
  }
  
  public interface EndOfHandHideCardsMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 gameId = 1;
    boolean hasGameId();
    int getGameId();
    
    // required uint32 playerId = 2;
    boolean hasPlayerId();
    int getPlayerId();
    
    // required uint32 moneyWon = 3;
    boolean hasMoneyWon();
    int getMoneyWon();
    
    // required uint32 playerMoney = 4;
    boolean hasPlayerMoney();
    int getPlayerMoney();
  }
  public static final class EndOfHandHideCardsMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements EndOfHandHideCardsMessageOrBuilder {
    // Use EndOfHandHideCardsMessage.newBuilder() to construct.
    private EndOfHandHideCardsMessage(Builder builder) {
      super(builder);
    }
    private EndOfHandHideCardsMessage(boolean noInit) {}
    
    private static final EndOfHandHideCardsMessage defaultInstance;
    public static EndOfHandHideCardsMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public EndOfHandHideCardsMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    private int bitField0_;
    // required uint32 gameId = 1;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getGameId() {
      return gameId_;
    }
    
    // required uint32 playerId = 2;
    public static final int PLAYERID_FIELD_NUMBER = 2;
    private int playerId_;
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public int getPlayerId() {
      return playerId_;
    }
    
    // required uint32 moneyWon = 3;
    public static final int MONEYWON_FIELD_NUMBER = 3;
    private int moneyWon_;
    public boolean hasMoneyWon() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    public int getMoneyWon() {
      return moneyWon_;
    }
    
    // required uint32 playerMoney = 4;
    public static final int PLAYERMONEY_FIELD_NUMBER = 4;
    private int playerMoney_;
    public boolean hasPlayerMoney() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    public int getPlayerMoney() {
      return playerMoney_;
    }
    
    private void initFields() {
      gameId_ = 0;
      playerId_ = 0;
      moneyWon_ = 0;
      playerMoney_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      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;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, moneyWon_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(4, playerMoney_);
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, moneyWon_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, playerMoney_);
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        moneyWon_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        playerMoney_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage build() {
        de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage result = new de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.moneyWon_ = moneyWon_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.playerMoney_ = playerMoney_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasGameId()) {
          
          return false;
        }
        if (!hasPlayerId()) {
          
          return false;
        }
        if (!hasMoneyWon()) {
          
          return false;
        }
        if (!hasPlayerMoney()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              playerId_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              moneyWon_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              playerMoney_ = input.readUInt32();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 gameId = 1;
      private int gameId_ ;
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getGameId() {
        return gameId_;
      }
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }
      
      // required uint32 playerId = 2;
      private int playerId_ ;
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getPlayerId() {
        return playerId_;
      }
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000002;
        playerId_ = value;
        
        return this;
      }
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId_ = 0;
        
        return this;
      }
      
      // required uint32 moneyWon = 3;
      private int moneyWon_ ;
      public boolean hasMoneyWon() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public int getMoneyWon() {
        return moneyWon_;
      }
      public Builder setMoneyWon(int value) {
        bitField0_ |= 0x00000004;
        moneyWon_ = value;
        
        return this;
      }
      public Builder clearMoneyWon() {
        bitField0_ = (bitField0_ & ~0x00000004);
        moneyWon_ = 0;
        
        return this;
      }
      
      // required uint32 playerMoney = 4;
      private int playerMoney_ ;
      public boolean hasPlayerMoney() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      public int getPlayerMoney() {
        return playerMoney_;
      }
      public Builder setPlayerMoney(int value) {
        bitField0_ |= 0x00000008;
        playerMoney_ = value;
        
        return this;
      }
      public Builder clearPlayerMoney() {
        bitField0_ = (bitField0_ & ~0x00000008);
        playerMoney_ = 0;
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:EndOfHandHideCardsMessage)
    }
    
    static {
      defaultInstance = new EndOfHandHideCardsMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:EndOfHandHideCardsMessage)
  }
  
  public interface ShowMyCardsRequestMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
  }
  public static final class ShowMyCardsRequestMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements ShowMyCardsRequestMessageOrBuilder {
    // Use ShowMyCardsRequestMessage.newBuilder() to construct.
    private ShowMyCardsRequestMessage(Builder builder) {
      super(builder);
    }
    private ShowMyCardsRequestMessage(boolean noInit) {}
    
    private static final ShowMyCardsRequestMessage defaultInstance;
    public static ShowMyCardsRequestMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public ShowMyCardsRequestMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    private void initFields() {
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage build() {
        de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage result = new de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage(this);
        return result;
      }
      
      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage.getDefaultInstance()) return this;
        return this;
      }
      
      public final boolean isInitialized() {
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
          }
        }
      }
      
      
      // @@protoc_insertion_point(builder_scope:ShowMyCardsRequestMessage)
    }
    
    static {
      defaultInstance = new ShowMyCardsRequestMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:ShowMyCardsRequestMessage)
  }
  
  public interface AfterHandShowCardsMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required .PlayerResult playerResult = 1;
    boolean hasPlayerResult();
    de.pokerth.protocol.ProtoBuf.PlayerResult getPlayerResult();
  }
  public static final class AfterHandShowCardsMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements AfterHandShowCardsMessageOrBuilder {
    // Use AfterHandShowCardsMessage.newBuilder() to construct.
    private AfterHandShowCardsMessage(Builder builder) {
      super(builder);
    }
    private AfterHandShowCardsMessage(boolean noInit) {}
    
    private static final AfterHandShowCardsMessage defaultInstance;
    public static AfterHandShowCardsMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public AfterHandShowCardsMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    private int bitField0_;
    // required .PlayerResult playerResult = 1;
    public static final int PLAYERRESULT_FIELD_NUMBER = 1;
    private de.pokerth.protocol.ProtoBuf.PlayerResult playerResult_;
    public boolean hasPlayerResult() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public de.pokerth.protocol.ProtoBuf.PlayerResult getPlayerResult() {
      return playerResult_;
    }
    
    private void initFields() {
      playerResult_ = de.pokerth.protocol.ProtoBuf.PlayerResult.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasPlayerResult()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getPlayerResult().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, playerResult_);
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, playerResult_);
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        playerResult_ = de.pokerth.protocol.ProtoBuf.PlayerResult.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage build() {
        de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage result = new de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerResult_ = playerResult_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasPlayerResult()) {
          
          return false;
        }
        if (!getPlayerResult().isInitialized()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 10: {
              de.pokerth.protocol.ProtoBuf.PlayerResult.Builder subBuilder = de.pokerth.protocol.ProtoBuf.PlayerResult.newBuilder();
              if (hasPlayerResult()) {
                subBuilder.mergeFrom(getPlayerResult());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setPlayerResult(subBuilder.buildPartial());
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required .PlayerResult playerResult = 1;
      private de.pokerth.protocol.ProtoBuf.PlayerResult playerResult_ = de.pokerth.protocol.ProtoBuf.PlayerResult.getDefaultInstance();
      public boolean hasPlayerResult() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public de.pokerth.protocol.ProtoBuf.PlayerResult getPlayerResult() {
        return playerResult_;
      }
      public Builder setPlayerResult(de.pokerth.protocol.ProtoBuf.PlayerResult value) {
        if (value == null) {
          throw new NullPointerException();
        }
        playerResult_ = value;
        
        bitField0_ |= 0x00000001;
        return this;
      }
      public Builder setPlayerResult(
          de.pokerth.protocol.ProtoBuf.PlayerResult.Builder builderForValue) {
        playerResult_ = builderForValue.build();
        
        bitField0_ |= 0x00000001;
        return this;
      }
      public Builder mergePlayerResult(de.pokerth.protocol.ProtoBuf.PlayerResult value) {
        if (((bitField0_ & 0x00000001) == 0x00000001) &&
            playerResult_ != de.pokerth.protocol.ProtoBuf.PlayerResult.getDefaultInstance()) {
          playerResult_ =
            de.pokerth.protocol.ProtoBuf.PlayerResult.newBuilder(playerResult_).mergeFrom(value).buildPartial();
        } else {
          playerResult_ = value;
        }
        
        bitField0_ |= 0x00000001;
        return this;
      }
      public Builder clearPlayerResult() {
        playerResult_ = de.pokerth.protocol.ProtoBuf.PlayerResult.getDefaultInstance();
        
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:AfterHandShowCardsMessage)
    }
    
    static {
      defaultInstance = new AfterHandShowCardsMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:AfterHandShowCardsMessage)
  }
  
  public interface EndOfGameMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 gameId = 1;
    boolean hasGameId();
    int getGameId();
    
    // required uint32 winnerPlayerId = 2;
    boolean hasWinnerPlayerId();
    int getWinnerPlayerId();
  }
  public static final class EndOfGameMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements EndOfGameMessageOrBuilder {
    // Use EndOfGameMessage.newBuilder() to construct.
    private EndOfGameMessage(Builder builder) {
      super(builder);
    }
    private EndOfGameMessage(boolean noInit) {}
    
    private static final EndOfGameMessage defaultInstance;
    public static EndOfGameMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public EndOfGameMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    private int bitField0_;
    // required uint32 gameId = 1;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getGameId() {
      return gameId_;
    }
    
    // required uint32 winnerPlayerId = 2;
    public static final int WINNERPLAYERID_FIELD_NUMBER = 2;
    private int winnerPlayerId_;
    public boolean hasWinnerPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public int getWinnerPlayerId() {
      return winnerPlayerId_;
    }
    
    private void initFields() {
      gameId_ = 0;
      winnerPlayerId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasWinnerPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, winnerPlayerId_);
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, winnerPlayerId_);
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.EndOfGameMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfGameMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfGameMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfGameMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfGameMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfGameMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfGameMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfGameMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfGameMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.EndOfGameMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.EndOfGameMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.EndOfGameMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.EndOfGameMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.EndOfGameMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        winnerPlayerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.EndOfGameMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.EndOfGameMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.EndOfGameMessage build() {
        de.pokerth.protocol.ProtoBuf.EndOfGameMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.EndOfGameMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.EndOfGameMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.EndOfGameMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.EndOfGameMessage result = new de.pokerth.protocol.ProtoBuf.EndOfGameMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.winnerPlayerId_ = winnerPlayerId_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasGameId()) {
          
          return false;
        }
        if (!hasWinnerPlayerId()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              winnerPlayerId_ = input.readUInt32();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 gameId = 1;
      private int gameId_ ;
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getGameId() {
        return gameId_;
      }
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }
      
      // required uint32 winnerPlayerId = 2;
      private int winnerPlayerId_ ;
      public boolean hasWinnerPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getWinnerPlayerId() {
        return winnerPlayerId_;
      }
      public Builder setWinnerPlayerId(int value) {
        bitField0_ |= 0x00000002;
        winnerPlayerId_ = value;
        
        return this;
      }
      public Builder clearWinnerPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        winnerPlayerId_ = 0;
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:EndOfGameMessage)
    }
    
    static {
      defaultInstance = new EndOfGameMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:EndOfGameMessage)
  }
  
  public interface PlayerIdChangedMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 oldPlayerId = 1;
    boolean hasOldPlayerId();
    int getOldPlayerId();
    
    // required uint32 newPlayerId = 2;
    boolean hasNewPlayerId();
    int getNewPlayerId();
  }
  public static final class PlayerIdChangedMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements PlayerIdChangedMessageOrBuilder {
    // Use PlayerIdChangedMessage.newBuilder() to construct.
    private PlayerIdChangedMessage(Builder builder) {
      super(builder);
    }
    private PlayerIdChangedMessage(boolean noInit) {}
    
    private static final PlayerIdChangedMessage defaultInstance;
    public static PlayerIdChangedMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public PlayerIdChangedMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    private int bitField0_;
    // required uint32 oldPlayerId = 1;
    public static final int OLDPLAYERID_FIELD_NUMBER = 1;
    private int oldPlayerId_;
    public boolean hasOldPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getOldPlayerId() {
      return oldPlayerId_;
    }
    
    // required uint32 newPlayerId = 2;
    public static final int NEWPLAYERID_FIELD_NUMBER = 2;
    private int newPlayerId_;
    public boolean hasNewPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public int getNewPlayerId() {
      return newPlayerId_;
    }
    
    private void initFields() {
      oldPlayerId_ = 0;
      newPlayerId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasOldPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasNewPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, oldPlayerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, newPlayerId_);
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, oldPlayerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, newPlayerId_);
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        oldPlayerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        newPlayerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage build() {
        de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage result = new de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.oldPlayerId_ = oldPlayerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.newPlayerId_ = newPlayerId_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasOldPlayerId()) {
          
          return false;
        }
        if (!hasNewPlayerId()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              oldPlayerId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              newPlayerId_ = input.readUInt32();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 oldPlayerId = 1;
      private int oldPlayerId_ ;
      public boolean hasOldPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getOldPlayerId() {
        return oldPlayerId_;
      }
      public Builder setOldPlayerId(int value) {
        bitField0_ |= 0x00000001;
        oldPlayerId_ = value;
        
        return this;
      }
      public Builder clearOldPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        oldPlayerId_ = 0;
        
        return this;
      }
      
      // required uint32 newPlayerId = 2;
      private int newPlayerId_ ;
      public boolean hasNewPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getNewPlayerId() {
        return newPlayerId_;
      }
      public Builder setNewPlayerId(int value) {
        bitField0_ |= 0x00000002;
        newPlayerId_ = value;
        
        return this;
      }
      public Builder clearNewPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        newPlayerId_ = 0;
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:PlayerIdChangedMessage)
    }
    
    static {
      defaultInstance = new PlayerIdChangedMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:PlayerIdChangedMessage)
  }
  
  public interface AskKickPlayerMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 gameId = 1;
    boolean hasGameId();
    int getGameId();
    
    // required uint32 playerId = 2;
    boolean hasPlayerId();
    int getPlayerId();
  }
  public static final class AskKickPlayerMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements AskKickPlayerMessageOrBuilder {
    // Use AskKickPlayerMessage.newBuilder() to construct.
    private AskKickPlayerMessage(Builder builder) {
      super(builder);
    }
    private AskKickPlayerMessage(boolean noInit) {}
    
    private static final AskKickPlayerMessage defaultInstance;
    public static AskKickPlayerMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public AskKickPlayerMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    private int bitField0_;
    // required uint32 gameId = 1;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getGameId() {
      return gameId_;
    }
    
    // required uint32 playerId = 2;
    public static final int PLAYERID_FIELD_NUMBER = 2;
    private int playerId_;
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public int getPlayerId() {
      return playerId_;
    }
    
    private void initFields() {
      gameId_ = 0;
      playerId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, playerId_);
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, playerId_);
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.AskKickPlayerMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage build() {
        de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage result = new de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.playerId_ = playerId_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasGameId()) {
          
          return false;
        }
        if (!hasPlayerId()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              playerId_ = input.readUInt32();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 gameId = 1;
      private int gameId_ ;
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getGameId() {
        return gameId_;
      }
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }
      
      // required uint32 playerId = 2;
      private int playerId_ ;
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getPlayerId() {
        return playerId_;
      }
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000002;
        playerId_ = value;
        
        return this;
      }
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId_ = 0;
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:AskKickPlayerMessage)
    }
    
    static {
      defaultInstance = new AskKickPlayerMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:AskKickPlayerMessage)
  }
  
  public interface AskKickDeniedMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 gameId = 1;
    boolean hasGameId();
    int getGameId();
    
    // required uint32 playerId = 2;
    boolean hasPlayerId();
    int getPlayerId();
    
    // required .AskKickDeniedMessage.KickDeniedReason kickDeniedReason = 3;
    boolean hasKickDeniedReason();
    de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.KickDeniedReason getKickDeniedReason();
  }
  public static final class AskKickDeniedMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements AskKickDeniedMessageOrBuilder {
    // Use AskKickDeniedMessage.newBuilder() to construct.
    private AskKickDeniedMessage(Builder builder) {
      super(builder);
    }
    private AskKickDeniedMessage(boolean noInit) {}
    
    private static final AskKickDeniedMessage defaultInstance;
    public static AskKickDeniedMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public AskKickDeniedMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public enum KickDeniedReason
        implements com.google.protobuf.Internal.EnumLite {
      kickDeniedInvalidGameState(0, 0),
      kickDeniedNotPossible(1, 1),
      kickDeniedTryAgainLater(2, 2),
      kickDeniedAlreadyInProgress(3, 3),
      kickDeniedInvalidPlayerId(4, 4),
      ;
      
      public static final int kickDeniedInvalidGameState_VALUE = 0;
      public static final int kickDeniedNotPossible_VALUE = 1;
      public static final int kickDeniedTryAgainLater_VALUE = 2;
      public static final int kickDeniedAlreadyInProgress_VALUE = 3;
      public static final int kickDeniedInvalidPlayerId_VALUE = 4;
      
      
      public final int getNumber() { return value; }
      
      public static KickDeniedReason valueOf(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 com.google.protobuf.Internal.EnumLiteMap<KickDeniedReason>
          internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<KickDeniedReason>() {
              public KickDeniedReason findValueByNumber(int number) {
                return KickDeniedReason.valueOf(number);
              }
            };
      
      private final int value;
      
      private KickDeniedReason(int index, int value) {
        this.value = value;
      }
      
      // @@protoc_insertion_point(enum_scope:AskKickDeniedMessage.KickDeniedReason)
    }
    
    private int bitField0_;
    // required uint32 gameId = 1;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getGameId() {
      return gameId_;
    }
    
    // required uint32 playerId = 2;
    public static final int PLAYERID_FIELD_NUMBER = 2;
    private int playerId_;
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public int getPlayerId() {
      return playerId_;
    }
    
    // required .AskKickDeniedMessage.KickDeniedReason kickDeniedReason = 3;
    public static final int KICKDENIEDREASON_FIELD_NUMBER = 3;
    private de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.KickDeniedReason kickDeniedReason_;
    public boolean hasKickDeniedReason() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    public de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.KickDeniedReason getKickDeniedReason() {
      return kickDeniedReason_;
    }
    
    private void initFields() {
      gameId_ = 0;
      playerId_ = 0;
      kickDeniedReason_ = de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.KickDeniedReason.kickDeniedInvalidGameState;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasKickDeniedReason()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeEnum(3, kickDeniedReason_.getNumber());
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, kickDeniedReason_.getNumber());
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.AskKickDeniedMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        kickDeniedReason_ = de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.KickDeniedReason.kickDeniedInvalidGameState;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage build() {
        de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage result = new de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.kickDeniedReason_ = kickDeniedReason_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasGameId()) {
          
          return false;
        }
        if (!hasPlayerId()) {
          
          return false;
        }
        if (!hasKickDeniedReason()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              playerId_ = input.readUInt32();
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.KickDeniedReason value = de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.KickDeniedReason.valueOf(rawValue);
              if (value != null) {
                bitField0_ |= 0x00000004;
                kickDeniedReason_ = value;
              }
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 gameId = 1;
      private int gameId_ ;
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getGameId() {
        return gameId_;
      }
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }
      
      // required uint32 playerId = 2;
      private int playerId_ ;
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getPlayerId() {
        return playerId_;
      }
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000002;
        playerId_ = value;
        
        return this;
      }
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId_ = 0;
        
        return this;
      }
      
      // required .AskKickDeniedMessage.KickDeniedReason kickDeniedReason = 3;
      private de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.KickDeniedReason kickDeniedReason_ = de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.KickDeniedReason.kickDeniedInvalidGameState;
      public boolean hasKickDeniedReason() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.KickDeniedReason getKickDeniedReason() {
        return kickDeniedReason_;
      }
      public Builder setKickDeniedReason(de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.KickDeniedReason value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        kickDeniedReason_ = value;
        
        return this;
      }
      public Builder clearKickDeniedReason() {
        bitField0_ = (bitField0_ & ~0x00000004);
        kickDeniedReason_ = de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.KickDeniedReason.kickDeniedInvalidGameState;
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:AskKickDeniedMessage)
    }
    
    static {
      defaultInstance = new AskKickDeniedMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:AskKickDeniedMessage)
  }
  
  public interface StartKickPetitionMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 gameId = 1;
    boolean hasGameId();
    int getGameId();
    
    // required uint32 petitionId = 2;
    boolean hasPetitionId();
    int getPetitionId();
    
    // required uint32 proposingPlayerId = 3;
    boolean hasProposingPlayerId();
    int getProposingPlayerId();
    
    // required uint32 kickPlayerId = 4;
    boolean hasKickPlayerId();
    int getKickPlayerId();
    
    // required uint32 kickTimeoutSec = 5;
    boolean hasKickTimeoutSec();
    int getKickTimeoutSec();
    
    // required uint32 numVotesNeededToKick = 6;
    boolean hasNumVotesNeededToKick();
    int getNumVotesNeededToKick();
  }
  public static final class StartKickPetitionMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements StartKickPetitionMessageOrBuilder {
    // Use StartKickPetitionMessage.newBuilder() to construct.
    private StartKickPetitionMessage(Builder builder) {
      super(builder);
    }
    private StartKickPetitionMessage(boolean noInit) {}
    
    private static final StartKickPetitionMessage defaultInstance;
    public static StartKickPetitionMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public StartKickPetitionMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    private int bitField0_;
    // required uint32 gameId = 1;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getGameId() {
      return gameId_;
    }
    
    // required uint32 petitionId = 2;
    public static final int PETITIONID_FIELD_NUMBER = 2;
    private int petitionId_;
    public boolean hasPetitionId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public int getPetitionId() {
      return petitionId_;
    }
    
    // required uint32 proposingPlayerId = 3;
    public static final int PROPOSINGPLAYERID_FIELD_NUMBER = 3;
    private int proposingPlayerId_;
    public boolean hasProposingPlayerId() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    public int getProposingPlayerId() {
      return proposingPlayerId_;
    }
    
    // required uint32 kickPlayerId = 4;
    public static final int KICKPLAYERID_FIELD_NUMBER = 4;
    private int kickPlayerId_;
    public boolean hasKickPlayerId() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    public int getKickPlayerId() {
      return kickPlayerId_;
    }
    
    // required uint32 kickTimeoutSec = 5;
    public static final int KICKTIMEOUTSEC_FIELD_NUMBER = 5;
    private int kickTimeoutSec_;
    public boolean hasKickTimeoutSec() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    public int getKickTimeoutSec() {
      return kickTimeoutSec_;
    }
    
    // required uint32 numVotesNeededToKick = 6;
    public static final int NUMVOTESNEEDEDTOKICK_FIELD_NUMBER = 6;
    private int numVotesNeededToKick_;
    public boolean hasNumVotesNeededToKick() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    public int getNumVotesNeededToKick() {
      return numVotesNeededToKick_;
    }
    
    private void initFields() {
      gameId_ = 0;
      petitionId_ = 0;
      proposingPlayerId_ = 0;
      kickPlayerId_ = 0;
      kickTimeoutSec_ = 0;
      numVotesNeededToKick_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      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;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, petitionId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, proposingPlayerId_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(4, kickPlayerId_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeUInt32(5, kickTimeoutSec_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeUInt32(6, numVotesNeededToKick_);
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, petitionId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, proposingPlayerId_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, kickPlayerId_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, kickTimeoutSec_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(6, numVotesNeededToKick_);
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.StartKickPetitionMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        petitionId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        proposingPlayerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        kickPlayerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        kickTimeoutSec_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        numVotesNeededToKick_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage build() {
        de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage result = new de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.petitionId_ = petitionId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.proposingPlayerId_ = proposingPlayerId_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.kickPlayerId_ = kickPlayerId_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.kickTimeoutSec_ = kickTimeoutSec_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.numVotesNeededToKick_ = numVotesNeededToKick_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      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;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              petitionId_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              proposingPlayerId_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              kickPlayerId_ = input.readUInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              kickTimeoutSec_ = input.readUInt32();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              numVotesNeededToKick_ = input.readUInt32();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 gameId = 1;
      private int gameId_ ;
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getGameId() {
        return gameId_;
      }
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }
      
      // required uint32 petitionId = 2;
      private int petitionId_ ;
      public boolean hasPetitionId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getPetitionId() {
        return petitionId_;
      }
      public Builder setPetitionId(int value) {
        bitField0_ |= 0x00000002;
        petitionId_ = value;
        
        return this;
      }
      public Builder clearPetitionId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        petitionId_ = 0;
        
        return this;
      }
      
      // required uint32 proposingPlayerId = 3;
      private int proposingPlayerId_ ;
      public boolean hasProposingPlayerId() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public int getProposingPlayerId() {
        return proposingPlayerId_;
      }
      public Builder setProposingPlayerId(int value) {
        bitField0_ |= 0x00000004;
        proposingPlayerId_ = value;
        
        return this;
      }
      public Builder clearProposingPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000004);
        proposingPlayerId_ = 0;
        
        return this;
      }
      
      // required uint32 kickPlayerId = 4;
      private int kickPlayerId_ ;
      public boolean hasKickPlayerId() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      public int getKickPlayerId() {
        return kickPlayerId_;
      }
      public Builder setKickPlayerId(int value) {
        bitField0_ |= 0x00000008;
        kickPlayerId_ = value;
        
        return this;
      }
      public Builder clearKickPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000008);
        kickPlayerId_ = 0;
        
        return this;
      }
      
      // required uint32 kickTimeoutSec = 5;
      private int kickTimeoutSec_ ;
      public boolean hasKickTimeoutSec() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      public int getKickTimeoutSec() {
        return kickTimeoutSec_;
      }
      public Builder setKickTimeoutSec(int value) {
        bitField0_ |= 0x00000010;
        kickTimeoutSec_ = value;
        
        return this;
      }
      public Builder clearKickTimeoutSec() {
        bitField0_ = (bitField0_ & ~0x00000010);
        kickTimeoutSec_ = 0;
        
        return this;
      }
      
      // required uint32 numVotesNeededToKick = 6;
      private int numVotesNeededToKick_ ;
      public boolean hasNumVotesNeededToKick() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      public int getNumVotesNeededToKick() {
        return numVotesNeededToKick_;
      }
      public Builder setNumVotesNeededToKick(int value) {
        bitField0_ |= 0x00000020;
        numVotesNeededToKick_ = value;
        
        return this;
      }
      public Builder clearNumVotesNeededToKick() {
        bitField0_ = (bitField0_ & ~0x00000020);
        numVotesNeededToKick_ = 0;
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:StartKickPetitionMessage)
    }
    
    static {
      defaultInstance = new StartKickPetitionMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:StartKickPetitionMessage)
  }
  
  public interface VoteKickRequestMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 gameId = 1;
    boolean hasGameId();
    int getGameId();
    
    // required uint32 petitionId = 2;
    boolean hasPetitionId();
    int getPetitionId();
    
    // required bool voteKick = 3;
    boolean hasVoteKick();
    boolean getVoteKick();
  }
  public static final class VoteKickRequestMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements VoteKickRequestMessageOrBuilder {
    // Use VoteKickRequestMessage.newBuilder() to construct.
    private VoteKickRequestMessage(Builder builder) {
      super(builder);
    }
    private VoteKickRequestMessage(boolean noInit) {}
    
    private static final VoteKickRequestMessage defaultInstance;
    public static VoteKickRequestMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public VoteKickRequestMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    private int bitField0_;
    // required uint32 gameId = 1;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getGameId() {
      return gameId_;
    }
    
    // required uint32 petitionId = 2;
    public static final int PETITIONID_FIELD_NUMBER = 2;
    private int petitionId_;
    public boolean hasPetitionId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public int getPetitionId() {
      return petitionId_;
    }
    
    // required bool voteKick = 3;
    public static final int VOTEKICK_FIELD_NUMBER = 3;
    private boolean voteKick_;
    public boolean hasVoteKick() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    public boolean getVoteKick() {
      return voteKick_;
    }
    
    private void initFields() {
      gameId_ = 0;
      petitionId_ = 0;
      voteKick_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPetitionId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasVoteKick()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, petitionId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBool(3, voteKick_);
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, petitionId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, voteKick_);
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.VoteKickRequestMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        petitionId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        voteKick_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage build() {
        de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage result = new de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.petitionId_ = petitionId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.voteKick_ = voteKick_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasGameId()) {
          
          return false;
        }
        if (!hasPetitionId()) {
          
          return false;
        }
        if (!hasVoteKick()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              petitionId_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              voteKick_ = input.readBool();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 gameId = 1;
      private int gameId_ ;
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getGameId() {
        return gameId_;
      }
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }
      
      // required uint32 petitionId = 2;
      private int petitionId_ ;
      public boolean hasPetitionId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getPetitionId() {
        return petitionId_;
      }
      public Builder setPetitionId(int value) {
        bitField0_ |= 0x00000002;
        petitionId_ = value;
        
        return this;
      }
      public Builder clearPetitionId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        petitionId_ = 0;
        
        return this;
      }
      
      // required bool voteKick = 3;
      private boolean voteKick_ ;
      public boolean hasVoteKick() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public boolean getVoteKick() {
        return voteKick_;
      }
      public Builder setVoteKick(boolean value) {
        bitField0_ |= 0x00000004;
        voteKick_ = value;
        
        return this;
      }
      public Builder clearVoteKick() {
        bitField0_ = (bitField0_ & ~0x00000004);
        voteKick_ = false;
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:VoteKickRequestMessage)
    }
    
    static {
      defaultInstance = new VoteKickRequestMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:VoteKickRequestMessage)
  }
  
  public interface VoteKickReplyMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 gameId = 1;
    boolean hasGameId();
    int getGameId();
    
    // required uint32 petitionId = 2;
    boolean hasPetitionId();
    int getPetitionId();
    
    // required .VoteKickReplyMessage.VoteKickReplyType voteKickReplyType = 3;
    boolean hasVoteKickReplyType();
    de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.VoteKickReplyType getVoteKickReplyType();
  }
  public static final class VoteKickReplyMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements VoteKickReplyMessageOrBuilder {
    // Use VoteKickReplyMessage.newBuilder() to construct.
    private VoteKickReplyMessage(Builder builder) {
      super(builder);
    }
    private VoteKickReplyMessage(boolean noInit) {}
    
    private static final VoteKickReplyMessage defaultInstance;
    public static VoteKickReplyMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public VoteKickReplyMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public enum VoteKickReplyType
        implements com.google.protobuf.Internal.EnumLite {
      voteKickAck(0, 0),
      voteKickDeniedInvalid(1, 1),
      voteKickDeniedAlreadyVoted(2, 2),
      ;
      
      public static final int voteKickAck_VALUE = 0;
      public static final int voteKickDeniedInvalid_VALUE = 1;
      public static final int voteKickDeniedAlreadyVoted_VALUE = 2;
      
      
      public final int getNumber() { return value; }
      
      public static VoteKickReplyType valueOf(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 com.google.protobuf.Internal.EnumLiteMap<VoteKickReplyType>
          internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<VoteKickReplyType>() {
              public VoteKickReplyType findValueByNumber(int number) {
                return VoteKickReplyType.valueOf(number);
              }
            };
      
      private final int value;
      
      private VoteKickReplyType(int index, int value) {
        this.value = value;
      }
      
      // @@protoc_insertion_point(enum_scope:VoteKickReplyMessage.VoteKickReplyType)
    }
    
    private int bitField0_;
    // required uint32 gameId = 1;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getGameId() {
      return gameId_;
    }
    
    // required uint32 petitionId = 2;
    public static final int PETITIONID_FIELD_NUMBER = 2;
    private int petitionId_;
    public boolean hasPetitionId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public int getPetitionId() {
      return petitionId_;
    }
    
    // required .VoteKickReplyMessage.VoteKickReplyType voteKickReplyType = 3;
    public static final int VOTEKICKREPLYTYPE_FIELD_NUMBER = 3;
    private de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.VoteKickReplyType voteKickReplyType_;
    public boolean hasVoteKickReplyType() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    public de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.VoteKickReplyType getVoteKickReplyType() {
      return voteKickReplyType_;
    }
    
    private void initFields() {
      gameId_ = 0;
      petitionId_ = 0;
      voteKickReplyType_ = de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.VoteKickReplyType.voteKickAck;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPetitionId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasVoteKickReplyType()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, petitionId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeEnum(3, voteKickReplyType_.getNumber());
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, petitionId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, voteKickReplyType_.getNumber());
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.VoteKickReplyMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        petitionId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        voteKickReplyType_ = de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.VoteKickReplyType.voteKickAck;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage build() {
        de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage result = new de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.petitionId_ = petitionId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.voteKickReplyType_ = voteKickReplyType_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasGameId()) {
          
          return false;
        }
        if (!hasPetitionId()) {
          
          return false;
        }
        if (!hasVoteKickReplyType()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              petitionId_ = input.readUInt32();
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.VoteKickReplyType value = de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.VoteKickReplyType.valueOf(rawValue);
              if (value != null) {
                bitField0_ |= 0x00000004;
                voteKickReplyType_ = value;
              }
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 gameId = 1;
      private int gameId_ ;
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getGameId() {
        return gameId_;
      }
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }
      
      // required uint32 petitionId = 2;
      private int petitionId_ ;
      public boolean hasPetitionId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getPetitionId() {
        return petitionId_;
      }
      public Builder setPetitionId(int value) {
        bitField0_ |= 0x00000002;
        petitionId_ = value;
        
        return this;
      }
      public Builder clearPetitionId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        petitionId_ = 0;
        
        return this;
      }
      
      // required .VoteKickReplyMessage.VoteKickReplyType voteKickReplyType = 3;
      private de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.VoteKickReplyType voteKickReplyType_ = de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.VoteKickReplyType.voteKickAck;
      public boolean hasVoteKickReplyType() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.VoteKickReplyType getVoteKickReplyType() {
        return voteKickReplyType_;
      }
      public Builder setVoteKickReplyType(de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.VoteKickReplyType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        voteKickReplyType_ = value;
        
        return this;
      }
      public Builder clearVoteKickReplyType() {
        bitField0_ = (bitField0_ & ~0x00000004);
        voteKickReplyType_ = de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.VoteKickReplyType.voteKickAck;
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:VoteKickReplyMessage)
    }
    
    static {
      defaultInstance = new VoteKickReplyMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:VoteKickReplyMessage)
  }
  
  public interface KickPetitionUpdateMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 gameId = 1;
    boolean hasGameId();
    int getGameId();
    
    // required uint32 petitionId = 2;
    boolean hasPetitionId();
    int getPetitionId();
    
    // required uint32 numVotesAgainstKicking = 3;
    boolean hasNumVotesAgainstKicking();
    int getNumVotesAgainstKicking();
    
    // required uint32 numVotesInFavourOfKicking = 4;
    boolean hasNumVotesInFavourOfKicking();
    int getNumVotesInFavourOfKicking();
    
    // required uint32 numVotesNeededToKick = 5;
    boolean hasNumVotesNeededToKick();
    int getNumVotesNeededToKick();
  }
  public static final class KickPetitionUpdateMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements KickPetitionUpdateMessageOrBuilder {
    // Use KickPetitionUpdateMessage.newBuilder() to construct.
    private KickPetitionUpdateMessage(Builder builder) {
      super(builder);
    }
    private KickPetitionUpdateMessage(boolean noInit) {}
    
    private static final KickPetitionUpdateMessage defaultInstance;
    public static KickPetitionUpdateMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public KickPetitionUpdateMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    private int bitField0_;
    // required uint32 gameId = 1;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getGameId() {
      return gameId_;
    }
    
    // required uint32 petitionId = 2;
    public static final int PETITIONID_FIELD_NUMBER = 2;
    private int petitionId_;
    public boolean hasPetitionId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public int getPetitionId() {
      return petitionId_;
    }
    
    // required uint32 numVotesAgainstKicking = 3;
    public static final int NUMVOTESAGAINSTKICKING_FIELD_NUMBER = 3;
    private int numVotesAgainstKicking_;
    public boolean hasNumVotesAgainstKicking() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    public int getNumVotesAgainstKicking() {
      return numVotesAgainstKicking_;
    }
    
    // required uint32 numVotesInFavourOfKicking = 4;
    public static final int NUMVOTESINFAVOUROFKICKING_FIELD_NUMBER = 4;
    private int numVotesInFavourOfKicking_;
    public boolean hasNumVotesInFavourOfKicking() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    public int getNumVotesInFavourOfKicking() {
      return numVotesInFavourOfKicking_;
    }
    
    // required uint32 numVotesNeededToKick = 5;
    public static final int NUMVOTESNEEDEDTOKICK_FIELD_NUMBER = 5;
    private int numVotesNeededToKick_;
    public boolean hasNumVotesNeededToKick() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    public int getNumVotesNeededToKick() {
      return numVotesNeededToKick_;
    }
    
    private void initFields() {
      gameId_ = 0;
      petitionId_ = 0;
      numVotesAgainstKicking_ = 0;
      numVotesInFavourOfKicking_ = 0;
      numVotesNeededToKick_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      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;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, petitionId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, numVotesAgainstKicking_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(4, numVotesInFavourOfKicking_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeUInt32(5, numVotesNeededToKick_);
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, petitionId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, numVotesAgainstKicking_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, numVotesInFavourOfKicking_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, numVotesNeededToKick_);
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        petitionId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        numVotesAgainstKicking_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        numVotesInFavourOfKicking_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        numVotesNeededToKick_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage build() {
        de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage result = new de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.petitionId_ = petitionId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.numVotesAgainstKicking_ = numVotesAgainstKicking_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.numVotesInFavourOfKicking_ = numVotesInFavourOfKicking_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.numVotesNeededToKick_ = numVotesNeededToKick_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      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;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              petitionId_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              numVotesAgainstKicking_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              numVotesInFavourOfKicking_ = input.readUInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              numVotesNeededToKick_ = input.readUInt32();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 gameId = 1;
      private int gameId_ ;
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getGameId() {
        return gameId_;
      }
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }
      
      // required uint32 petitionId = 2;
      private int petitionId_ ;
      public boolean hasPetitionId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getPetitionId() {
        return petitionId_;
      }
      public Builder setPetitionId(int value) {
        bitField0_ |= 0x00000002;
        petitionId_ = value;
        
        return this;
      }
      public Builder clearPetitionId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        petitionId_ = 0;
        
        return this;
      }
      
      // required uint32 numVotesAgainstKicking = 3;
      private int numVotesAgainstKicking_ ;
      public boolean hasNumVotesAgainstKicking() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public int getNumVotesAgainstKicking() {
        return numVotesAgainstKicking_;
      }
      public Builder setNumVotesAgainstKicking(int value) {
        bitField0_ |= 0x00000004;
        numVotesAgainstKicking_ = value;
        
        return this;
      }
      public Builder clearNumVotesAgainstKicking() {
        bitField0_ = (bitField0_ & ~0x00000004);
        numVotesAgainstKicking_ = 0;
        
        return this;
      }
      
      // required uint32 numVotesInFavourOfKicking = 4;
      private int numVotesInFavourOfKicking_ ;
      public boolean hasNumVotesInFavourOfKicking() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      public int getNumVotesInFavourOfKicking() {
        return numVotesInFavourOfKicking_;
      }
      public Builder setNumVotesInFavourOfKicking(int value) {
        bitField0_ |= 0x00000008;
        numVotesInFavourOfKicking_ = value;
        
        return this;
      }
      public Builder clearNumVotesInFavourOfKicking() {
        bitField0_ = (bitField0_ & ~0x00000008);
        numVotesInFavourOfKicking_ = 0;
        
        return this;
      }
      
      // required uint32 numVotesNeededToKick = 5;
      private int numVotesNeededToKick_ ;
      public boolean hasNumVotesNeededToKick() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      public int getNumVotesNeededToKick() {
        return numVotesNeededToKick_;
      }
      public Builder setNumVotesNeededToKick(int value) {
        bitField0_ |= 0x00000010;
        numVotesNeededToKick_ = value;
        
        return this;
      }
      public Builder clearNumVotesNeededToKick() {
        bitField0_ = (bitField0_ & ~0x00000010);
        numVotesNeededToKick_ = 0;
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:KickPetitionUpdateMessage)
    }
    
    static {
      defaultInstance = new KickPetitionUpdateMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:KickPetitionUpdateMessage)
  }
  
  public interface EndKickPetitionMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 gameId = 1;
    boolean hasGameId();
    int getGameId();
    
    // required uint32 petitionId = 2;
    boolean hasPetitionId();
    int getPetitionId();
    
    // required uint32 numVotesAgainstKicking = 3;
    boolean hasNumVotesAgainstKicking();
    int getNumVotesAgainstKicking();
    
    // required uint32 numVotesInFavourOfKicking = 4;
    boolean hasNumVotesInFavourOfKicking();
    int getNumVotesInFavourOfKicking();
    
    // required uint32 resultPlayerKicked = 5;
    boolean hasResultPlayerKicked();
    int getResultPlayerKicked();
    
    // required .EndKickPetitionMessage.PetitionEndReason petitionEndReason = 6;
    boolean hasPetitionEndReason();
    de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.PetitionEndReason getPetitionEndReason();
  }
  public static final class EndKickPetitionMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements EndKickPetitionMessageOrBuilder {
    // Use EndKickPetitionMessage.newBuilder() to construct.
    private EndKickPetitionMessage(Builder builder) {
      super(builder);
    }
    private EndKickPetitionMessage(boolean noInit) {}
    
    private static final EndKickPetitionMessage defaultInstance;
    public static EndKickPetitionMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public EndKickPetitionMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public enum PetitionEndReason
        implements com.google.protobuf.Internal.EnumLite {
      petitionEndEnoughVotes(0, 0),
      petitionEndTooFewPlayers(1, 1),
      petitionEndPlayerLeft(2, 2),
      petitionEndTimeout(3, 3),
      ;
      
      public static final int petitionEndEnoughVotes_VALUE = 0;
      public static final int petitionEndTooFewPlayers_VALUE = 1;
      public static final int petitionEndPlayerLeft_VALUE = 2;
      public static final int petitionEndTimeout_VALUE = 3;
      
      
      public final int getNumber() { return value; }
      
      public static PetitionEndReason valueOf(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 com.google.protobuf.Internal.EnumLiteMap<PetitionEndReason>
          internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<PetitionEndReason>() {
              public PetitionEndReason findValueByNumber(int number) {
                return PetitionEndReason.valueOf(number);
              }
            };
      
      private final int value;
      
      private PetitionEndReason(int index, int value) {
        this.value = value;
      }
      
      // @@protoc_insertion_point(enum_scope:EndKickPetitionMessage.PetitionEndReason)
    }
    
    private int bitField0_;
    // required uint32 gameId = 1;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getGameId() {
      return gameId_;
    }
    
    // required uint32 petitionId = 2;
    public static final int PETITIONID_FIELD_NUMBER = 2;
    private int petitionId_;
    public boolean hasPetitionId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public int getPetitionId() {
      return petitionId_;
    }
    
    // required uint32 numVotesAgainstKicking = 3;
    public static final int NUMVOTESAGAINSTKICKING_FIELD_NUMBER = 3;
    private int numVotesAgainstKicking_;
    public boolean hasNumVotesAgainstKicking() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    public int getNumVotesAgainstKicking() {
      return numVotesAgainstKicking_;
    }
    
    // required uint32 numVotesInFavourOfKicking = 4;
    public static final int NUMVOTESINFAVOUROFKICKING_FIELD_NUMBER = 4;
    private int numVotesInFavourOfKicking_;
    public boolean hasNumVotesInFavourOfKicking() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    public int getNumVotesInFavourOfKicking() {
      return numVotesInFavourOfKicking_;
    }
    
    // required uint32 resultPlayerKicked = 5;
    public static final int RESULTPLAYERKICKED_FIELD_NUMBER = 5;
    private int resultPlayerKicked_;
    public boolean hasResultPlayerKicked() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    public int getResultPlayerKicked() {
      return resultPlayerKicked_;
    }
    
    // required .EndKickPetitionMessage.PetitionEndReason petitionEndReason = 6;
    public static final int PETITIONENDREASON_FIELD_NUMBER = 6;
    private de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.PetitionEndReason petitionEndReason_;
    public boolean hasPetitionEndReason() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    public de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.PetitionEndReason getPetitionEndReason() {
      return petitionEndReason_;
    }
    
    private void initFields() {
      gameId_ = 0;
      petitionId_ = 0;
      numVotesAgainstKicking_ = 0;
      numVotesInFavourOfKicking_ = 0;
      resultPlayerKicked_ = 0;
      petitionEndReason_ = de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.PetitionEndReason.petitionEndEnoughVotes;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      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;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, petitionId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, numVotesAgainstKicking_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(4, numVotesInFavourOfKicking_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeUInt32(5, resultPlayerKicked_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeEnum(6, petitionEndReason_.getNumber());
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, petitionId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, numVotesAgainstKicking_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, numVotesInFavourOfKicking_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, resultPlayerKicked_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(6, petitionEndReason_.getNumber());
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.EndKickPetitionMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        petitionId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        numVotesAgainstKicking_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        numVotesInFavourOfKicking_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        resultPlayerKicked_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        petitionEndReason_ = de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.PetitionEndReason.petitionEndEnoughVotes;
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage build() {
        de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage result = new de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.petitionId_ = petitionId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.numVotesAgainstKicking_ = numVotesAgainstKicking_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.numVotesInFavourOfKicking_ = numVotesInFavourOfKicking_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.resultPlayerKicked_ = resultPlayerKicked_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.petitionEndReason_ = petitionEndReason_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      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;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              petitionId_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              numVotesAgainstKicking_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              numVotesInFavourOfKicking_ = input.readUInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              resultPlayerKicked_ = input.readUInt32();
              break;
            }
            case 48: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.PetitionEndReason value = de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.PetitionEndReason.valueOf(rawValue);
              if (value != null) {
                bitField0_ |= 0x00000020;
                petitionEndReason_ = value;
              }
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 gameId = 1;
      private int gameId_ ;
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getGameId() {
        return gameId_;
      }
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }
      
      // required uint32 petitionId = 2;
      private int petitionId_ ;
      public boolean hasPetitionId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getPetitionId() {
        return petitionId_;
      }
      public Builder setPetitionId(int value) {
        bitField0_ |= 0x00000002;
        petitionId_ = value;
        
        return this;
      }
      public Builder clearPetitionId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        petitionId_ = 0;
        
        return this;
      }
      
      // required uint32 numVotesAgainstKicking = 3;
      private int numVotesAgainstKicking_ ;
      public boolean hasNumVotesAgainstKicking() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public int getNumVotesAgainstKicking() {
        return numVotesAgainstKicking_;
      }
      public Builder setNumVotesAgainstKicking(int value) {
        bitField0_ |= 0x00000004;
        numVotesAgainstKicking_ = value;
        
        return this;
      }
      public Builder clearNumVotesAgainstKicking() {
        bitField0_ = (bitField0_ & ~0x00000004);
        numVotesAgainstKicking_ = 0;
        
        return this;
      }
      
      // required uint32 numVotesInFavourOfKicking = 4;
      private int numVotesInFavourOfKicking_ ;
      public boolean hasNumVotesInFavourOfKicking() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      public int getNumVotesInFavourOfKicking() {
        return numVotesInFavourOfKicking_;
      }
      public Builder setNumVotesInFavourOfKicking(int value) {
        bitField0_ |= 0x00000008;
        numVotesInFavourOfKicking_ = value;
        
        return this;
      }
      public Builder clearNumVotesInFavourOfKicking() {
        bitField0_ = (bitField0_ & ~0x00000008);
        numVotesInFavourOfKicking_ = 0;
        
        return this;
      }
      
      // required uint32 resultPlayerKicked = 5;
      private int resultPlayerKicked_ ;
      public boolean hasResultPlayerKicked() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      public int getResultPlayerKicked() {
        return resultPlayerKicked_;
      }
      public Builder setResultPlayerKicked(int value) {
        bitField0_ |= 0x00000010;
        resultPlayerKicked_ = value;
        
        return this;
      }
      public Builder clearResultPlayerKicked() {
        bitField0_ = (bitField0_ & ~0x00000010);
        resultPlayerKicked_ = 0;
        
        return this;
      }
      
      // required .EndKickPetitionMessage.PetitionEndReason petitionEndReason = 6;
      private de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.PetitionEndReason petitionEndReason_ = de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.PetitionEndReason.petitionEndEnoughVotes;
      public boolean hasPetitionEndReason() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      public de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.PetitionEndReason getPetitionEndReason() {
        return petitionEndReason_;
      }
      public Builder setPetitionEndReason(de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.PetitionEndReason value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000020;
        petitionEndReason_ = value;
        
        return this;
      }
      public Builder clearPetitionEndReason() {
        bitField0_ = (bitField0_ & ~0x00000020);
        petitionEndReason_ = de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.PetitionEndReason.petitionEndEnoughVotes;
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:EndKickPetitionMessage)
    }
    
    static {
      defaultInstance = new EndKickPetitionMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:EndKickPetitionMessage)
  }
  
  public interface StatisticsMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // repeated .StatisticsMessage.StatisticsData statisticsData = 1;
    java.util.List<de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData> 
        getStatisticsDataList();
    de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData getStatisticsData(int index);
    int getStatisticsDataCount();
  }
  public static final class StatisticsMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements StatisticsMessageOrBuilder {
    // Use StatisticsMessage.newBuilder() to construct.
    private StatisticsMessage(Builder builder) {
      super(builder);
    }
    private StatisticsMessage(boolean noInit) {}
    
    private static final StatisticsMessage defaultInstance;
    public static StatisticsMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public StatisticsMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public interface StatisticsDataOrBuilder
        extends com.google.protobuf.MessageLiteOrBuilder {
      
      // required .StatisticsMessage.StatisticsData.StatisticsType statisticsType = 1;
      boolean hasStatisticsType();
      de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.StatisticsType getStatisticsType();
      
      // required uint32 statisticsValue = 2;
      boolean hasStatisticsValue();
      int getStatisticsValue();
    }
    public static final class StatisticsData extends
        com.google.protobuf.GeneratedMessageLite
        implements StatisticsDataOrBuilder {
      // Use StatisticsData.newBuilder() to construct.
      private StatisticsData(Builder builder) {
        super(builder);
      }
      private StatisticsData(boolean noInit) {}
      
      private static final StatisticsData defaultInstance;
      public static StatisticsData getDefaultInstance() {
        return defaultInstance;
      }
      
      public StatisticsData getDefaultInstanceForType() {
        return defaultInstance;
      }
      
      public enum StatisticsType
          implements com.google.protobuf.Internal.EnumLite {
        statNumberOfPlayers(0, 1),
        ;
        
        public static final int statNumberOfPlayers_VALUE = 1;
        
        
        public final int getNumber() { return value; }
        
        public static StatisticsType valueOf(int value) {
          switch (value) {
            case 1: return statNumberOfPlayers;
            default: return null;
          }
        }
        
        public static com.google.protobuf.Internal.EnumLiteMap<StatisticsType>
            internalGetValueMap() {
          return internalValueMap;
        }
        private static com.google.protobuf.Internal.EnumLiteMap<StatisticsType>
            internalValueMap =
              new com.google.protobuf.Internal.EnumLiteMap<StatisticsType>() {
                public StatisticsType findValueByNumber(int number) {
                  return StatisticsType.valueOf(number);
                }
              };
        
        private final int value;
        
        private StatisticsType(int index, int value) {
          this.value = value;
        }
        
        // @@protoc_insertion_point(enum_scope:StatisticsMessage.StatisticsData.StatisticsType)
      }
      
      private int bitField0_;
      // required .StatisticsMessage.StatisticsData.StatisticsType statisticsType = 1;
      public static final int STATISTICSTYPE_FIELD_NUMBER = 1;
      private de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.StatisticsType statisticsType_;
      public boolean hasStatisticsType() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.StatisticsType getStatisticsType() {
        return statisticsType_;
      }
      
      // required uint32 statisticsValue = 2;
      public static final int STATISTICSVALUE_FIELD_NUMBER = 2;
      private int statisticsValue_;
      public boolean hasStatisticsValue() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getStatisticsValue() {
        return statisticsValue_;
      }
      
      private void initFields() {
        statisticsType_ = de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.StatisticsType.statNumberOfPlayers;
        statisticsValue_ = 0;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized != -1) return isInitialized == 1;
        
        if (!hasStatisticsType()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!hasStatisticsValue()) {
          memoizedIsInitialized = 0;
          return false;
        }
        memoizedIsInitialized = 1;
        return true;
      }
      
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeEnum(1, statisticsType_.getNumber());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeUInt32(2, statisticsValue_);
        }
      }
      
      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
      
        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeEnumSize(1, statisticsType_.getNumber());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(2, statisticsValue_);
        }
        memoizedSerializedSize = size;
        return size;
      }
      
      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }
      
      public static de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      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 newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      public static de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      
      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }
      
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData, Builder>
          implements de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsDataOrBuilder {
        // Construct using de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }
        
        private void maybeForceBuilderInitialization() {
        }
        private static Builder create() {
          return new Builder();
        }
        
        public Builder clear() {
          super.clear();
          statisticsType_ = de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.StatisticsType.statNumberOfPlayers;
          bitField0_ = (bitField0_ & ~0x00000001);
          statisticsValue_ = 0;
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }
        
        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }
        
        public de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData getDefaultInstanceForType() {
          return de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.getDefaultInstance();
        }
        
        public de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData build() {
          de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
        
        private de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData buildParsed()
            throws com.google.protobuf.InvalidProtocolBufferException {
          de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(
              result).asInvalidProtocolBufferException();
          }
          return result;
        }
        
        public de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData buildPartial() {
          de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData result = new de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.statisticsType_ = statisticsType_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.statisticsValue_ = statisticsValue_;
          result.bitField0_ = to_bitField0_;
          return result;
        }
        
        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());
          }
          return this;
        }
        
        public final boolean isInitialized() {
          if (!hasStatisticsType()) {
            
            return false;
          }
          if (!hasStatisticsValue()) {
            
            return false;
          }
          return true;
        }
        
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          while (true) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                
                return this;
              default: {
                if (!parseUnknownField(input, extensionRegistry, tag)) {
                  
                  return this;
                }
                break;
              }
              case 8: {
                int rawValue = input.readEnum();
                de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.StatisticsType value = de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.StatisticsType.valueOf(rawValue);
                if (value != null) {
                  bitField0_ |= 0x00000001;
                  statisticsType_ = value;
                }
                break;
              }
              case 16: {
                bitField0_ |= 0x00000002;
                statisticsValue_ = input.readUInt32();
                break;
              }
            }
          }
        }
        
        private int bitField0_;
        
        // required .StatisticsMessage.StatisticsData.StatisticsType statisticsType = 1;
        private de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.StatisticsType statisticsType_ = de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.StatisticsType.statNumberOfPlayers;
        public boolean hasStatisticsType() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        public de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.StatisticsType getStatisticsType() {
          return statisticsType_;
        }
        public Builder setStatisticsType(de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.StatisticsType value) {
          if (value == null) {
            throw new NullPointerException();
          }
          bitField0_ |= 0x00000001;
          statisticsType_ = value;
          
          return this;
        }
        public Builder clearStatisticsType() {
          bitField0_ = (bitField0_ & ~0x00000001);
          statisticsType_ = de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.StatisticsType.statNumberOfPlayers;
          
          return this;
        }
        
        // required uint32 statisticsValue = 2;
        private int statisticsValue_ ;
        public boolean hasStatisticsValue() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        public int getStatisticsValue() {
          return statisticsValue_;
        }
        public Builder setStatisticsValue(int value) {
          bitField0_ |= 0x00000002;
          statisticsValue_ = value;
          
          return this;
        }
        public Builder clearStatisticsValue() {
          bitField0_ = (bitField0_ & ~0x00000002);
          statisticsValue_ = 0;
          
          return this;
        }
        
        // @@protoc_insertion_point(builder_scope:StatisticsMessage.StatisticsData)
      }
      
      static {
        defaultInstance = new StatisticsData(true);
        defaultInstance.initFields();
      }
      
      // @@protoc_insertion_point(class_scope:StatisticsMessage.StatisticsData)
    }
    
    // repeated .StatisticsMessage.StatisticsData statisticsData = 1;
    public static final int STATISTICSDATA_FIELD_NUMBER = 1;
    private java.util.List<de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData> statisticsData_;
    public java.util.List<de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData> getStatisticsDataList() {
      return statisticsData_;
    }
    public java.util.List<? extends de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsDataOrBuilder> 
        getStatisticsDataOrBuilderList() {
      return statisticsData_;
    }
    public int getStatisticsDataCount() {
      return statisticsData_.size();
    }
    public de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData getStatisticsData(int index) {
      return statisticsData_.get(index);
    }
    public de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsDataOrBuilder getStatisticsDataOrBuilder(
        int index) {
      return statisticsData_.get(index);
    }
    
    private void initFields() {
      statisticsData_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      for (int i = 0; i < getStatisticsDataCount(); i++) {
        if (!getStatisticsData(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      for (int i = 0; i < statisticsData_.size(); i++) {
        output.writeMessage(1, statisticsData_.get(i));
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      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));
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.StatisticsMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.StatisticsMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.StatisticsMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.StatisticsMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.StatisticsMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.StatisticsMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.StatisticsMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.StatisticsMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.StatisticsMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.StatisticsMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.StatisticsMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.StatisticsMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.StatisticsMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.StatisticsMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        statisticsData_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.StatisticsMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.StatisticsMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.StatisticsMessage build() {
        de.pokerth.protocol.ProtoBuf.StatisticsMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.StatisticsMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.StatisticsMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.StatisticsMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.StatisticsMessage result = new de.pokerth.protocol.ProtoBuf.StatisticsMessage(this);
        int from_bitField0_ = bitField0_;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          statisticsData_ = java.util.Collections.unmodifiableList(statisticsData_);
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.statisticsData_ = statisticsData_;
        return result;
      }
      
      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.StatisticsMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.StatisticsMessage.getDefaultInstance()) return this;
        if (!other.statisticsData_.isEmpty()) {
          if (statisticsData_.isEmpty()) {
            statisticsData_ = other.statisticsData_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureStatisticsDataIsMutable();
            statisticsData_.addAll(other.statisticsData_);
          }
          
        }
        return this;
      }
      
      public final boolean isInitialized() {
        for (int i = 0; i < getStatisticsDataCount(); i++) {
          if (!getStatisticsData(i).isInitialized()) {
            
            return false;
          }
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 10: {
              de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.Builder subBuilder = de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.newBuilder();
              input.readMessage(subBuilder, extensionRegistry);
              addStatisticsData(subBuilder.buildPartial());
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // repeated .StatisticsMessage.StatisticsData statisticsData = 1;
      private java.util.List<de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData> statisticsData_ =
        java.util.Collections.emptyList();
      private void ensureStatisticsDataIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          statisticsData_ = new java.util.ArrayList<de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData>(statisticsData_);
          bitField0_ |= 0x00000001;
         }
      }
      
      public java.util.List<de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData> getStatisticsDataList() {
        return java.util.Collections.unmodifiableList(statisticsData_);
      }
      public int getStatisticsDataCount() {
        return statisticsData_.size();
      }
      public de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData getStatisticsData(int index) {
        return statisticsData_.get(index);
      }
      public Builder setStatisticsData(
          int index, de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureStatisticsDataIsMutable();
        statisticsData_.set(index, value);
        
        return this;
      }
      public Builder setStatisticsData(
          int index, de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.Builder builderForValue) {
        ensureStatisticsDataIsMutable();
        statisticsData_.set(index, builderForValue.build());
        
        return this;
      }
      public Builder addStatisticsData(de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureStatisticsDataIsMutable();
        statisticsData_.add(value);
        
        return this;
      }
      public Builder addStatisticsData(
          int index, de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureStatisticsDataIsMutable();
        statisticsData_.add(index, value);
        
        return this;
      }
      public Builder addStatisticsData(
          de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.Builder builderForValue) {
        ensureStatisticsDataIsMutable();
        statisticsData_.add(builderForValue.build());
        
        return this;
      }
      public Builder addStatisticsData(
          int index, de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData.Builder builderForValue) {
        ensureStatisticsDataIsMutable();
        statisticsData_.add(index, builderForValue.build());
        
        return this;
      }
      public Builder addAllStatisticsData(
          java.lang.Iterable<? extends de.pokerth.protocol.ProtoBuf.StatisticsMessage.StatisticsData> values) {
        ensureStatisticsDataIsMutable();
        super.addAll(values, statisticsData_);
        
        return this;
      }
      public Builder clearStatisticsData() {
        statisticsData_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
        
        return this;
      }
      public Builder removeStatisticsData(int index) {
        ensureStatisticsDataIsMutable();
        statisticsData_.remove(index);
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:StatisticsMessage)
    }
    
    static {
      defaultInstance = new StatisticsMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:StatisticsMessage)
  }
  
  public interface ChatRequestMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // optional uint32 targetGameId = 1;
    boolean hasTargetGameId();
    int getTargetGameId();
    
    // optional uint32 targetPlayerId = 2;
    boolean hasTargetPlayerId();
    int getTargetPlayerId();
    
    // required string chatText = 3;
    boolean hasChatText();
    String getChatText();
  }
  public static final class ChatRequestMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements ChatRequestMessageOrBuilder {
    // Use ChatRequestMessage.newBuilder() to construct.
    private ChatRequestMessage(Builder builder) {
      super(builder);
    }
    private ChatRequestMessage(boolean noInit) {}
    
    private static final ChatRequestMessage defaultInstance;
    public static ChatRequestMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public ChatRequestMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    private int bitField0_;
    // optional uint32 targetGameId = 1;
    public static final int TARGETGAMEID_FIELD_NUMBER = 1;
    private int targetGameId_;
    public boolean hasTargetGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getTargetGameId() {
      return targetGameId_;
    }
    
    // optional uint32 targetPlayerId = 2;
    public static final int TARGETPLAYERID_FIELD_NUMBER = 2;
    private int targetPlayerId_;
    public boolean hasTargetPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public int getTargetPlayerId() {
      return targetPlayerId_;
    }
    
    // required string chatText = 3;
    public static final int CHATTEXT_FIELD_NUMBER = 3;
    private java.lang.Object chatText_;
    public boolean hasChatText() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    public String getChatText() {
      java.lang.Object ref = chatText_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
          chatText_ = s;
        }
        return s;
      }
    }
    private com.google.protobuf.ByteString getChatTextBytes() {
      java.lang.Object ref = chatText_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
        chatText_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    
    private void initFields() {
      targetGameId_ = 0;
      targetPlayerId_ = 0;
      chatText_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasChatText()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, targetGameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, targetPlayerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(3, getChatTextBytes());
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, targetGameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, targetPlayerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, getChatTextBytes());
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.ChatRequestMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ChatRequestMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ChatRequestMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ChatRequestMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ChatRequestMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ChatRequestMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ChatRequestMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.ChatRequestMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.ChatRequestMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ChatRequestMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.ChatRequestMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.ChatRequestMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.ChatRequestMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.ChatRequestMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        targetGameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        targetPlayerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        chatText_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.ChatRequestMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.ChatRequestMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.ChatRequestMessage build() {
        de.pokerth.protocol.ProtoBuf.ChatRequestMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.ChatRequestMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.ChatRequestMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.ChatRequestMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.ChatRequestMessage result = new de.pokerth.protocol.ProtoBuf.ChatRequestMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.targetGameId_ = targetGameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.targetPlayerId_ = targetPlayerId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.chatText_ = chatText_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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()) {
          setChatText(other.getChatText());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasChatText()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              targetGameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              targetPlayerId_ = input.readUInt32();
              break;
            }
            case 26: {
              bitField0_ |= 0x00000004;
              chatText_ = input.readBytes();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // optional uint32 targetGameId = 1;
      private int targetGameId_ ;
      public boolean hasTargetGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getTargetGameId() {
        return targetGameId_;
      }
      public Builder setTargetGameId(int value) {
        bitField0_ |= 0x00000001;
        targetGameId_ = value;
        
        return this;
      }
      public Builder clearTargetGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        targetGameId_ = 0;
        
        return this;
      }
      
      // optional uint32 targetPlayerId = 2;
      private int targetPlayerId_ ;
      public boolean hasTargetPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getTargetPlayerId() {
        return targetPlayerId_;
      }
      public Builder setTargetPlayerId(int value) {
        bitField0_ |= 0x00000002;
        targetPlayerId_ = value;
        
        return this;
      }
      public Builder clearTargetPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        targetPlayerId_ = 0;
        
        return this;
      }
      
      // required string chatText = 3;
      private java.lang.Object chatText_ = "";
      public boolean hasChatText() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public String getChatText() {
        java.lang.Object ref = chatText_;
        if (!(ref instanceof String)) {
          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
          chatText_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      public Builder setChatText(String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        chatText_ = value;
        
        return this;
      }
      public Builder clearChatText() {
        bitField0_ = (bitField0_ & ~0x00000004);
        chatText_ = getDefaultInstance().getChatText();
        
        return this;
      }
      void setChatText(com.google.protobuf.ByteString value) {
        bitField0_ |= 0x00000004;
        chatText_ = value;
        
      }
      
      // @@protoc_insertion_point(builder_scope:ChatRequestMessage)
    }
    
    static {
      defaultInstance = new ChatRequestMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:ChatRequestMessage)
  }
  
  public interface ChatMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // optional uint32 gameId = 1;
    boolean hasGameId();
    int getGameId();
    
    // optional uint32 playerId = 2;
    boolean hasPlayerId();
    int getPlayerId();
    
    // required .ChatMessage.ChatType chatType = 3;
    boolean hasChatType();
    de.pokerth.protocol.ProtoBuf.ChatMessage.ChatType getChatType();
    
    // required string chatText = 4;
    boolean hasChatText();
    String getChatText();
  }
  public static final class ChatMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements ChatMessageOrBuilder {
    // Use ChatMessage.newBuilder() to construct.
    private ChatMessage(Builder builder) {
      super(builder);
    }
    private ChatMessage(boolean noInit) {}
    
    private static final ChatMessage defaultInstance;
    public static ChatMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public ChatMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public enum ChatType
        implements com.google.protobuf.Internal.EnumLite {
      chatTypeLobby(0, 0),
      chatTypeGame(1, 1),
      chatTypeBot(2, 2),
      chatTypeBroadcast(3, 3),
      chatTypePrivate(4, 4),
      ;
      
      public static final int chatTypeLobby_VALUE = 0;
      public static final int chatTypeGame_VALUE = 1;
      public static final int chatTypeBot_VALUE = 2;
      public static final int chatTypeBroadcast_VALUE = 3;
      public static final int chatTypePrivate_VALUE = 4;
      
      
      public final int getNumber() { return value; }
      
      public static ChatType valueOf(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 com.google.protobuf.Internal.EnumLiteMap<ChatType>
          internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<ChatType>() {
              public ChatType findValueByNumber(int number) {
                return ChatType.valueOf(number);
              }
            };
      
      private final int value;
      
      private ChatType(int index, int value) {
        this.value = value;
      }
      
      // @@protoc_insertion_point(enum_scope:ChatMessage.ChatType)
    }
    
    private int bitField0_;
    // optional uint32 gameId = 1;
    public static final int GAMEID_FIELD_NUMBER = 1;
    private int gameId_;
    public boolean hasGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getGameId() {
      return gameId_;
    }
    
    // optional uint32 playerId = 2;
    public static final int PLAYERID_FIELD_NUMBER = 2;
    private int playerId_;
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public int getPlayerId() {
      return playerId_;
    }
    
    // required .ChatMessage.ChatType chatType = 3;
    public static final int CHATTYPE_FIELD_NUMBER = 3;
    private de.pokerth.protocol.ProtoBuf.ChatMessage.ChatType chatType_;
    public boolean hasChatType() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    public de.pokerth.protocol.ProtoBuf.ChatMessage.ChatType getChatType() {
      return chatType_;
    }
    
    // required string chatText = 4;
    public static final int CHATTEXT_FIELD_NUMBER = 4;
    private java.lang.Object chatText_;
    public boolean hasChatText() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    public String getChatText() {
      java.lang.Object ref = chatText_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
          chatText_ = s;
        }
        return s;
      }
    }
    private com.google.protobuf.ByteString getChatTextBytes() {
      java.lang.Object ref = chatText_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
        chatText_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    
    private void initFields() {
      gameId_ = 0;
      playerId_ = 0;
      chatType_ = de.pokerth.protocol.ProtoBuf.ChatMessage.ChatType.chatTypeLobby;
      chatText_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasChatType()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasChatText()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeEnum(3, chatType_.getNumber());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBytes(4, getChatTextBytes());
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, gameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, chatType_.getNumber());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(4, getChatTextBytes());
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.ChatMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ChatMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ChatMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ChatMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ChatMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ChatMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ChatMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.ChatMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.ChatMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ChatMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.ChatMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.ChatMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.ChatMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.ChatMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        gameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        chatType_ = de.pokerth.protocol.ProtoBuf.ChatMessage.ChatType.chatTypeLobby;
        bitField0_ = (bitField0_ & ~0x00000004);
        chatText_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.ChatMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.ChatMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.ChatMessage build() {
        de.pokerth.protocol.ProtoBuf.ChatMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.ChatMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.ChatMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.ChatMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.ChatMessage result = new de.pokerth.protocol.ProtoBuf.ChatMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gameId_ = gameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.chatType_ = chatType_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.chatText_ = chatText_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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()) {
          setChatText(other.getChatText());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasChatType()) {
          
          return false;
        }
        if (!hasChatText()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              gameId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              playerId_ = input.readUInt32();
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.ChatMessage.ChatType value = de.pokerth.protocol.ProtoBuf.ChatMessage.ChatType.valueOf(rawValue);
              if (value != null) {
                bitField0_ |= 0x00000004;
                chatType_ = value;
              }
              break;
            }
            case 34: {
              bitField0_ |= 0x00000008;
              chatText_ = input.readBytes();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // optional uint32 gameId = 1;
      private int gameId_ ;
      public boolean hasGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getGameId() {
        return gameId_;
      }
      public Builder setGameId(int value) {
        bitField0_ |= 0x00000001;
        gameId_ = value;
        
        return this;
      }
      public Builder clearGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gameId_ = 0;
        
        return this;
      }
      
      // optional uint32 playerId = 2;
      private int playerId_ ;
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getPlayerId() {
        return playerId_;
      }
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000002;
        playerId_ = value;
        
        return this;
      }
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId_ = 0;
        
        return this;
      }
      
      // required .ChatMessage.ChatType chatType = 3;
      private de.pokerth.protocol.ProtoBuf.ChatMessage.ChatType chatType_ = de.pokerth.protocol.ProtoBuf.ChatMessage.ChatType.chatTypeLobby;
      public boolean hasChatType() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public de.pokerth.protocol.ProtoBuf.ChatMessage.ChatType getChatType() {
        return chatType_;
      }
      public Builder setChatType(de.pokerth.protocol.ProtoBuf.ChatMessage.ChatType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        chatType_ = value;
        
        return this;
      }
      public Builder clearChatType() {
        bitField0_ = (bitField0_ & ~0x00000004);
        chatType_ = de.pokerth.protocol.ProtoBuf.ChatMessage.ChatType.chatTypeLobby;
        
        return this;
      }
      
      // required string chatText = 4;
      private java.lang.Object chatText_ = "";
      public boolean hasChatText() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      public String getChatText() {
        java.lang.Object ref = chatText_;
        if (!(ref instanceof String)) {
          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
          chatText_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      public Builder setChatText(String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        chatText_ = value;
        
        return this;
      }
      public Builder clearChatText() {
        bitField0_ = (bitField0_ & ~0x00000008);
        chatText_ = getDefaultInstance().getChatText();
        
        return this;
      }
      void setChatText(com.google.protobuf.ByteString value) {
        bitField0_ |= 0x00000008;
        chatText_ = value;
        
      }
      
      // @@protoc_insertion_point(builder_scope:ChatMessage)
    }
    
    static {
      defaultInstance = new ChatMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:ChatMessage)
  }
  
  public interface ChatRejectMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required string chatText = 1;
    boolean hasChatText();
    String getChatText();
  }
  public static final class ChatRejectMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements ChatRejectMessageOrBuilder {
    // Use ChatRejectMessage.newBuilder() to construct.
    private ChatRejectMessage(Builder builder) {
      super(builder);
    }
    private ChatRejectMessage(boolean noInit) {}
    
    private static final ChatRejectMessage defaultInstance;
    public static ChatRejectMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public ChatRejectMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    private int bitField0_;
    // required string chatText = 1;
    public static final int CHATTEXT_FIELD_NUMBER = 1;
    private java.lang.Object chatText_;
    public boolean hasChatText() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public String getChatText() {
      java.lang.Object ref = chatText_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
          chatText_ = s;
        }
        return s;
      }
    }
    private com.google.protobuf.ByteString getChatTextBytes() {
      java.lang.Object ref = chatText_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
        chatText_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    
    private void initFields() {
      chatText_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasChatText()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getChatTextBytes());
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, getChatTextBytes());
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.ChatRejectMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ChatRejectMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ChatRejectMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ChatRejectMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ChatRejectMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ChatRejectMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ChatRejectMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.ChatRejectMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.ChatRejectMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ChatRejectMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.ChatRejectMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.ChatRejectMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.ChatRejectMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.ChatRejectMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        chatText_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.ChatRejectMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.ChatRejectMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.ChatRejectMessage build() {
        de.pokerth.protocol.ProtoBuf.ChatRejectMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.ChatRejectMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.ChatRejectMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.ChatRejectMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.ChatRejectMessage result = new de.pokerth.protocol.ProtoBuf.ChatRejectMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.chatText_ = chatText_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.ChatRejectMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.ChatRejectMessage.getDefaultInstance()) return this;
        if (other.hasChatText()) {
          setChatText(other.getChatText());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasChatText()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              chatText_ = input.readBytes();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required string chatText = 1;
      private java.lang.Object chatText_ = "";
      public boolean hasChatText() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public String getChatText() {
        java.lang.Object ref = chatText_;
        if (!(ref instanceof String)) {
          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
          chatText_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      public Builder setChatText(String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        chatText_ = value;
        
        return this;
      }
      public Builder clearChatText() {
        bitField0_ = (bitField0_ & ~0x00000001);
        chatText_ = getDefaultInstance().getChatText();
        
        return this;
      }
      void setChatText(com.google.protobuf.ByteString value) {
        bitField0_ |= 0x00000001;
        chatText_ = value;
        
      }
      
      // @@protoc_insertion_point(builder_scope:ChatRejectMessage)
    }
    
    static {
      defaultInstance = new ChatRejectMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:ChatRejectMessage)
  }
  
  public interface DialogMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required string notificationText = 1;
    boolean hasNotificationText();
    String getNotificationText();
  }
  public static final class DialogMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements DialogMessageOrBuilder {
    // Use DialogMessage.newBuilder() to construct.
    private DialogMessage(Builder builder) {
      super(builder);
    }
    private DialogMessage(boolean noInit) {}
    
    private static final DialogMessage defaultInstance;
    public static DialogMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public DialogMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    private int bitField0_;
    // required string notificationText = 1;
    public static final int NOTIFICATIONTEXT_FIELD_NUMBER = 1;
    private java.lang.Object notificationText_;
    public boolean hasNotificationText() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public String getNotificationText() {
      java.lang.Object ref = notificationText_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
          notificationText_ = s;
        }
        return s;
      }
    }
    private com.google.protobuf.ByteString getNotificationTextBytes() {
      java.lang.Object ref = notificationText_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
        notificationText_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    
    private void initFields() {
      notificationText_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasNotificationText()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getNotificationTextBytes());
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, getNotificationTextBytes());
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.DialogMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.DialogMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.DialogMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.DialogMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.DialogMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.DialogMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.DialogMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.DialogMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.DialogMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.DialogMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.DialogMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.DialogMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.DialogMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.DialogMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        notificationText_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.DialogMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.DialogMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.DialogMessage build() {
        de.pokerth.protocol.ProtoBuf.DialogMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.DialogMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.DialogMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.DialogMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.DialogMessage result = new de.pokerth.protocol.ProtoBuf.DialogMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.notificationText_ = notificationText_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.DialogMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.DialogMessage.getDefaultInstance()) return this;
        if (other.hasNotificationText()) {
          setNotificationText(other.getNotificationText());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasNotificationText()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              notificationText_ = input.readBytes();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required string notificationText = 1;
      private java.lang.Object notificationText_ = "";
      public boolean hasNotificationText() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public String getNotificationText() {
        java.lang.Object ref = notificationText_;
        if (!(ref instanceof String)) {
          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
          notificationText_ = s;
          return s;
        } else {
          return (String) ref;
        }
      }
      public Builder setNotificationText(String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        notificationText_ = value;
        
        return this;
      }
      public Builder clearNotificationText() {
        bitField0_ = (bitField0_ & ~0x00000001);
        notificationText_ = getDefaultInstance().getNotificationText();
        
        return this;
      }
      void setNotificationText(com.google.protobuf.ByteString value) {
        bitField0_ |= 0x00000001;
        notificationText_ = value;
        
      }
      
      // @@protoc_insertion_point(builder_scope:DialogMessage)
    }
    
    static {
      defaultInstance = new DialogMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:DialogMessage)
  }
  
  public interface TimeoutWarningMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required .TimeoutWarningMessage.TimeoutReason timeoutReason = 1;
    boolean hasTimeoutReason();
    de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.TimeoutReason getTimeoutReason();
    
    // required uint32 remainingSeconds = 2;
    boolean hasRemainingSeconds();
    int getRemainingSeconds();
  }
  public static final class TimeoutWarningMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements TimeoutWarningMessageOrBuilder {
    // Use TimeoutWarningMessage.newBuilder() to construct.
    private TimeoutWarningMessage(Builder builder) {
      super(builder);
    }
    private TimeoutWarningMessage(boolean noInit) {}
    
    private static final TimeoutWarningMessage defaultInstance;
    public static TimeoutWarningMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public TimeoutWarningMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public enum TimeoutReason
        implements com.google.protobuf.Internal.EnumLite {
      timeoutNoDataReceived(0, 0),
      timeoutInactiveGame(1, 1),
      timeoutKickAfterAutofold(2, 2),
      ;
      
      public static final int timeoutNoDataReceived_VALUE = 0;
      public static final int timeoutInactiveGame_VALUE = 1;
      public static final int timeoutKickAfterAutofold_VALUE = 2;
      
      
      public final int getNumber() { return value; }
      
      public static TimeoutReason valueOf(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 com.google.protobuf.Internal.EnumLiteMap<TimeoutReason>
          internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<TimeoutReason>() {
              public TimeoutReason findValueByNumber(int number) {
                return TimeoutReason.valueOf(number);
              }
            };
      
      private final int value;
      
      private TimeoutReason(int index, int value) {
        this.value = value;
      }
      
      // @@protoc_insertion_point(enum_scope:TimeoutWarningMessage.TimeoutReason)
    }
    
    private int bitField0_;
    // required .TimeoutWarningMessage.TimeoutReason timeoutReason = 1;
    public static final int TIMEOUTREASON_FIELD_NUMBER = 1;
    private de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.TimeoutReason timeoutReason_;
    public boolean hasTimeoutReason() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.TimeoutReason getTimeoutReason() {
      return timeoutReason_;
    }
    
    // required uint32 remainingSeconds = 2;
    public static final int REMAININGSECONDS_FIELD_NUMBER = 2;
    private int remainingSeconds_;
    public boolean hasRemainingSeconds() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public int getRemainingSeconds() {
      return remainingSeconds_;
    }
    
    private void initFields() {
      timeoutReason_ = de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.TimeoutReason.timeoutNoDataReceived;
      remainingSeconds_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasTimeoutReason()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasRemainingSeconds()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeEnum(1, timeoutReason_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, remainingSeconds_);
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, timeoutReason_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, remainingSeconds_);
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.TimeoutWarningMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        timeoutReason_ = de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.TimeoutReason.timeoutNoDataReceived;
        bitField0_ = (bitField0_ & ~0x00000001);
        remainingSeconds_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage build() {
        de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage result = new de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.timeoutReason_ = timeoutReason_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.remainingSeconds_ = remainingSeconds_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasTimeoutReason()) {
          
          return false;
        }
        if (!hasRemainingSeconds()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.TimeoutReason value = de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.TimeoutReason.valueOf(rawValue);
              if (value != null) {
                bitField0_ |= 0x00000001;
                timeoutReason_ = value;
              }
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              remainingSeconds_ = input.readUInt32();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required .TimeoutWarningMessage.TimeoutReason timeoutReason = 1;
      private de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.TimeoutReason timeoutReason_ = de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.TimeoutReason.timeoutNoDataReceived;
      public boolean hasTimeoutReason() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.TimeoutReason getTimeoutReason() {
        return timeoutReason_;
      }
      public Builder setTimeoutReason(de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.TimeoutReason value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        timeoutReason_ = value;
        
        return this;
      }
      public Builder clearTimeoutReason() {
        bitField0_ = (bitField0_ & ~0x00000001);
        timeoutReason_ = de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.TimeoutReason.timeoutNoDataReceived;
        
        return this;
      }
      
      // required uint32 remainingSeconds = 2;
      private int remainingSeconds_ ;
      public boolean hasRemainingSeconds() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public int getRemainingSeconds() {
        return remainingSeconds_;
      }
      public Builder setRemainingSeconds(int value) {
        bitField0_ |= 0x00000002;
        remainingSeconds_ = value;
        
        return this;
      }
      public Builder clearRemainingSeconds() {
        bitField0_ = (bitField0_ & ~0x00000002);
        remainingSeconds_ = 0;
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:TimeoutWarningMessage)
    }
    
    static {
      defaultInstance = new TimeoutWarningMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:TimeoutWarningMessage)
  }
  
  public interface ResetTimeoutMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
  }
  public static final class ResetTimeoutMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements ResetTimeoutMessageOrBuilder {
    // Use ResetTimeoutMessage.newBuilder() to construct.
    private ResetTimeoutMessage(Builder builder) {
      super(builder);
    }
    private ResetTimeoutMessage(boolean noInit) {}
    
    private static final ResetTimeoutMessage defaultInstance;
    public static ResetTimeoutMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public ResetTimeoutMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    private void initFields() {
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.ResetTimeoutMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage build() {
        de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage result = new de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage(this);
        return result;
      }
      
      public Builder mergeFrom(de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage other) {
        if (other == de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage.getDefaultInstance()) return this;
        return this;
      }
      
      public final boolean isInitialized() {
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
          }
        }
      }
      
      
      // @@protoc_insertion_point(builder_scope:ResetTimeoutMessage)
    }
    
    static {
      defaultInstance = new ResetTimeoutMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:ResetTimeoutMessage)
  }
  
  public interface ReportAvatarMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 reportedPlayerId = 1;
    boolean hasReportedPlayerId();
    int getReportedPlayerId();
    
    // required bytes reportedAvatarHash = 2;
    boolean hasReportedAvatarHash();
    com.google.protobuf.ByteString getReportedAvatarHash();
  }
  public static final class ReportAvatarMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements ReportAvatarMessageOrBuilder {
    // Use ReportAvatarMessage.newBuilder() to construct.
    private ReportAvatarMessage(Builder builder) {
      super(builder);
    }
    private ReportAvatarMessage(boolean noInit) {}
    
    private static final ReportAvatarMessage defaultInstance;
    public static ReportAvatarMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public ReportAvatarMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    private int bitField0_;
    // required uint32 reportedPlayerId = 1;
    public static final int REPORTEDPLAYERID_FIELD_NUMBER = 1;
    private int reportedPlayerId_;
    public boolean hasReportedPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getReportedPlayerId() {
      return reportedPlayerId_;
    }
    
    // required bytes reportedAvatarHash = 2;
    public static final int REPORTEDAVATARHASH_FIELD_NUMBER = 2;
    private com.google.protobuf.ByteString reportedAvatarHash_;
    public boolean hasReportedAvatarHash() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public com.google.protobuf.ByteString getReportedAvatarHash() {
      return reportedAvatarHash_;
    }
    
    private void initFields() {
      reportedPlayerId_ = 0;
      reportedAvatarHash_ = com.google.protobuf.ByteString.EMPTY;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasReportedPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasReportedAvatarHash()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, reportedPlayerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, reportedAvatarHash_);
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, reportedPlayerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, reportedAvatarHash_);
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.ReportAvatarMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ReportAvatarMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ReportAvatarMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ReportAvatarMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ReportAvatarMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ReportAvatarMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ReportAvatarMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.ReportAvatarMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.ReportAvatarMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ReportAvatarMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.ReportAvatarMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.ReportAvatarMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.ReportAvatarMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.ReportAvatarMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        reportedPlayerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        reportedAvatarHash_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.ReportAvatarMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.ReportAvatarMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.ReportAvatarMessage build() {
        de.pokerth.protocol.ProtoBuf.ReportAvatarMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.ReportAvatarMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.ReportAvatarMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.ReportAvatarMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.ReportAvatarMessage result = new de.pokerth.protocol.ProtoBuf.ReportAvatarMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.reportedPlayerId_ = reportedPlayerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.reportedAvatarHash_ = reportedAvatarHash_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasReportedPlayerId()) {
          
          return false;
        }
        if (!hasReportedAvatarHash()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              reportedPlayerId_ = input.readUInt32();
              break;
            }
            case 18: {
              bitField0_ |= 0x00000002;
              reportedAvatarHash_ = input.readBytes();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 reportedPlayerId = 1;
      private int reportedPlayerId_ ;
      public boolean hasReportedPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getReportedPlayerId() {
        return reportedPlayerId_;
      }
      public Builder setReportedPlayerId(int value) {
        bitField0_ |= 0x00000001;
        reportedPlayerId_ = value;
        
        return this;
      }
      public Builder clearReportedPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        reportedPlayerId_ = 0;
        
        return this;
      }
      
      // required bytes reportedAvatarHash = 2;
      private com.google.protobuf.ByteString reportedAvatarHash_ = com.google.protobuf.ByteString.EMPTY;
      public boolean hasReportedAvatarHash() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public com.google.protobuf.ByteString getReportedAvatarHash() {
        return reportedAvatarHash_;
      }
      public Builder setReportedAvatarHash(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        reportedAvatarHash_ = value;
        
        return this;
      }
      public Builder clearReportedAvatarHash() {
        bitField0_ = (bitField0_ & ~0x00000002);
        reportedAvatarHash_ = getDefaultInstance().getReportedAvatarHash();
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:ReportAvatarMessage)
    }
    
    static {
      defaultInstance = new ReportAvatarMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:ReportAvatarMessage)
  }
  
  public interface ReportAvatarAckMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 reportedPlayerId = 1;
    boolean hasReportedPlayerId();
    int getReportedPlayerId();
    
    // required .ReportAvatarAckMessage.ReportAvatarResult reportAvatarResult = 2;
    boolean hasReportAvatarResult();
    de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.ReportAvatarResult getReportAvatarResult();
  }
  public static final class ReportAvatarAckMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements ReportAvatarAckMessageOrBuilder {
    // Use ReportAvatarAckMessage.newBuilder() to construct.
    private ReportAvatarAckMessage(Builder builder) {
      super(builder);
    }
    private ReportAvatarAckMessage(boolean noInit) {}
    
    private static final ReportAvatarAckMessage defaultInstance;
    public static ReportAvatarAckMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public ReportAvatarAckMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public enum ReportAvatarResult
        implements com.google.protobuf.Internal.EnumLite {
      avatarReportAccepted(0, 0),
      avatarReportDuplicate(1, 1),
      avatarReportInvalid(2, 2),
      ;
      
      public static final int avatarReportAccepted_VALUE = 0;
      public static final int avatarReportDuplicate_VALUE = 1;
      public static final int avatarReportInvalid_VALUE = 2;
      
      
      public final int getNumber() { return value; }
      
      public static ReportAvatarResult valueOf(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 com.google.protobuf.Internal.EnumLiteMap<ReportAvatarResult>
          internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<ReportAvatarResult>() {
              public ReportAvatarResult findValueByNumber(int number) {
                return ReportAvatarResult.valueOf(number);
              }
            };
      
      private final int value;
      
      private ReportAvatarResult(int index, int value) {
        this.value = value;
      }
      
      // @@protoc_insertion_point(enum_scope:ReportAvatarAckMessage.ReportAvatarResult)
    }
    
    private int bitField0_;
    // required uint32 reportedPlayerId = 1;
    public static final int REPORTEDPLAYERID_FIELD_NUMBER = 1;
    private int reportedPlayerId_;
    public boolean hasReportedPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getReportedPlayerId() {
      return reportedPlayerId_;
    }
    
    // required .ReportAvatarAckMessage.ReportAvatarResult reportAvatarResult = 2;
    public static final int REPORTAVATARRESULT_FIELD_NUMBER = 2;
    private de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.ReportAvatarResult reportAvatarResult_;
    public boolean hasReportAvatarResult() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.ReportAvatarResult getReportAvatarResult() {
      return reportAvatarResult_;
    }
    
    private void initFields() {
      reportedPlayerId_ = 0;
      reportAvatarResult_ = de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.ReportAvatarResult.avatarReportAccepted;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasReportedPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasReportAvatarResult()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, reportedPlayerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeEnum(2, reportAvatarResult_.getNumber());
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, reportedPlayerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, reportAvatarResult_.getNumber());
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        reportedPlayerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        reportAvatarResult_ = de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.ReportAvatarResult.avatarReportAccepted;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage build() {
        de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage result = new de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.reportedPlayerId_ = reportedPlayerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.reportAvatarResult_ = reportAvatarResult_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasReportedPlayerId()) {
          
          return false;
        }
        if (!hasReportAvatarResult()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              reportedPlayerId_ = input.readUInt32();
              break;
            }
            case 16: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.ReportAvatarResult value = de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.ReportAvatarResult.valueOf(rawValue);
              if (value != null) {
                bitField0_ |= 0x00000002;
                reportAvatarResult_ = value;
              }
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 reportedPlayerId = 1;
      private int reportedPlayerId_ ;
      public boolean hasReportedPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getReportedPlayerId() {
        return reportedPlayerId_;
      }
      public Builder setReportedPlayerId(int value) {
        bitField0_ |= 0x00000001;
        reportedPlayerId_ = value;
        
        return this;
      }
      public Builder clearReportedPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        reportedPlayerId_ = 0;
        
        return this;
      }
      
      // required .ReportAvatarAckMessage.ReportAvatarResult reportAvatarResult = 2;
      private de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.ReportAvatarResult reportAvatarResult_ = de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.ReportAvatarResult.avatarReportAccepted;
      public boolean hasReportAvatarResult() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.ReportAvatarResult getReportAvatarResult() {
        return reportAvatarResult_;
      }
      public Builder setReportAvatarResult(de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.ReportAvatarResult value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        reportAvatarResult_ = value;
        
        return this;
      }
      public Builder clearReportAvatarResult() {
        bitField0_ = (bitField0_ & ~0x00000002);
        reportAvatarResult_ = de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.ReportAvatarResult.avatarReportAccepted;
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:ReportAvatarAckMessage)
    }
    
    static {
      defaultInstance = new ReportAvatarAckMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:ReportAvatarAckMessage)
  }
  
  public interface ReportGameMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 reportedGameId = 1;
    boolean hasReportedGameId();
    int getReportedGameId();
  }
  public static final class ReportGameMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements ReportGameMessageOrBuilder {
    // Use ReportGameMessage.newBuilder() to construct.
    private ReportGameMessage(Builder builder) {
      super(builder);
    }
    private ReportGameMessage(boolean noInit) {}
    
    private static final ReportGameMessage defaultInstance;
    public static ReportGameMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public ReportGameMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    private int bitField0_;
    // required uint32 reportedGameId = 1;
    public static final int REPORTEDGAMEID_FIELD_NUMBER = 1;
    private int reportedGameId_;
    public boolean hasReportedGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getReportedGameId() {
      return reportedGameId_;
    }
    
    private void initFields() {
      reportedGameId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasReportedGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, reportedGameId_);
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, reportedGameId_);
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.ReportGameMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ReportGameMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ReportGameMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ReportGameMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ReportGameMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ReportGameMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ReportGameMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.ReportGameMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.ReportGameMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ReportGameMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.ReportGameMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.ReportGameMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.ReportGameMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.ReportGameMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        reportedGameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.ReportGameMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.ReportGameMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.ReportGameMessage build() {
        de.pokerth.protocol.ProtoBuf.ReportGameMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.ReportGameMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.ReportGameMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.ReportGameMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.ReportGameMessage result = new de.pokerth.protocol.ProtoBuf.ReportGameMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.reportedGameId_ = reportedGameId_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasReportedGameId()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              reportedGameId_ = input.readUInt32();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 reportedGameId = 1;
      private int reportedGameId_ ;
      public boolean hasReportedGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getReportedGameId() {
        return reportedGameId_;
      }
      public Builder setReportedGameId(int value) {
        bitField0_ |= 0x00000001;
        reportedGameId_ = value;
        
        return this;
      }
      public Builder clearReportedGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        reportedGameId_ = 0;
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:ReportGameMessage)
    }
    
    static {
      defaultInstance = new ReportGameMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:ReportGameMessage)
  }
  
  public interface ReportGameAckMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 reportedGameId = 1;
    boolean hasReportedGameId();
    int getReportedGameId();
    
    // required .ReportGameAckMessage.ReportGameResult reportGameResult = 2;
    boolean hasReportGameResult();
    de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.ReportGameResult getReportGameResult();
  }
  public static final class ReportGameAckMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements ReportGameAckMessageOrBuilder {
    // Use ReportGameAckMessage.newBuilder() to construct.
    private ReportGameAckMessage(Builder builder) {
      super(builder);
    }
    private ReportGameAckMessage(boolean noInit) {}
    
    private static final ReportGameAckMessage defaultInstance;
    public static ReportGameAckMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public ReportGameAckMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public enum ReportGameResult
        implements com.google.protobuf.Internal.EnumLite {
      gameReportAccepted(0, 0),
      gameReportDuplicate(1, 1),
      gameReportInvalid(2, 2),
      ;
      
      public static final int gameReportAccepted_VALUE = 0;
      public static final int gameReportDuplicate_VALUE = 1;
      public static final int gameReportInvalid_VALUE = 2;
      
      
      public final int getNumber() { return value; }
      
      public static ReportGameResult valueOf(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 com.google.protobuf.Internal.EnumLiteMap<ReportGameResult>
          internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<ReportGameResult>() {
              public ReportGameResult findValueByNumber(int number) {
                return ReportGameResult.valueOf(number);
              }
            };
      
      private final int value;
      
      private ReportGameResult(int index, int value) {
        this.value = value;
      }
      
      // @@protoc_insertion_point(enum_scope:ReportGameAckMessage.ReportGameResult)
    }
    
    private int bitField0_;
    // required uint32 reportedGameId = 1;
    public static final int REPORTEDGAMEID_FIELD_NUMBER = 1;
    private int reportedGameId_;
    public boolean hasReportedGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getReportedGameId() {
      return reportedGameId_;
    }
    
    // required .ReportGameAckMessage.ReportGameResult reportGameResult = 2;
    public static final int REPORTGAMERESULT_FIELD_NUMBER = 2;
    private de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.ReportGameResult reportGameResult_;
    public boolean hasReportGameResult() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.ReportGameResult getReportGameResult() {
      return reportGameResult_;
    }
    
    private void initFields() {
      reportedGameId_ = 0;
      reportGameResult_ = de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.ReportGameResult.gameReportAccepted;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasReportedGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasReportGameResult()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, reportedGameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeEnum(2, reportGameResult_.getNumber());
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, reportedGameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, reportGameResult_.getNumber());
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.ReportGameAckMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ReportGameAckMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ReportGameAckMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ReportGameAckMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ReportGameAckMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ReportGameAckMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ReportGameAckMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.ReportGameAckMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.ReportGameAckMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ReportGameAckMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.ReportGameAckMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.ReportGameAckMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.ReportGameAckMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        reportedGameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        reportGameResult_ = de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.ReportGameResult.gameReportAccepted;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.ReportGameAckMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.ReportGameAckMessage build() {
        de.pokerth.protocol.ProtoBuf.ReportGameAckMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.ReportGameAckMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.ReportGameAckMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.ReportGameAckMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.ReportGameAckMessage result = new de.pokerth.protocol.ProtoBuf.ReportGameAckMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.reportedGameId_ = reportedGameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.reportGameResult_ = reportGameResult_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasReportedGameId()) {
          
          return false;
        }
        if (!hasReportGameResult()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              reportedGameId_ = input.readUInt32();
              break;
            }
            case 16: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.ReportGameResult value = de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.ReportGameResult.valueOf(rawValue);
              if (value != null) {
                bitField0_ |= 0x00000002;
                reportGameResult_ = value;
              }
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 reportedGameId = 1;
      private int reportedGameId_ ;
      public boolean hasReportedGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getReportedGameId() {
        return reportedGameId_;
      }
      public Builder setReportedGameId(int value) {
        bitField0_ |= 0x00000001;
        reportedGameId_ = value;
        
        return this;
      }
      public Builder clearReportedGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        reportedGameId_ = 0;
        
        return this;
      }
      
      // required .ReportGameAckMessage.ReportGameResult reportGameResult = 2;
      private de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.ReportGameResult reportGameResult_ = de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.ReportGameResult.gameReportAccepted;
      public boolean hasReportGameResult() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.ReportGameResult getReportGameResult() {
        return reportGameResult_;
      }
      public Builder setReportGameResult(de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.ReportGameResult value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        reportGameResult_ = value;
        
        return this;
      }
      public Builder clearReportGameResult() {
        bitField0_ = (bitField0_ & ~0x00000002);
        reportGameResult_ = de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.ReportGameResult.gameReportAccepted;
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:ReportGameAckMessage)
    }
    
    static {
      defaultInstance = new ReportGameAckMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:ReportGameAckMessage)
  }
  
  public interface ErrorMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required .ErrorMessage.ErrorReason errorReason = 1;
    boolean hasErrorReason();
    de.pokerth.protocol.ProtoBuf.ErrorMessage.ErrorReason getErrorReason();
  }
  public static final class ErrorMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements ErrorMessageOrBuilder {
    // Use ErrorMessage.newBuilder() to construct.
    private ErrorMessage(Builder builder) {
      super(builder);
    }
    private ErrorMessage(boolean noInit) {}
    
    private static final ErrorMessage defaultInstance;
    public static ErrorMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public ErrorMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public enum ErrorReason
        implements com.google.protobuf.Internal.EnumLite {
      reserved(0, 0),
      initVersionNotSupported(1, 1),
      initServerFull(2, 2),
      initAuthFailure(3, 3),
      initPlayerNameInUse(4, 4),
      initInvalidPlayerName(5, 5),
      initServerMaintenance(6, 6),
      initBlocked(7, 7),
      avatarTooLarge(8, 8),
      invalidPacket(9, 9),
      invalidState(10, 10),
      kickedFromServer(11, 11),
      bannedFromServer(12, 12),
      blockedByServer(13, 13),
      sessionTimeout(14, 14),
      ;
      
      public static final int reserved_VALUE = 0;
      public static final int initVersionNotSupported_VALUE = 1;
      public static final int initServerFull_VALUE = 2;
      public static final int initAuthFailure_VALUE = 3;
      public static final int initPlayerNameInUse_VALUE = 4;
      public static final int initInvalidPlayerName_VALUE = 5;
      public static final int initServerMaintenance_VALUE = 6;
      public static final int initBlocked_VALUE = 7;
      public static final int avatarTooLarge_VALUE = 8;
      public static final int invalidPacket_VALUE = 9;
      public static final int invalidState_VALUE = 10;
      public static final int kickedFromServer_VALUE = 11;
      public static final int bannedFromServer_VALUE = 12;
      public static final int blockedByServer_VALUE = 13;
      public static final int sessionTimeout_VALUE = 14;
      
      
      public final int getNumber() { return value; }
      
      public static ErrorReason valueOf(int value) {
        switch (value) {
          case 0: return reserved;
          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 com.google.protobuf.Internal.EnumLiteMap<ErrorReason>
          internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<ErrorReason>() {
              public ErrorReason findValueByNumber(int number) {
                return ErrorReason.valueOf(number);
              }
            };
      
      private final int value;
      
      private ErrorReason(int index, int value) {
        this.value = value;
      }
      
      // @@protoc_insertion_point(enum_scope:ErrorMessage.ErrorReason)
    }
    
    private int bitField0_;
    // required .ErrorMessage.ErrorReason errorReason = 1;
    public static final int ERRORREASON_FIELD_NUMBER = 1;
    private de.pokerth.protocol.ProtoBuf.ErrorMessage.ErrorReason errorReason_;
    public boolean hasErrorReason() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public de.pokerth.protocol.ProtoBuf.ErrorMessage.ErrorReason getErrorReason() {
      return errorReason_;
    }
    
    private void initFields() {
      errorReason_ = de.pokerth.protocol.ProtoBuf.ErrorMessage.ErrorReason.reserved;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasErrorReason()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeEnum(1, errorReason_.getNumber());
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, errorReason_.getNumber());
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.ErrorMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ErrorMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ErrorMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ErrorMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ErrorMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ErrorMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ErrorMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.ErrorMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.ErrorMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.ErrorMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.ErrorMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.ErrorMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.ErrorMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.ErrorMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        errorReason_ = de.pokerth.protocol.ProtoBuf.ErrorMessage.ErrorReason.reserved;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.ErrorMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.ErrorMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.ErrorMessage build() {
        de.pokerth.protocol.ProtoBuf.ErrorMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.ErrorMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.ErrorMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.ErrorMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.ErrorMessage result = new de.pokerth.protocol.ProtoBuf.ErrorMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.errorReason_ = errorReason_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasErrorReason()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.ErrorMessage.ErrorReason value = de.pokerth.protocol.ProtoBuf.ErrorMessage.ErrorReason.valueOf(rawValue);
              if (value != null) {
                bitField0_ |= 0x00000001;
                errorReason_ = value;
              }
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required .ErrorMessage.ErrorReason errorReason = 1;
      private de.pokerth.protocol.ProtoBuf.ErrorMessage.ErrorReason errorReason_ = de.pokerth.protocol.ProtoBuf.ErrorMessage.ErrorReason.reserved;
      public boolean hasErrorReason() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public de.pokerth.protocol.ProtoBuf.ErrorMessage.ErrorReason getErrorReason() {
        return errorReason_;
      }
      public Builder setErrorReason(de.pokerth.protocol.ProtoBuf.ErrorMessage.ErrorReason value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        errorReason_ = value;
        
        return this;
      }
      public Builder clearErrorReason() {
        bitField0_ = (bitField0_ & ~0x00000001);
        errorReason_ = de.pokerth.protocol.ProtoBuf.ErrorMessage.ErrorReason.reserved;
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:ErrorMessage)
    }
    
    static {
      defaultInstance = new ErrorMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:ErrorMessage)
  }
  
  public interface AdminRemoveGameMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 removeGameId = 1;
    boolean hasRemoveGameId();
    int getRemoveGameId();
  }
  public static final class AdminRemoveGameMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements AdminRemoveGameMessageOrBuilder {
    // Use AdminRemoveGameMessage.newBuilder() to construct.
    private AdminRemoveGameMessage(Builder builder) {
      super(builder);
    }
    private AdminRemoveGameMessage(boolean noInit) {}
    
    private static final AdminRemoveGameMessage defaultInstance;
    public static AdminRemoveGameMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public AdminRemoveGameMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    private int bitField0_;
    // required uint32 removeGameId = 1;
    public static final int REMOVEGAMEID_FIELD_NUMBER = 1;
    private int removeGameId_;
    public boolean hasRemoveGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getRemoveGameId() {
      return removeGameId_;
    }
    
    private void initFields() {
      removeGameId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasRemoveGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, removeGameId_);
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, removeGameId_);
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        removeGameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage build() {
        de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage result = new de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.removeGameId_ = removeGameId_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasRemoveGameId()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              removeGameId_ = input.readUInt32();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 removeGameId = 1;
      private int removeGameId_ ;
      public boolean hasRemoveGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getRemoveGameId() {
        return removeGameId_;
      }
      public Builder setRemoveGameId(int value) {
        bitField0_ |= 0x00000001;
        removeGameId_ = value;
        
        return this;
      }
      public Builder clearRemoveGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        removeGameId_ = 0;
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:AdminRemoveGameMessage)
    }
    
    static {
      defaultInstance = new AdminRemoveGameMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:AdminRemoveGameMessage)
  }
  
  public interface AdminRemoveGameAckMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 removeGameId = 1;
    boolean hasRemoveGameId();
    int getRemoveGameId();
    
    // required .AdminRemoveGameAckMessage.AdminRemoveGameResult removeGameResult = 2;
    boolean hasRemoveGameResult();
    de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.AdminRemoveGameResult getRemoveGameResult();
  }
  public static final class AdminRemoveGameAckMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements AdminRemoveGameAckMessageOrBuilder {
    // Use AdminRemoveGameAckMessage.newBuilder() to construct.
    private AdminRemoveGameAckMessage(Builder builder) {
      super(builder);
    }
    private AdminRemoveGameAckMessage(boolean noInit) {}
    
    private static final AdminRemoveGameAckMessage defaultInstance;
    public static AdminRemoveGameAckMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public AdminRemoveGameAckMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public enum AdminRemoveGameResult
        implements com.google.protobuf.Internal.EnumLite {
      gameRemoveAccepted(0, 0),
      gameRemoveInvalid(1, 1),
      ;
      
      public static final int gameRemoveAccepted_VALUE = 0;
      public static final int gameRemoveInvalid_VALUE = 1;
      
      
      public final int getNumber() { return value; }
      
      public static AdminRemoveGameResult valueOf(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 com.google.protobuf.Internal.EnumLiteMap<AdminRemoveGameResult>
          internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<AdminRemoveGameResult>() {
              public AdminRemoveGameResult findValueByNumber(int number) {
                return AdminRemoveGameResult.valueOf(number);
              }
            };
      
      private final int value;
      
      private AdminRemoveGameResult(int index, int value) {
        this.value = value;
      }
      
      // @@protoc_insertion_point(enum_scope:AdminRemoveGameAckMessage.AdminRemoveGameResult)
    }
    
    private int bitField0_;
    // required uint32 removeGameId = 1;
    public static final int REMOVEGAMEID_FIELD_NUMBER = 1;
    private int removeGameId_;
    public boolean hasRemoveGameId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getRemoveGameId() {
      return removeGameId_;
    }
    
    // required .AdminRemoveGameAckMessage.AdminRemoveGameResult removeGameResult = 2;
    public static final int REMOVEGAMERESULT_FIELD_NUMBER = 2;
    private de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.AdminRemoveGameResult removeGameResult_;
    public boolean hasRemoveGameResult() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.AdminRemoveGameResult getRemoveGameResult() {
      return removeGameResult_;
    }
    
    private void initFields() {
      removeGameId_ = 0;
      removeGameResult_ = de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.AdminRemoveGameResult.gameRemoveAccepted;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasRemoveGameId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasRemoveGameResult()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, removeGameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeEnum(2, removeGameResult_.getNumber());
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, removeGameId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, removeGameResult_.getNumber());
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        removeGameId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        removeGameResult_ = de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.AdminRemoveGameResult.gameRemoveAccepted;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage build() {
        de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage result = new de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.removeGameId_ = removeGameId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.removeGameResult_ = removeGameResult_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasRemoveGameId()) {
          
          return false;
        }
        if (!hasRemoveGameResult()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              removeGameId_ = input.readUInt32();
              break;
            }
            case 16: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.AdminRemoveGameResult value = de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.AdminRemoveGameResult.valueOf(rawValue);
              if (value != null) {
                bitField0_ |= 0x00000002;
                removeGameResult_ = value;
              }
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 removeGameId = 1;
      private int removeGameId_ ;
      public boolean hasRemoveGameId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getRemoveGameId() {
        return removeGameId_;
      }
      public Builder setRemoveGameId(int value) {
        bitField0_ |= 0x00000001;
        removeGameId_ = value;
        
        return this;
      }
      public Builder clearRemoveGameId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        removeGameId_ = 0;
        
        return this;
      }
      
      // required .AdminRemoveGameAckMessage.AdminRemoveGameResult removeGameResult = 2;
      private de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.AdminRemoveGameResult removeGameResult_ = de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.AdminRemoveGameResult.gameRemoveAccepted;
      public boolean hasRemoveGameResult() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.AdminRemoveGameResult getRemoveGameResult() {
        return removeGameResult_;
      }
      public Builder setRemoveGameResult(de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.AdminRemoveGameResult value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        removeGameResult_ = value;
        
        return this;
      }
      public Builder clearRemoveGameResult() {
        bitField0_ = (bitField0_ & ~0x00000002);
        removeGameResult_ = de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.AdminRemoveGameResult.gameRemoveAccepted;
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:AdminRemoveGameAckMessage)
    }
    
    static {
      defaultInstance = new AdminRemoveGameAckMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:AdminRemoveGameAckMessage)
  }
  
  public interface AdminBanPlayerMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 banPlayerId = 1;
    boolean hasBanPlayerId();
    int getBanPlayerId();
  }
  public static final class AdminBanPlayerMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements AdminBanPlayerMessageOrBuilder {
    // Use AdminBanPlayerMessage.newBuilder() to construct.
    private AdminBanPlayerMessage(Builder builder) {
      super(builder);
    }
    private AdminBanPlayerMessage(boolean noInit) {}
    
    private static final AdminBanPlayerMessage defaultInstance;
    public static AdminBanPlayerMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public AdminBanPlayerMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    private int bitField0_;
    // required uint32 banPlayerId = 1;
    public static final int BANPLAYERID_FIELD_NUMBER = 1;
    private int banPlayerId_;
    public boolean hasBanPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getBanPlayerId() {
      return banPlayerId_;
    }
    
    private void initFields() {
      banPlayerId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasBanPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, banPlayerId_);
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, banPlayerId_);
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        banPlayerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage build() {
        de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage result = new de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.banPlayerId_ = banPlayerId_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasBanPlayerId()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              banPlayerId_ = input.readUInt32();
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 banPlayerId = 1;
      private int banPlayerId_ ;
      public boolean hasBanPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getBanPlayerId() {
        return banPlayerId_;
      }
      public Builder setBanPlayerId(int value) {
        bitField0_ |= 0x00000001;
        banPlayerId_ = value;
        
        return this;
      }
      public Builder clearBanPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        banPlayerId_ = 0;
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:AdminBanPlayerMessage)
    }
    
    static {
      defaultInstance = new AdminBanPlayerMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:AdminBanPlayerMessage)
  }
  
  public interface AdminBanPlayerAckMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required uint32 banPlayerId = 1;
    boolean hasBanPlayerId();
    int getBanPlayerId();
    
    // required .AdminBanPlayerAckMessage.AdminBanPlayerResult banPlayerResult = 2;
    boolean hasBanPlayerResult();
    de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.AdminBanPlayerResult getBanPlayerResult();
  }
  public static final class AdminBanPlayerAckMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements AdminBanPlayerAckMessageOrBuilder {
    // Use AdminBanPlayerAckMessage.newBuilder() to construct.
    private AdminBanPlayerAckMessage(Builder builder) {
      super(builder);
    }
    private AdminBanPlayerAckMessage(boolean noInit) {}
    
    private static final AdminBanPlayerAckMessage defaultInstance;
    public static AdminBanPlayerAckMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public AdminBanPlayerAckMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public enum AdminBanPlayerResult
        implements com.google.protobuf.Internal.EnumLite {
      banPlayerAccepted(0, 0),
      banPlayerPending(1, 1),
      banPlayerNoDB(2, 2),
      banPlayerDBError(3, 3),
      banPlayerInvalid(4, 4),
      ;
      
      public static final int banPlayerAccepted_VALUE = 0;
      public static final int banPlayerPending_VALUE = 1;
      public static final int banPlayerNoDB_VALUE = 2;
      public static final int banPlayerDBError_VALUE = 3;
      public static final int banPlayerInvalid_VALUE = 4;
      
      
      public final int getNumber() { return value; }
      
      public static AdminBanPlayerResult valueOf(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 com.google.protobuf.Internal.EnumLiteMap<AdminBanPlayerResult>
          internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<AdminBanPlayerResult>() {
              public AdminBanPlayerResult findValueByNumber(int number) {
                return AdminBanPlayerResult.valueOf(number);
              }
            };
      
      private final int value;
      
      private AdminBanPlayerResult(int index, int value) {
        this.value = value;
      }
      
      // @@protoc_insertion_point(enum_scope:AdminBanPlayerAckMessage.AdminBanPlayerResult)
    }
    
    private int bitField0_;
    // required uint32 banPlayerId = 1;
    public static final int BANPLAYERID_FIELD_NUMBER = 1;
    private int banPlayerId_;
    public boolean hasBanPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public int getBanPlayerId() {
      return banPlayerId_;
    }
    
    // required .AdminBanPlayerAckMessage.AdminBanPlayerResult banPlayerResult = 2;
    public static final int BANPLAYERRESULT_FIELD_NUMBER = 2;
    private de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.AdminBanPlayerResult banPlayerResult_;
    public boolean hasBanPlayerResult() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.AdminBanPlayerResult getBanPlayerResult() {
      return banPlayerResult_;
    }
    
    private void initFields() {
      banPlayerId_ = 0;
      banPlayerResult_ = de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.AdminBanPlayerResult.banPlayerAccepted;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      if (!hasBanPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasBanPlayerResult()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, banPlayerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeEnum(2, banPlayerResult_.getNumber());
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, banPlayerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, banPlayerResult_.getNumber());
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        banPlayerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        banPlayerResult_ = de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.AdminBanPlayerResult.banPlayerAccepted;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage build() {
        de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage result = new de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.banPlayerId_ = banPlayerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.banPlayerResult_ = banPlayerResult_;
        result.bitField0_ = to_bitField0_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      public final boolean isInitialized() {
        if (!hasBanPlayerId()) {
          
          return false;
        }
        if (!hasBanPlayerResult()) {
          
          return false;
        }
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              banPlayerId_ = input.readUInt32();
              break;
            }
            case 16: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.AdminBanPlayerResult value = de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.AdminBanPlayerResult.valueOf(rawValue);
              if (value != null) {
                bitField0_ |= 0x00000002;
                banPlayerResult_ = value;
              }
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // required uint32 banPlayerId = 1;
      private int banPlayerId_ ;
      public boolean hasBanPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public int getBanPlayerId() {
        return banPlayerId_;
      }
      public Builder setBanPlayerId(int value) {
        bitField0_ |= 0x00000001;
        banPlayerId_ = value;
        
        return this;
      }
      public Builder clearBanPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        banPlayerId_ = 0;
        
        return this;
      }
      
      // required .AdminBanPlayerAckMessage.AdminBanPlayerResult banPlayerResult = 2;
      private de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.AdminBanPlayerResult banPlayerResult_ = de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.AdminBanPlayerResult.banPlayerAccepted;
      public boolean hasBanPlayerResult() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.AdminBanPlayerResult getBanPlayerResult() {
        return banPlayerResult_;
      }
      public Builder setBanPlayerResult(de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.AdminBanPlayerResult value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        banPlayerResult_ = value;
        
        return this;
      }
      public Builder clearBanPlayerResult() {
        bitField0_ = (bitField0_ & ~0x00000002);
        banPlayerResult_ = de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.AdminBanPlayerResult.banPlayerAccepted;
        
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:AdminBanPlayerAckMessage)
    }
    
    static {
      defaultInstance = new AdminBanPlayerAckMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:AdminBanPlayerAckMessage)
  }
  
  public interface PokerTHMessageOrBuilder
      extends com.google.protobuf.MessageLiteOrBuilder {
    
    // required .PokerTHMessage.PokerTHMessageType messageType = 1;
    boolean hasMessageType();
    de.pokerth.protocol.ProtoBuf.PokerTHMessage.PokerTHMessageType getMessageType();
    
    // optional .AnnounceMessage announceMessage = 2;
    boolean hasAnnounceMessage();
    de.pokerth.protocol.ProtoBuf.AnnounceMessage getAnnounceMessage();
    
    // optional .InitMessage initMessage = 3;
    boolean hasInitMessage();
    de.pokerth.protocol.ProtoBuf.InitMessage getInitMessage();
    
    // optional .AuthServerChallengeMessage authServerChallengeMessage = 4;
    boolean hasAuthServerChallengeMessage();
    de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage getAuthServerChallengeMessage();
    
    // optional .AuthClientResponseMessage authClientResponseMessage = 5;
    boolean hasAuthClientResponseMessage();
    de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage getAuthClientResponseMessage();
    
    // optional .AuthServerVerificationMessage authServerVerificationMessage = 6;
    boolean hasAuthServerVerificationMessage();
    de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage getAuthServerVerificationMessage();
    
    // optional .InitAckMessage initAckMessage = 7;
    boolean hasInitAckMessage();
    de.pokerth.protocol.ProtoBuf.InitAckMessage getInitAckMessage();
    
    // optional .AvatarRequestMessage avatarRequestMessage = 8;
    boolean hasAvatarRequestMessage();
    de.pokerth.protocol.ProtoBuf.AvatarRequestMessage getAvatarRequestMessage();
    
    // optional .AvatarHeaderMessage avatarHeaderMessage = 9;
    boolean hasAvatarHeaderMessage();
    de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage getAvatarHeaderMessage();
    
    // optional .AvatarDataMessage avatarDataMessage = 10;
    boolean hasAvatarDataMessage();
    de.pokerth.protocol.ProtoBuf.AvatarDataMessage getAvatarDataMessage();
    
    // optional .AvatarEndMessage avatarEndMessage = 11;
    boolean hasAvatarEndMessage();
    de.pokerth.protocol.ProtoBuf.AvatarEndMessage getAvatarEndMessage();
    
    // optional .UnknownAvatarMessage unknownAvatarMessage = 12;
    boolean hasUnknownAvatarMessage();
    de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage getUnknownAvatarMessage();
    
    // optional .PlayerListMessage playerListMessage = 13;
    boolean hasPlayerListMessage();
    de.pokerth.protocol.ProtoBuf.PlayerListMessage getPlayerListMessage();
    
    // optional .GameListNewMessage gameListNewMessage = 14;
    boolean hasGameListNewMessage();
    de.pokerth.protocol.ProtoBuf.GameListNewMessage getGameListNewMessage();
    
    // optional .GameListUpdateMessage gameListUpdateMessage = 15;
    boolean hasGameListUpdateMessage();
    de.pokerth.protocol.ProtoBuf.GameListUpdateMessage getGameListUpdateMessage();
    
    // optional .GameListPlayerJoinedMessage gameListPlayerJoinedMessage = 16;
    boolean hasGameListPlayerJoinedMessage();
    de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage getGameListPlayerJoinedMessage();
    
    // optional .GameListPlayerLeftMessage gameListPlayerLeftMessage = 17;
    boolean hasGameListPlayerLeftMessage();
    de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage getGameListPlayerLeftMessage();
    
    // optional .GameListAdminChangedMessage gameListAdminChangedMessage = 18;
    boolean hasGameListAdminChangedMessage();
    de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage getGameListAdminChangedMessage();
    
    // optional .PlayerInfoRequestMessage playerInfoRequestMessage = 19;
    boolean hasPlayerInfoRequestMessage();
    de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage getPlayerInfoRequestMessage();
    
    // optional .PlayerInfoReplyMessage playerInfoReplyMessage = 20;
    boolean hasPlayerInfoReplyMessage();
    de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage getPlayerInfoReplyMessage();
    
    // optional .SubscriptionRequestMessage subscriptionRequestMessage = 21;
    boolean hasSubscriptionRequestMessage();
    de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage getSubscriptionRequestMessage();
    
    // optional .JoinExistingGameMessage joinExistingGameMessage = 22;
    boolean hasJoinExistingGameMessage();
    de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage getJoinExistingGameMessage();
    
    // optional .JoinNewGameMessage joinNewGameMessage = 23;
    boolean hasJoinNewGameMessage();
    de.pokerth.protocol.ProtoBuf.JoinNewGameMessage getJoinNewGameMessage();
    
    // optional .RejoinExistingGameMessage rejoinExistingGameMessage = 24;
    boolean hasRejoinExistingGameMessage();
    de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage getRejoinExistingGameMessage();
    
    // optional .JoinGameAckMessage joinGameAckMessage = 25;
    boolean hasJoinGameAckMessage();
    de.pokerth.protocol.ProtoBuf.JoinGameAckMessage getJoinGameAckMessage();
    
    // optional .JoinGameFailedMessage joinGameFailedMessage = 26;
    boolean hasJoinGameFailedMessage();
    de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage getJoinGameFailedMessage();
    
    // optional .GamePlayerJoinedMessage gamePlayerJoinedMessage = 27;
    boolean hasGamePlayerJoinedMessage();
    de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage getGamePlayerJoinedMessage();
    
    // optional .GamePlayerLeftMessage gamePlayerLeftMessage = 28;
    boolean hasGamePlayerLeftMessage();
    de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage getGamePlayerLeftMessage();
    
    // optional .GameAdminChangedMessage gameAdminChangedMessage = 29;
    boolean hasGameAdminChangedMessage();
    de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage getGameAdminChangedMessage();
    
    // optional .RemovedFromGameMessage removedFromGameMessage = 30;
    boolean hasRemovedFromGameMessage();
    de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage getRemovedFromGameMessage();
    
    // optional .KickPlayerRequestMessage kickPlayerRequestMessage = 31;
    boolean hasKickPlayerRequestMessage();
    de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage getKickPlayerRequestMessage();
    
    // optional .LeaveGameRequestMessage leaveGameRequestMessage = 32;
    boolean hasLeaveGameRequestMessage();
    de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage getLeaveGameRequestMessage();
    
    // optional .InvitePlayerToGameMessage invitePlayerToGameMessage = 33;
    boolean hasInvitePlayerToGameMessage();
    de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage getInvitePlayerToGameMessage();
    
    // optional .InviteNotifyMessage inviteNotifyMessage = 34;
    boolean hasInviteNotifyMessage();
    de.pokerth.protocol.ProtoBuf.InviteNotifyMessage getInviteNotifyMessage();
    
    // optional .RejectGameInvitationMessage rejectGameInvitationMessage = 35;
    boolean hasRejectGameInvitationMessage();
    de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage getRejectGameInvitationMessage();
    
    // optional .RejectInvNotifyMessage rejectInvNotifyMessage = 36;
    boolean hasRejectInvNotifyMessage();
    de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage getRejectInvNotifyMessage();
    
    // optional .StartEventMessage startEventMessage = 37;
    boolean hasStartEventMessage();
    de.pokerth.protocol.ProtoBuf.StartEventMessage getStartEventMessage();
    
    // optional .StartEventAckMessage startEventAckMessage = 38;
    boolean hasStartEventAckMessage();
    de.pokerth.protocol.ProtoBuf.StartEventAckMessage getStartEventAckMessage();
    
    // optional .GameStartInitialMessage gameStartInitialMessage = 39;
    boolean hasGameStartInitialMessage();
    de.pokerth.protocol.ProtoBuf.GameStartInitialMessage getGameStartInitialMessage();
    
    // optional .GameStartRejoinMessage gameStartRejoinMessage = 40;
    boolean hasGameStartRejoinMessage();
    de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage getGameStartRejoinMessage();
    
    // optional .HandStartMessage handStartMessage = 41;
    boolean hasHandStartMessage();
    de.pokerth.protocol.ProtoBuf.HandStartMessage getHandStartMessage();
    
    // optional .PlayersTurnMessage playersTurnMessage = 42;
    boolean hasPlayersTurnMessage();
    de.pokerth.protocol.ProtoBuf.PlayersTurnMessage getPlayersTurnMessage();
    
    // optional .MyActionRequestMessage myActionRequestMessage = 43;
    boolean hasMyActionRequestMessage();
    de.pokerth.protocol.ProtoBuf.MyActionRequestMessage getMyActionRequestMessage();
    
    // optional .YourActionRejectedMessage yourActionRejectedMessage = 44;
    boolean hasYourActionRejectedMessage();
    de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage getYourActionRejectedMessage();
    
    // optional .PlayersActionDoneMessage playersActionDoneMessage = 45;
    boolean hasPlayersActionDoneMessage();
    de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage getPlayersActionDoneMessage();
    
    // optional .DealFlopCardsMessage dealFlopCardsMessage = 46;
    boolean hasDealFlopCardsMessage();
    de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage getDealFlopCardsMessage();
    
    // optional .DealTurnCardMessage dealTurnCardMessage = 47;
    boolean hasDealTurnCardMessage();
    de.pokerth.protocol.ProtoBuf.DealTurnCardMessage getDealTurnCardMessage();
    
    // optional .DealRiverCardMessage dealRiverCardMessage = 48;
    boolean hasDealRiverCardMessage();
    de.pokerth.protocol.ProtoBuf.DealRiverCardMessage getDealRiverCardMessage();
    
    // optional .AllInShowCardsMessage allInShowCardsMessage = 49;
    boolean hasAllInShowCardsMessage();
    de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage getAllInShowCardsMessage();
    
    // optional .EndOfHandShowCardsMessage endOfHandShowCardsMessage = 50;
    boolean hasEndOfHandShowCardsMessage();
    de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage getEndOfHandShowCardsMessage();
    
    // optional .EndOfHandHideCardsMessage endOfHandHideCardsMessage = 51;
    boolean hasEndOfHandHideCardsMessage();
    de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage getEndOfHandHideCardsMessage();
    
    // optional .ShowMyCardsRequestMessage showMyCardsRequestMessage = 52;
    boolean hasShowMyCardsRequestMessage();
    de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage getShowMyCardsRequestMessage();
    
    // optional .AfterHandShowCardsMessage afterHandShowCardsMessage = 53;
    boolean hasAfterHandShowCardsMessage();
    de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage getAfterHandShowCardsMessage();
    
    // optional .EndOfGameMessage endOfGameMessage = 54;
    boolean hasEndOfGameMessage();
    de.pokerth.protocol.ProtoBuf.EndOfGameMessage getEndOfGameMessage();
    
    // optional .PlayerIdChangedMessage playerIdChangedMessage = 55;
    boolean hasPlayerIdChangedMessage();
    de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage getPlayerIdChangedMessage();
    
    // optional .AskKickPlayerMessage askKickPlayerMessage = 56;
    boolean hasAskKickPlayerMessage();
    de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage getAskKickPlayerMessage();
    
    // optional .AskKickDeniedMessage askKickDeniedMessage = 57;
    boolean hasAskKickDeniedMessage();
    de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage getAskKickDeniedMessage();
    
    // optional .StartKickPetitionMessage startKickPetitionMessage = 58;
    boolean hasStartKickPetitionMessage();
    de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage getStartKickPetitionMessage();
    
    // optional .VoteKickRequestMessage voteKickRequestMessage = 59;
    boolean hasVoteKickRequestMessage();
    de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage getVoteKickRequestMessage();
    
    // optional .VoteKickReplyMessage voteKickReplyMessage = 60;
    boolean hasVoteKickReplyMessage();
    de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage getVoteKickReplyMessage();
    
    // optional .KickPetitionUpdateMessage kickPetitionUpdateMessage = 61;
    boolean hasKickPetitionUpdateMessage();
    de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage getKickPetitionUpdateMessage();
    
    // optional .EndKickPetitionMessage endKickPetitionMessage = 62;
    boolean hasEndKickPetitionMessage();
    de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage getEndKickPetitionMessage();
    
    // optional .StatisticsMessage statisticsMessage = 63;
    boolean hasStatisticsMessage();
    de.pokerth.protocol.ProtoBuf.StatisticsMessage getStatisticsMessage();
    
    // optional .ChatRequestMessage chatRequestMessage = 64;
    boolean hasChatRequestMessage();
    de.pokerth.protocol.ProtoBuf.ChatRequestMessage getChatRequestMessage();
    
    // optional .ChatMessage chatMessage = 65;
    boolean hasChatMessage();
    de.pokerth.protocol.ProtoBuf.ChatMessage getChatMessage();
    
    // optional .ChatRejectMessage chatRejectMessage = 66;
    boolean hasChatRejectMessage();
    de.pokerth.protocol.ProtoBuf.ChatRejectMessage getChatRejectMessage();
    
    // optional .DialogMessage dialogMessage = 67;
    boolean hasDialogMessage();
    de.pokerth.protocol.ProtoBuf.DialogMessage getDialogMessage();
    
    // optional .TimeoutWarningMessage timeoutWarningMessage = 68;
    boolean hasTimeoutWarningMessage();
    de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage getTimeoutWarningMessage();
    
    // optional .ResetTimeoutMessage resetTimeoutMessage = 69;
    boolean hasResetTimeoutMessage();
    de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage getResetTimeoutMessage();
    
    // optional .ReportAvatarMessage reportAvatarMessage = 70;
    boolean hasReportAvatarMessage();
    de.pokerth.protocol.ProtoBuf.ReportAvatarMessage getReportAvatarMessage();
    
    // optional .ReportAvatarAckMessage reportAvatarAckMessage = 71;
    boolean hasReportAvatarAckMessage();
    de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage getReportAvatarAckMessage();
    
    // optional .ReportGameMessage reportGameMessage = 72;
    boolean hasReportGameMessage();
    de.pokerth.protocol.ProtoBuf.ReportGameMessage getReportGameMessage();
    
    // optional .ReportGameAckMessage reportGameAckMessage = 73;
    boolean hasReportGameAckMessage();
    de.pokerth.protocol.ProtoBuf.ReportGameAckMessage getReportGameAckMessage();
    
    // optional .ErrorMessage errorMessage = 74;
    boolean hasErrorMessage();
    de.pokerth.protocol.ProtoBuf.ErrorMessage getErrorMessage();
    
    // optional .AdminRemoveGameMessage adminRemoveGameMessage = 75;
    boolean hasAdminRemoveGameMessage();
    de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage getAdminRemoveGameMessage();
    
    // optional .AdminRemoveGameAckMessage adminRemoveGameAckMessage = 76;
    boolean hasAdminRemoveGameAckMessage();
    de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage getAdminRemoveGameAckMessage();
    
    // optional .AdminBanPlayerMessage adminBanPlayerMessage = 77;
    boolean hasAdminBanPlayerMessage();
    de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage getAdminBanPlayerMessage();
    
    // optional .AdminBanPlayerAckMessage adminBanPlayerAckMessage = 78;
    boolean hasAdminBanPlayerAckMessage();
    de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage getAdminBanPlayerAckMessage();
    
    // optional .GameListSpectatorJoinedMessage gameListSpectatorJoinedMessage = 79;
    boolean hasGameListSpectatorJoinedMessage();
    de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage getGameListSpectatorJoinedMessage();
    
    // optional .GameListSpectatorLeftMessage gameListSpectatorLeftMessage = 80;
    boolean hasGameListSpectatorLeftMessage();
    de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage getGameListSpectatorLeftMessage();
    
    // optional .GameSpectatorJoinedMessage gameSpectatorJoinedMessage = 81;
    boolean hasGameSpectatorJoinedMessage();
    de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage getGameSpectatorJoinedMessage();
    
    // optional .GameSpectatorLeftMessage gameSpectatorLeftMessage = 82;
    boolean hasGameSpectatorLeftMessage();
    de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage getGameSpectatorLeftMessage();
  }
  public static final class PokerTHMessage extends
      com.google.protobuf.GeneratedMessageLite
      implements PokerTHMessageOrBuilder {
    // Use PokerTHMessage.newBuilder() to construct.
    private PokerTHMessage(Builder builder) {
      super(builder);
    }
    private PokerTHMessage(boolean noInit) {}
    
    private static final PokerTHMessage defaultInstance;
    public static PokerTHMessage getDefaultInstance() {
      return defaultInstance;
    }
    
    public PokerTHMessage getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public enum PokerTHMessageType
        implements com.google.protobuf.Internal.EnumLite {
      Type_AnnounceMessage(0, 1),
      Type_InitMessage(1, 2),
      Type_AuthServerChallengeMessage(2, 3),
      Type_AuthClientResponseMessage(3, 4),
      Type_AuthServerVerificationMessage(4, 5),
      Type_InitAckMessage(5, 6),
      Type_AvatarRequestMessage(6, 7),
      Type_AvatarHeaderMessage(7, 8),
      Type_AvatarDataMessage(8, 9),
      Type_AvatarEndMessage(9, 10),
      Type_UnknownAvatarMessage(10, 11),
      Type_PlayerListMessage(11, 12),
      Type_GameListNewMessage(12, 13),
      Type_GameListUpdateMessage(13, 14),
      Type_GameListPlayerJoinedMessage(14, 15),
      Type_GameListPlayerLeftMessage(15, 16),
      Type_GameListAdminChangedMessage(16, 17),
      Type_PlayerInfoRequestMessage(17, 18),
      Type_PlayerInfoReplyMessage(18, 19),
      Type_SubscriptionRequestMessage(19, 20),
      Type_JoinExistingGameMessage(20, 21),
      Type_JoinNewGameMessage(21, 22),
      Type_RejoinExistingGameMessage(22, 23),
      Type_JoinGameAckMessage(23, 24),
      Type_JoinGameFailedMessage(24, 25),
      Type_GamePlayerJoinedMessage(25, 26),
      Type_GamePlayerLeftMessage(26, 27),
      Type_GameAdminChangedMessage(27, 28),
      Type_RemovedFromGameMessage(28, 29),
      Type_KickPlayerRequestMessage(29, 30),
      Type_LeaveGameRequestMessage(30, 31),
      Type_InvitePlayerToGameMessage(31, 32),
      Type_InviteNotifyMessage(32, 33),
      Type_RejectGameInvitationMessage(33, 34),
      Type_RejectInvNotifyMessage(34, 35),
      Type_StartEventMessage(35, 36),
      Type_StartEventAckMessage(36, 37),
      Type_GameStartInitialMessage(37, 38),
      Type_GameStartRejoinMessage(38, 39),
      Type_HandStartMessage(39, 40),
      Type_PlayersTurnMessage(40, 41),
      Type_MyActionRequestMessage(41, 42),
      Type_YourActionRejectedMessage(42, 43),
      Type_PlayersActionDoneMessage(43, 44),
      Type_DealFlopCardsMessage(44, 45),
      Type_DealTurnCardMessage(45, 46),
      Type_DealRiverCardMessage(46, 47),
      Type_AllInShowCardsMessage(47, 48),
      Type_EndOfHandShowCardsMessage(48, 49),
      Type_EndOfHandHideCardsMessage(49, 50),
      Type_ShowMyCardsRequestMessage(50, 51),
      Type_AfterHandShowCardsMessage(51, 52),
      Type_EndOfGameMessage(52, 53),
      Type_PlayerIdChangedMessage(53, 54),
      Type_AskKickPlayerMessage(54, 55),
      Type_AskKickDeniedMessage(55, 56),
      Type_StartKickPetitionMessage(56, 57),
      Type_VoteKickRequestMessage(57, 58),
      Type_VoteKickReplyMessage(58, 59),
      Type_KickPetitionUpdateMessage(59, 60),
      Type_EndKickPetitionMessage(60, 61),
      Type_StatisticsMessage(61, 62),
      Type_ChatRequestMessage(62, 63),
      Type_ChatMessage(63, 64),
      Type_ChatRejectMessage(64, 65),
      Type_DialogMessage(65, 66),
      Type_TimeoutWarningMessage(66, 67),
      Type_ResetTimeoutMessage(67, 68),
      Type_ReportAvatarMessage(68, 69),
      Type_ReportAvatarAckMessage(69, 70),
      Type_ReportGameMessage(70, 71),
      Type_ReportGameAckMessage(71, 72),
      Type_ErrorMessage(72, 73),
      Type_AdminRemoveGameMessage(73, 74),
      Type_AdminRemoveGameAckMessage(74, 75),
      Type_AdminBanPlayerMessage(75, 76),
      Type_AdminBanPlayerAckMessage(76, 77),
      Type_GameListSpectatorJoinedMessage(77, 78),
      Type_GameListSpectatorLeftMessage(78, 79),
      Type_GameSpectatorJoinedMessage(79, 80),
      Type_GameSpectatorLeftMessage(80, 81),
      ;
      
      public static final int Type_AnnounceMessage_VALUE = 1;
      public static final int Type_InitMessage_VALUE = 2;
      public static final int Type_AuthServerChallengeMessage_VALUE = 3;
      public static final int Type_AuthClientResponseMessage_VALUE = 4;
      public static final int Type_AuthServerVerificationMessage_VALUE = 5;
      public static final int Type_InitAckMessage_VALUE = 6;
      public static final int Type_AvatarRequestMessage_VALUE = 7;
      public static final int Type_AvatarHeaderMessage_VALUE = 8;
      public static final int Type_AvatarDataMessage_VALUE = 9;
      public static final int Type_AvatarEndMessage_VALUE = 10;
      public static final int Type_UnknownAvatarMessage_VALUE = 11;
      public static final int Type_PlayerListMessage_VALUE = 12;
      public static final int Type_GameListNewMessage_VALUE = 13;
      public static final int Type_GameListUpdateMessage_VALUE = 14;
      public static final int Type_GameListPlayerJoinedMessage_VALUE = 15;
      public static final int Type_GameListPlayerLeftMessage_VALUE = 16;
      public static final int Type_GameListAdminChangedMessage_VALUE = 17;
      public static final int Type_PlayerInfoRequestMessage_VALUE = 18;
      public static final int Type_PlayerInfoReplyMessage_VALUE = 19;
      public static final int Type_SubscriptionRequestMessage_VALUE = 20;
      public static final int Type_JoinExistingGameMessage_VALUE = 21;
      public static final int Type_JoinNewGameMessage_VALUE = 22;
      public static final int Type_RejoinExistingGameMessage_VALUE = 23;
      public static final int Type_JoinGameAckMessage_VALUE = 24;
      public static final int Type_JoinGameFailedMessage_VALUE = 25;
      public static final int Type_GamePlayerJoinedMessage_VALUE = 26;
      public static final int Type_GamePlayerLeftMessage_VALUE = 27;
      public static final int Type_GameAdminChangedMessage_VALUE = 28;
      public static final int Type_RemovedFromGameMessage_VALUE = 29;
      public static final int Type_KickPlayerRequestMessage_VALUE = 30;
      public static final int Type_LeaveGameRequestMessage_VALUE = 31;
      public static final int Type_InvitePlayerToGameMessage_VALUE = 32;
      public static final int Type_InviteNotifyMessage_VALUE = 33;
      public static final int Type_RejectGameInvitationMessage_VALUE = 34;
      public static final int Type_RejectInvNotifyMessage_VALUE = 35;
      public static final int Type_StartEventMessage_VALUE = 36;
      public static final int Type_StartEventAckMessage_VALUE = 37;
      public static final int Type_GameStartInitialMessage_VALUE = 38;
      public static final int Type_GameStartRejoinMessage_VALUE = 39;
      public static final int Type_HandStartMessage_VALUE = 40;
      public static final int Type_PlayersTurnMessage_VALUE = 41;
      public static final int Type_MyActionRequestMessage_VALUE = 42;
      public static final int Type_YourActionRejectedMessage_VALUE = 43;
      public static final int Type_PlayersActionDoneMessage_VALUE = 44;
      public static final int Type_DealFlopCardsMessage_VALUE = 45;
      public static final int Type_DealTurnCardMessage_VALUE = 46;
      public static final int Type_DealRiverCardMessage_VALUE = 47;
      public static final int Type_AllInShowCardsMessage_VALUE = 48;
      public static final int Type_EndOfHandShowCardsMessage_VALUE = 49;
      public static final int Type_EndOfHandHideCardsMessage_VALUE = 50;
      public static final int Type_ShowMyCardsRequestMessage_VALUE = 51;
      public static final int Type_AfterHandShowCardsMessage_VALUE = 52;
      public static final int Type_EndOfGameMessage_VALUE = 53;
      public static final int Type_PlayerIdChangedMessage_VALUE = 54;
      public static final int Type_AskKickPlayerMessage_VALUE = 55;
      public static final int Type_AskKickDeniedMessage_VALUE = 56;
      public static final int Type_StartKickPetitionMessage_VALUE = 57;
      public static final int Type_VoteKickRequestMessage_VALUE = 58;
      public static final int Type_VoteKickReplyMessage_VALUE = 59;
      public static final int Type_KickPetitionUpdateMessage_VALUE = 60;
      public static final int Type_EndKickPetitionMessage_VALUE = 61;
      public static final int Type_StatisticsMessage_VALUE = 62;
      public static final int Type_ChatRequestMessage_VALUE = 63;
      public static final int Type_ChatMessage_VALUE = 64;
      public static final int Type_ChatRejectMessage_VALUE = 65;
      public static final int Type_DialogMessage_VALUE = 66;
      public static final int Type_TimeoutWarningMessage_VALUE = 67;
      public static final int Type_ResetTimeoutMessage_VALUE = 68;
      public static final int Type_ReportAvatarMessage_VALUE = 69;
      public static final int Type_ReportAvatarAckMessage_VALUE = 70;
      public static final int Type_ReportGameMessage_VALUE = 71;
      public static final int Type_ReportGameAckMessage_VALUE = 72;
      public static final int Type_ErrorMessage_VALUE = 73;
      public static final int Type_AdminRemoveGameMessage_VALUE = 74;
      public static final int Type_AdminRemoveGameAckMessage_VALUE = 75;
      public static final int Type_AdminBanPlayerMessage_VALUE = 76;
      public static final int Type_AdminBanPlayerAckMessage_VALUE = 77;
      public static final int Type_GameListSpectatorJoinedMessage_VALUE = 78;
      public static final int Type_GameListSpectatorLeftMessage_VALUE = 79;
      public static final int Type_GameSpectatorJoinedMessage_VALUE = 80;
      public static final int Type_GameSpectatorLeftMessage_VALUE = 81;
      
      
      public final int getNumber() { return value; }
      
      public static PokerTHMessageType valueOf(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 com.google.protobuf.Internal.EnumLiteMap<PokerTHMessageType>
          internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<PokerTHMessageType>() {
              public PokerTHMessageType findValueByNumber(int number) {
                return PokerTHMessageType.valueOf(number);
              }
            };
      
      private final int value;
      
      private PokerTHMessageType(int index, int value) {
        this.value = value;
      }
      
      // @@protoc_insertion_point(enum_scope:PokerTHMessage.PokerTHMessageType)
    }
    
    private int bitField0_;
    private int bitField1_;
    private int bitField2_;
    // required .PokerTHMessage.PokerTHMessageType messageType = 1;
    public static final int MESSAGETYPE_FIELD_NUMBER = 1;
    private de.pokerth.protocol.ProtoBuf.PokerTHMessage.PokerTHMessageType messageType_;
    public boolean hasMessageType() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public de.pokerth.protocol.ProtoBuf.PokerTHMessage.PokerTHMessageType getMessageType() {
      return messageType_;
    }
    
    // optional .AnnounceMessage announceMessage = 2;
    public static final int ANNOUNCEMESSAGE_FIELD_NUMBER = 2;
    private de.pokerth.protocol.ProtoBuf.AnnounceMessage announceMessage_;
    public boolean hasAnnounceMessage() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public de.pokerth.protocol.ProtoBuf.AnnounceMessage getAnnounceMessage() {
      return announceMessage_;
    }
    
    // optional .InitMessage initMessage = 3;
    public static final int INITMESSAGE_FIELD_NUMBER = 3;
    private de.pokerth.protocol.ProtoBuf.InitMessage initMessage_;
    public boolean hasInitMessage() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    public de.pokerth.protocol.ProtoBuf.InitMessage getInitMessage() {
      return initMessage_;
    }
    
    // optional .AuthServerChallengeMessage authServerChallengeMessage = 4;
    public static final int AUTHSERVERCHALLENGEMESSAGE_FIELD_NUMBER = 4;
    private de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage authServerChallengeMessage_;
    public boolean hasAuthServerChallengeMessage() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    public de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage getAuthServerChallengeMessage() {
      return authServerChallengeMessage_;
    }
    
    // optional .AuthClientResponseMessage authClientResponseMessage = 5;
    public static final int AUTHCLIENTRESPONSEMESSAGE_FIELD_NUMBER = 5;
    private de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage authClientResponseMessage_;
    public boolean hasAuthClientResponseMessage() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    public de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage getAuthClientResponseMessage() {
      return authClientResponseMessage_;
    }
    
    // optional .AuthServerVerificationMessage authServerVerificationMessage = 6;
    public static final int AUTHSERVERVERIFICATIONMESSAGE_FIELD_NUMBER = 6;
    private de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage authServerVerificationMessage_;
    public boolean hasAuthServerVerificationMessage() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    public de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage getAuthServerVerificationMessage() {
      return authServerVerificationMessage_;
    }
    
    // optional .InitAckMessage initAckMessage = 7;
    public static final int INITACKMESSAGE_FIELD_NUMBER = 7;
    private de.pokerth.protocol.ProtoBuf.InitAckMessage initAckMessage_;
    public boolean hasInitAckMessage() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    public de.pokerth.protocol.ProtoBuf.InitAckMessage getInitAckMessage() {
      return initAckMessage_;
    }
    
    // optional .AvatarRequestMessage avatarRequestMessage = 8;
    public static final int AVATARREQUESTMESSAGE_FIELD_NUMBER = 8;
    private de.pokerth.protocol.ProtoBuf.AvatarRequestMessage avatarRequestMessage_;
    public boolean hasAvatarRequestMessage() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    public de.pokerth.protocol.ProtoBuf.AvatarRequestMessage getAvatarRequestMessage() {
      return avatarRequestMessage_;
    }
    
    // optional .AvatarHeaderMessage avatarHeaderMessage = 9;
    public static final int AVATARHEADERMESSAGE_FIELD_NUMBER = 9;
    private de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage avatarHeaderMessage_;
    public boolean hasAvatarHeaderMessage() {
      return ((bitField0_ & 0x00000100) == 0x00000100);
    }
    public de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage getAvatarHeaderMessage() {
      return avatarHeaderMessage_;
    }
    
    // optional .AvatarDataMessage avatarDataMessage = 10;
    public static final int AVATARDATAMESSAGE_FIELD_NUMBER = 10;
    private de.pokerth.protocol.ProtoBuf.AvatarDataMessage avatarDataMessage_;
    public boolean hasAvatarDataMessage() {
      return ((bitField0_ & 0x00000200) == 0x00000200);
    }
    public de.pokerth.protocol.ProtoBuf.AvatarDataMessage getAvatarDataMessage() {
      return avatarDataMessage_;
    }
    
    // optional .AvatarEndMessage avatarEndMessage = 11;
    public static final int AVATARENDMESSAGE_FIELD_NUMBER = 11;
    private de.pokerth.protocol.ProtoBuf.AvatarEndMessage avatarEndMessage_;
    public boolean hasAvatarEndMessage() {
      return ((bitField0_ & 0x00000400) == 0x00000400);
    }
    public de.pokerth.protocol.ProtoBuf.AvatarEndMessage getAvatarEndMessage() {
      return avatarEndMessage_;
    }
    
    // optional .UnknownAvatarMessage unknownAvatarMessage = 12;
    public static final int UNKNOWNAVATARMESSAGE_FIELD_NUMBER = 12;
    private de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage unknownAvatarMessage_;
    public boolean hasUnknownAvatarMessage() {
      return ((bitField0_ & 0x00000800) == 0x00000800);
    }
    public de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage getUnknownAvatarMessage() {
      return unknownAvatarMessage_;
    }
    
    // optional .PlayerListMessage playerListMessage = 13;
    public static final int PLAYERLISTMESSAGE_FIELD_NUMBER = 13;
    private de.pokerth.protocol.ProtoBuf.PlayerListMessage playerListMessage_;
    public boolean hasPlayerListMessage() {
      return ((bitField0_ & 0x00001000) == 0x00001000);
    }
    public de.pokerth.protocol.ProtoBuf.PlayerListMessage getPlayerListMessage() {
      return playerListMessage_;
    }
    
    // optional .GameListNewMessage gameListNewMessage = 14;
    public static final int GAMELISTNEWMESSAGE_FIELD_NUMBER = 14;
    private de.pokerth.protocol.ProtoBuf.GameListNewMessage gameListNewMessage_;
    public boolean hasGameListNewMessage() {
      return ((bitField0_ & 0x00002000) == 0x00002000);
    }
    public de.pokerth.protocol.ProtoBuf.GameListNewMessage getGameListNewMessage() {
      return gameListNewMessage_;
    }
    
    // optional .GameListUpdateMessage gameListUpdateMessage = 15;
    public static final int GAMELISTUPDATEMESSAGE_FIELD_NUMBER = 15;
    private de.pokerth.protocol.ProtoBuf.GameListUpdateMessage gameListUpdateMessage_;
    public boolean hasGameListUpdateMessage() {
      return ((bitField0_ & 0x00004000) == 0x00004000);
    }
    public de.pokerth.protocol.ProtoBuf.GameListUpdateMessage getGameListUpdateMessage() {
      return gameListUpdateMessage_;
    }
    
    // optional .GameListPlayerJoinedMessage gameListPlayerJoinedMessage = 16;
    public static final int GAMELISTPLAYERJOINEDMESSAGE_FIELD_NUMBER = 16;
    private de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage gameListPlayerJoinedMessage_;
    public boolean hasGameListPlayerJoinedMessage() {
      return ((bitField0_ & 0x00008000) == 0x00008000);
    }
    public de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage getGameListPlayerJoinedMessage() {
      return gameListPlayerJoinedMessage_;
    }
    
    // optional .GameListPlayerLeftMessage gameListPlayerLeftMessage = 17;
    public static final int GAMELISTPLAYERLEFTMESSAGE_FIELD_NUMBER = 17;
    private de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage gameListPlayerLeftMessage_;
    public boolean hasGameListPlayerLeftMessage() {
      return ((bitField0_ & 0x00010000) == 0x00010000);
    }
    public de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage getGameListPlayerLeftMessage() {
      return gameListPlayerLeftMessage_;
    }
    
    // optional .GameListAdminChangedMessage gameListAdminChangedMessage = 18;
    public static final int GAMELISTADMINCHANGEDMESSAGE_FIELD_NUMBER = 18;
    private de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage gameListAdminChangedMessage_;
    public boolean hasGameListAdminChangedMessage() {
      return ((bitField0_ & 0x00020000) == 0x00020000);
    }
    public de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage getGameListAdminChangedMessage() {
      return gameListAdminChangedMessage_;
    }
    
    // optional .PlayerInfoRequestMessage playerInfoRequestMessage = 19;
    public static final int PLAYERINFOREQUESTMESSAGE_FIELD_NUMBER = 19;
    private de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage playerInfoRequestMessage_;
    public boolean hasPlayerInfoRequestMessage() {
      return ((bitField0_ & 0x00040000) == 0x00040000);
    }
    public de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage getPlayerInfoRequestMessage() {
      return playerInfoRequestMessage_;
    }
    
    // optional .PlayerInfoReplyMessage playerInfoReplyMessage = 20;
    public static final int PLAYERINFOREPLYMESSAGE_FIELD_NUMBER = 20;
    private de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage playerInfoReplyMessage_;
    public boolean hasPlayerInfoReplyMessage() {
      return ((bitField0_ & 0x00080000) == 0x00080000);
    }
    public de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage getPlayerInfoReplyMessage() {
      return playerInfoReplyMessage_;
    }
    
    // optional .SubscriptionRequestMessage subscriptionRequestMessage = 21;
    public static final int SUBSCRIPTIONREQUESTMESSAGE_FIELD_NUMBER = 21;
    private de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage subscriptionRequestMessage_;
    public boolean hasSubscriptionRequestMessage() {
      return ((bitField0_ & 0x00100000) == 0x00100000);
    }
    public de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage getSubscriptionRequestMessage() {
      return subscriptionRequestMessage_;
    }
    
    // optional .JoinExistingGameMessage joinExistingGameMessage = 22;
    public static final int JOINEXISTINGGAMEMESSAGE_FIELD_NUMBER = 22;
    private de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage joinExistingGameMessage_;
    public boolean hasJoinExistingGameMessage() {
      return ((bitField0_ & 0x00200000) == 0x00200000);
    }
    public de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage getJoinExistingGameMessage() {
      return joinExistingGameMessage_;
    }
    
    // optional .JoinNewGameMessage joinNewGameMessage = 23;
    public static final int JOINNEWGAMEMESSAGE_FIELD_NUMBER = 23;
    private de.pokerth.protocol.ProtoBuf.JoinNewGameMessage joinNewGameMessage_;
    public boolean hasJoinNewGameMessage() {
      return ((bitField0_ & 0x00400000) == 0x00400000);
    }
    public de.pokerth.protocol.ProtoBuf.JoinNewGameMessage getJoinNewGameMessage() {
      return joinNewGameMessage_;
    }
    
    // optional .RejoinExistingGameMessage rejoinExistingGameMessage = 24;
    public static final int REJOINEXISTINGGAMEMESSAGE_FIELD_NUMBER = 24;
    private de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage rejoinExistingGameMessage_;
    public boolean hasRejoinExistingGameMessage() {
      return ((bitField0_ & 0x00800000) == 0x00800000);
    }
    public de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage getRejoinExistingGameMessage() {
      return rejoinExistingGameMessage_;
    }
    
    // optional .JoinGameAckMessage joinGameAckMessage = 25;
    public static final int JOINGAMEACKMESSAGE_FIELD_NUMBER = 25;
    private de.pokerth.protocol.ProtoBuf.JoinGameAckMessage joinGameAckMessage_;
    public boolean hasJoinGameAckMessage() {
      return ((bitField0_ & 0x01000000) == 0x01000000);
    }
    public de.pokerth.protocol.ProtoBuf.JoinGameAckMessage getJoinGameAckMessage() {
      return joinGameAckMessage_;
    }
    
    // optional .JoinGameFailedMessage joinGameFailedMessage = 26;
    public static final int JOINGAMEFAILEDMESSAGE_FIELD_NUMBER = 26;
    private de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage joinGameFailedMessage_;
    public boolean hasJoinGameFailedMessage() {
      return ((bitField0_ & 0x02000000) == 0x02000000);
    }
    public de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage getJoinGameFailedMessage() {
      return joinGameFailedMessage_;
    }
    
    // optional .GamePlayerJoinedMessage gamePlayerJoinedMessage = 27;
    public static final int GAMEPLAYERJOINEDMESSAGE_FIELD_NUMBER = 27;
    private de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage gamePlayerJoinedMessage_;
    public boolean hasGamePlayerJoinedMessage() {
      return ((bitField0_ & 0x04000000) == 0x04000000);
    }
    public de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage getGamePlayerJoinedMessage() {
      return gamePlayerJoinedMessage_;
    }
    
    // optional .GamePlayerLeftMessage gamePlayerLeftMessage = 28;
    public static final int GAMEPLAYERLEFTMESSAGE_FIELD_NUMBER = 28;
    private de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage gamePlayerLeftMessage_;
    public boolean hasGamePlayerLeftMessage() {
      return ((bitField0_ & 0x08000000) == 0x08000000);
    }
    public de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage getGamePlayerLeftMessage() {
      return gamePlayerLeftMessage_;
    }
    
    // optional .GameAdminChangedMessage gameAdminChangedMessage = 29;
    public static final int GAMEADMINCHANGEDMESSAGE_FIELD_NUMBER = 29;
    private de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage gameAdminChangedMessage_;
    public boolean hasGameAdminChangedMessage() {
      return ((bitField0_ & 0x10000000) == 0x10000000);
    }
    public de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage getGameAdminChangedMessage() {
      return gameAdminChangedMessage_;
    }
    
    // optional .RemovedFromGameMessage removedFromGameMessage = 30;
    public static final int REMOVEDFROMGAMEMESSAGE_FIELD_NUMBER = 30;
    private de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage removedFromGameMessage_;
    public boolean hasRemovedFromGameMessage() {
      return ((bitField0_ & 0x20000000) == 0x20000000);
    }
    public de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage getRemovedFromGameMessage() {
      return removedFromGameMessage_;
    }
    
    // optional .KickPlayerRequestMessage kickPlayerRequestMessage = 31;
    public static final int KICKPLAYERREQUESTMESSAGE_FIELD_NUMBER = 31;
    private de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage kickPlayerRequestMessage_;
    public boolean hasKickPlayerRequestMessage() {
      return ((bitField0_ & 0x40000000) == 0x40000000);
    }
    public de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage getKickPlayerRequestMessage() {
      return kickPlayerRequestMessage_;
    }
    
    // optional .LeaveGameRequestMessage leaveGameRequestMessage = 32;
    public static final int LEAVEGAMEREQUESTMESSAGE_FIELD_NUMBER = 32;
    private de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage leaveGameRequestMessage_;
    public boolean hasLeaveGameRequestMessage() {
      return ((bitField0_ & 0x80000000) == 0x80000000);
    }
    public de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage getLeaveGameRequestMessage() {
      return leaveGameRequestMessage_;
    }
    
    // optional .InvitePlayerToGameMessage invitePlayerToGameMessage = 33;
    public static final int INVITEPLAYERTOGAMEMESSAGE_FIELD_NUMBER = 33;
    private de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage invitePlayerToGameMessage_;
    public boolean hasInvitePlayerToGameMessage() {
      return ((bitField1_ & 0x00000001) == 0x00000001);
    }
    public de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage getInvitePlayerToGameMessage() {
      return invitePlayerToGameMessage_;
    }
    
    // optional .InviteNotifyMessage inviteNotifyMessage = 34;
    public static final int INVITENOTIFYMESSAGE_FIELD_NUMBER = 34;
    private de.pokerth.protocol.ProtoBuf.InviteNotifyMessage inviteNotifyMessage_;
    public boolean hasInviteNotifyMessage() {
      return ((bitField1_ & 0x00000002) == 0x00000002);
    }
    public de.pokerth.protocol.ProtoBuf.InviteNotifyMessage getInviteNotifyMessage() {
      return inviteNotifyMessage_;
    }
    
    // optional .RejectGameInvitationMessage rejectGameInvitationMessage = 35;
    public static final int REJECTGAMEINVITATIONMESSAGE_FIELD_NUMBER = 35;
    private de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage rejectGameInvitationMessage_;
    public boolean hasRejectGameInvitationMessage() {
      return ((bitField1_ & 0x00000004) == 0x00000004);
    }
    public de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage getRejectGameInvitationMessage() {
      return rejectGameInvitationMessage_;
    }
    
    // optional .RejectInvNotifyMessage rejectInvNotifyMessage = 36;
    public static final int REJECTINVNOTIFYMESSAGE_FIELD_NUMBER = 36;
    private de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage rejectInvNotifyMessage_;
    public boolean hasRejectInvNotifyMessage() {
      return ((bitField1_ & 0x00000008) == 0x00000008);
    }
    public de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage getRejectInvNotifyMessage() {
      return rejectInvNotifyMessage_;
    }
    
    // optional .StartEventMessage startEventMessage = 37;
    public static final int STARTEVENTMESSAGE_FIELD_NUMBER = 37;
    private de.pokerth.protocol.ProtoBuf.StartEventMessage startEventMessage_;
    public boolean hasStartEventMessage() {
      return ((bitField1_ & 0x00000010) == 0x00000010);
    }
    public de.pokerth.protocol.ProtoBuf.StartEventMessage getStartEventMessage() {
      return startEventMessage_;
    }
    
    // optional .StartEventAckMessage startEventAckMessage = 38;
    public static final int STARTEVENTACKMESSAGE_FIELD_NUMBER = 38;
    private de.pokerth.protocol.ProtoBuf.StartEventAckMessage startEventAckMessage_;
    public boolean hasStartEventAckMessage() {
      return ((bitField1_ & 0x00000020) == 0x00000020);
    }
    public de.pokerth.protocol.ProtoBuf.StartEventAckMessage getStartEventAckMessage() {
      return startEventAckMessage_;
    }
    
    // optional .GameStartInitialMessage gameStartInitialMessage = 39;
    public static final int GAMESTARTINITIALMESSAGE_FIELD_NUMBER = 39;
    private de.pokerth.protocol.ProtoBuf.GameStartInitialMessage gameStartInitialMessage_;
    public boolean hasGameStartInitialMessage() {
      return ((bitField1_ & 0x00000040) == 0x00000040);
    }
    public de.pokerth.protocol.ProtoBuf.GameStartInitialMessage getGameStartInitialMessage() {
      return gameStartInitialMessage_;
    }
    
    // optional .GameStartRejoinMessage gameStartRejoinMessage = 40;
    public static final int GAMESTARTREJOINMESSAGE_FIELD_NUMBER = 40;
    private de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage gameStartRejoinMessage_;
    public boolean hasGameStartRejoinMessage() {
      return ((bitField1_ & 0x00000080) == 0x00000080);
    }
    public de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage getGameStartRejoinMessage() {
      return gameStartRejoinMessage_;
    }
    
    // optional .HandStartMessage handStartMessage = 41;
    public static final int HANDSTARTMESSAGE_FIELD_NUMBER = 41;
    private de.pokerth.protocol.ProtoBuf.HandStartMessage handStartMessage_;
    public boolean hasHandStartMessage() {
      return ((bitField1_ & 0x00000100) == 0x00000100);
    }
    public de.pokerth.protocol.ProtoBuf.HandStartMessage getHandStartMessage() {
      return handStartMessage_;
    }
    
    // optional .PlayersTurnMessage playersTurnMessage = 42;
    public static final int PLAYERSTURNMESSAGE_FIELD_NUMBER = 42;
    private de.pokerth.protocol.ProtoBuf.PlayersTurnMessage playersTurnMessage_;
    public boolean hasPlayersTurnMessage() {
      return ((bitField1_ & 0x00000200) == 0x00000200);
    }
    public de.pokerth.protocol.ProtoBuf.PlayersTurnMessage getPlayersTurnMessage() {
      return playersTurnMessage_;
    }
    
    // optional .MyActionRequestMessage myActionRequestMessage = 43;
    public static final int MYACTIONREQUESTMESSAGE_FIELD_NUMBER = 43;
    private de.pokerth.protocol.ProtoBuf.MyActionRequestMessage myActionRequestMessage_;
    public boolean hasMyActionRequestMessage() {
      return ((bitField1_ & 0x00000400) == 0x00000400);
    }
    public de.pokerth.protocol.ProtoBuf.MyActionRequestMessage getMyActionRequestMessage() {
      return myActionRequestMessage_;
    }
    
    // optional .YourActionRejectedMessage yourActionRejectedMessage = 44;
    public static final int YOURACTIONREJECTEDMESSAGE_FIELD_NUMBER = 44;
    private de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage yourActionRejectedMessage_;
    public boolean hasYourActionRejectedMessage() {
      return ((bitField1_ & 0x00000800) == 0x00000800);
    }
    public de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage getYourActionRejectedMessage() {
      return yourActionRejectedMessage_;
    }
    
    // optional .PlayersActionDoneMessage playersActionDoneMessage = 45;
    public static final int PLAYERSACTIONDONEMESSAGE_FIELD_NUMBER = 45;
    private de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage playersActionDoneMessage_;
    public boolean hasPlayersActionDoneMessage() {
      return ((bitField1_ & 0x00001000) == 0x00001000);
    }
    public de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage getPlayersActionDoneMessage() {
      return playersActionDoneMessage_;
    }
    
    // optional .DealFlopCardsMessage dealFlopCardsMessage = 46;
    public static final int DEALFLOPCARDSMESSAGE_FIELD_NUMBER = 46;
    private de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage dealFlopCardsMessage_;
    public boolean hasDealFlopCardsMessage() {
      return ((bitField1_ & 0x00002000) == 0x00002000);
    }
    public de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage getDealFlopCardsMessage() {
      return dealFlopCardsMessage_;
    }
    
    // optional .DealTurnCardMessage dealTurnCardMessage = 47;
    public static final int DEALTURNCARDMESSAGE_FIELD_NUMBER = 47;
    private de.pokerth.protocol.ProtoBuf.DealTurnCardMessage dealTurnCardMessage_;
    public boolean hasDealTurnCardMessage() {
      return ((bitField1_ & 0x00004000) == 0x00004000);
    }
    public de.pokerth.protocol.ProtoBuf.DealTurnCardMessage getDealTurnCardMessage() {
      return dealTurnCardMessage_;
    }
    
    // optional .DealRiverCardMessage dealRiverCardMessage = 48;
    public static final int DEALRIVERCARDMESSAGE_FIELD_NUMBER = 48;
    private de.pokerth.protocol.ProtoBuf.DealRiverCardMessage dealRiverCardMessage_;
    public boolean hasDealRiverCardMessage() {
      return ((bitField1_ & 0x00008000) == 0x00008000);
    }
    public de.pokerth.protocol.ProtoBuf.DealRiverCardMessage getDealRiverCardMessage() {
      return dealRiverCardMessage_;
    }
    
    // optional .AllInShowCardsMessage allInShowCardsMessage = 49;
    public static final int ALLINSHOWCARDSMESSAGE_FIELD_NUMBER = 49;
    private de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage allInShowCardsMessage_;
    public boolean hasAllInShowCardsMessage() {
      return ((bitField1_ & 0x00010000) == 0x00010000);
    }
    public de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage getAllInShowCardsMessage() {
      return allInShowCardsMessage_;
    }
    
    // optional .EndOfHandShowCardsMessage endOfHandShowCardsMessage = 50;
    public static final int ENDOFHANDSHOWCARDSMESSAGE_FIELD_NUMBER = 50;
    private de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage endOfHandShowCardsMessage_;
    public boolean hasEndOfHandShowCardsMessage() {
      return ((bitField1_ & 0x00020000) == 0x00020000);
    }
    public de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage getEndOfHandShowCardsMessage() {
      return endOfHandShowCardsMessage_;
    }
    
    // optional .EndOfHandHideCardsMessage endOfHandHideCardsMessage = 51;
    public static final int ENDOFHANDHIDECARDSMESSAGE_FIELD_NUMBER = 51;
    private de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage endOfHandHideCardsMessage_;
    public boolean hasEndOfHandHideCardsMessage() {
      return ((bitField1_ & 0x00040000) == 0x00040000);
    }
    public de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage getEndOfHandHideCardsMessage() {
      return endOfHandHideCardsMessage_;
    }
    
    // optional .ShowMyCardsRequestMessage showMyCardsRequestMessage = 52;
    public static final int SHOWMYCARDSREQUESTMESSAGE_FIELD_NUMBER = 52;
    private de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage showMyCardsRequestMessage_;
    public boolean hasShowMyCardsRequestMessage() {
      return ((bitField1_ & 0x00080000) == 0x00080000);
    }
    public de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage getShowMyCardsRequestMessage() {
      return showMyCardsRequestMessage_;
    }
    
    // optional .AfterHandShowCardsMessage afterHandShowCardsMessage = 53;
    public static final int AFTERHANDSHOWCARDSMESSAGE_FIELD_NUMBER = 53;
    private de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage afterHandShowCardsMessage_;
    public boolean hasAfterHandShowCardsMessage() {
      return ((bitField1_ & 0x00100000) == 0x00100000);
    }
    public de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage getAfterHandShowCardsMessage() {
      return afterHandShowCardsMessage_;
    }
    
    // optional .EndOfGameMessage endOfGameMessage = 54;
    public static final int ENDOFGAMEMESSAGE_FIELD_NUMBER = 54;
    private de.pokerth.protocol.ProtoBuf.EndOfGameMessage endOfGameMessage_;
    public boolean hasEndOfGameMessage() {
      return ((bitField1_ & 0x00200000) == 0x00200000);
    }
    public de.pokerth.protocol.ProtoBuf.EndOfGameMessage getEndOfGameMessage() {
      return endOfGameMessage_;
    }
    
    // optional .PlayerIdChangedMessage playerIdChangedMessage = 55;
    public static final int PLAYERIDCHANGEDMESSAGE_FIELD_NUMBER = 55;
    private de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage playerIdChangedMessage_;
    public boolean hasPlayerIdChangedMessage() {
      return ((bitField1_ & 0x00400000) == 0x00400000);
    }
    public de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage getPlayerIdChangedMessage() {
      return playerIdChangedMessage_;
    }
    
    // optional .AskKickPlayerMessage askKickPlayerMessage = 56;
    public static final int ASKKICKPLAYERMESSAGE_FIELD_NUMBER = 56;
    private de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage askKickPlayerMessage_;
    public boolean hasAskKickPlayerMessage() {
      return ((bitField1_ & 0x00800000) == 0x00800000);
    }
    public de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage getAskKickPlayerMessage() {
      return askKickPlayerMessage_;
    }
    
    // optional .AskKickDeniedMessage askKickDeniedMessage = 57;
    public static final int ASKKICKDENIEDMESSAGE_FIELD_NUMBER = 57;
    private de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage askKickDeniedMessage_;
    public boolean hasAskKickDeniedMessage() {
      return ((bitField1_ & 0x01000000) == 0x01000000);
    }
    public de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage getAskKickDeniedMessage() {
      return askKickDeniedMessage_;
    }
    
    // optional .StartKickPetitionMessage startKickPetitionMessage = 58;
    public static final int STARTKICKPETITIONMESSAGE_FIELD_NUMBER = 58;
    private de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage startKickPetitionMessage_;
    public boolean hasStartKickPetitionMessage() {
      return ((bitField1_ & 0x02000000) == 0x02000000);
    }
    public de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage getStartKickPetitionMessage() {
      return startKickPetitionMessage_;
    }
    
    // optional .VoteKickRequestMessage voteKickRequestMessage = 59;
    public static final int VOTEKICKREQUESTMESSAGE_FIELD_NUMBER = 59;
    private de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage voteKickRequestMessage_;
    public boolean hasVoteKickRequestMessage() {
      return ((bitField1_ & 0x04000000) == 0x04000000);
    }
    public de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage getVoteKickRequestMessage() {
      return voteKickRequestMessage_;
    }
    
    // optional .VoteKickReplyMessage voteKickReplyMessage = 60;
    public static final int VOTEKICKREPLYMESSAGE_FIELD_NUMBER = 60;
    private de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage voteKickReplyMessage_;
    public boolean hasVoteKickReplyMessage() {
      return ((bitField1_ & 0x08000000) == 0x08000000);
    }
    public de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage getVoteKickReplyMessage() {
      return voteKickReplyMessage_;
    }
    
    // optional .KickPetitionUpdateMessage kickPetitionUpdateMessage = 61;
    public static final int KICKPETITIONUPDATEMESSAGE_FIELD_NUMBER = 61;
    private de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage kickPetitionUpdateMessage_;
    public boolean hasKickPetitionUpdateMessage() {
      return ((bitField1_ & 0x10000000) == 0x10000000);
    }
    public de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage getKickPetitionUpdateMessage() {
      return kickPetitionUpdateMessage_;
    }
    
    // optional .EndKickPetitionMessage endKickPetitionMessage = 62;
    public static final int ENDKICKPETITIONMESSAGE_FIELD_NUMBER = 62;
    private de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage endKickPetitionMessage_;
    public boolean hasEndKickPetitionMessage() {
      return ((bitField1_ & 0x20000000) == 0x20000000);
    }
    public de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage getEndKickPetitionMessage() {
      return endKickPetitionMessage_;
    }
    
    // optional .StatisticsMessage statisticsMessage = 63;
    public static final int STATISTICSMESSAGE_FIELD_NUMBER = 63;
    private de.pokerth.protocol.ProtoBuf.StatisticsMessage statisticsMessage_;
    public boolean hasStatisticsMessage() {
      return ((bitField1_ & 0x40000000) == 0x40000000);
    }
    public de.pokerth.protocol.ProtoBuf.StatisticsMessage getStatisticsMessage() {
      return statisticsMessage_;
    }
    
    // optional .ChatRequestMessage chatRequestMessage = 64;
    public static final int CHATREQUESTMESSAGE_FIELD_NUMBER = 64;
    private de.pokerth.protocol.ProtoBuf.ChatRequestMessage chatRequestMessage_;
    public boolean hasChatRequestMessage() {
      return ((bitField1_ & 0x80000000) == 0x80000000);
    }
    public de.pokerth.protocol.ProtoBuf.ChatRequestMessage getChatRequestMessage() {
      return chatRequestMessage_;
    }
    
    // optional .ChatMessage chatMessage = 65;
    public static final int CHATMESSAGE_FIELD_NUMBER = 65;
    private de.pokerth.protocol.ProtoBuf.ChatMessage chatMessage_;
    public boolean hasChatMessage() {
      return ((bitField2_ & 0x00000001) == 0x00000001);
    }
    public de.pokerth.protocol.ProtoBuf.ChatMessage getChatMessage() {
      return chatMessage_;
    }
    
    // optional .ChatRejectMessage chatRejectMessage = 66;
    public static final int CHATREJECTMESSAGE_FIELD_NUMBER = 66;
    private de.pokerth.protocol.ProtoBuf.ChatRejectMessage chatRejectMessage_;
    public boolean hasChatRejectMessage() {
      return ((bitField2_ & 0x00000002) == 0x00000002);
    }
    public de.pokerth.protocol.ProtoBuf.ChatRejectMessage getChatRejectMessage() {
      return chatRejectMessage_;
    }
    
    // optional .DialogMessage dialogMessage = 67;
    public static final int DIALOGMESSAGE_FIELD_NUMBER = 67;
    private de.pokerth.protocol.ProtoBuf.DialogMessage dialogMessage_;
    public boolean hasDialogMessage() {
      return ((bitField2_ & 0x00000004) == 0x00000004);
    }
    public de.pokerth.protocol.ProtoBuf.DialogMessage getDialogMessage() {
      return dialogMessage_;
    }
    
    // optional .TimeoutWarningMessage timeoutWarningMessage = 68;
    public static final int TIMEOUTWARNINGMESSAGE_FIELD_NUMBER = 68;
    private de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage timeoutWarningMessage_;
    public boolean hasTimeoutWarningMessage() {
      return ((bitField2_ & 0x00000008) == 0x00000008);
    }
    public de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage getTimeoutWarningMessage() {
      return timeoutWarningMessage_;
    }
    
    // optional .ResetTimeoutMessage resetTimeoutMessage = 69;
    public static final int RESETTIMEOUTMESSAGE_FIELD_NUMBER = 69;
    private de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage resetTimeoutMessage_;
    public boolean hasResetTimeoutMessage() {
      return ((bitField2_ & 0x00000010) == 0x00000010);
    }
    public de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage getResetTimeoutMessage() {
      return resetTimeoutMessage_;
    }
    
    // optional .ReportAvatarMessage reportAvatarMessage = 70;
    public static final int REPORTAVATARMESSAGE_FIELD_NUMBER = 70;
    private de.pokerth.protocol.ProtoBuf.ReportAvatarMessage reportAvatarMessage_;
    public boolean hasReportAvatarMessage() {
      return ((bitField2_ & 0x00000020) == 0x00000020);
    }
    public de.pokerth.protocol.ProtoBuf.ReportAvatarMessage getReportAvatarMessage() {
      return reportAvatarMessage_;
    }
    
    // optional .ReportAvatarAckMessage reportAvatarAckMessage = 71;
    public static final int REPORTAVATARACKMESSAGE_FIELD_NUMBER = 71;
    private de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage reportAvatarAckMessage_;
    public boolean hasReportAvatarAckMessage() {
      return ((bitField2_ & 0x00000040) == 0x00000040);
    }
    public de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage getReportAvatarAckMessage() {
      return reportAvatarAckMessage_;
    }
    
    // optional .ReportGameMessage reportGameMessage = 72;
    public static final int REPORTGAMEMESSAGE_FIELD_NUMBER = 72;
    private de.pokerth.protocol.ProtoBuf.ReportGameMessage reportGameMessage_;
    public boolean hasReportGameMessage() {
      return ((bitField2_ & 0x00000080) == 0x00000080);
    }
    public de.pokerth.protocol.ProtoBuf.ReportGameMessage getReportGameMessage() {
      return reportGameMessage_;
    }
    
    // optional .ReportGameAckMessage reportGameAckMessage = 73;
    public static final int REPORTGAMEACKMESSAGE_FIELD_NUMBER = 73;
    private de.pokerth.protocol.ProtoBuf.ReportGameAckMessage reportGameAckMessage_;
    public boolean hasReportGameAckMessage() {
      return ((bitField2_ & 0x00000100) == 0x00000100);
    }
    public de.pokerth.protocol.ProtoBuf.ReportGameAckMessage getReportGameAckMessage() {
      return reportGameAckMessage_;
    }
    
    // optional .ErrorMessage errorMessage = 74;
    public static final int ERRORMESSAGE_FIELD_NUMBER = 74;
    private de.pokerth.protocol.ProtoBuf.ErrorMessage errorMessage_;
    public boolean hasErrorMessage() {
      return ((bitField2_ & 0x00000200) == 0x00000200);
    }
    public de.pokerth.protocol.ProtoBuf.ErrorMessage getErrorMessage() {
      return errorMessage_;
    }
    
    // optional .AdminRemoveGameMessage adminRemoveGameMessage = 75;
    public static final int ADMINREMOVEGAMEMESSAGE_FIELD_NUMBER = 75;
    private de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage adminRemoveGameMessage_;
    public boolean hasAdminRemoveGameMessage() {
      return ((bitField2_ & 0x00000400) == 0x00000400);
    }
    public de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage getAdminRemoveGameMessage() {
      return adminRemoveGameMessage_;
    }
    
    // optional .AdminRemoveGameAckMessage adminRemoveGameAckMessage = 76;
    public static final int ADMINREMOVEGAMEACKMESSAGE_FIELD_NUMBER = 76;
    private de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage adminRemoveGameAckMessage_;
    public boolean hasAdminRemoveGameAckMessage() {
      return ((bitField2_ & 0x00000800) == 0x00000800);
    }
    public de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage getAdminRemoveGameAckMessage() {
      return adminRemoveGameAckMessage_;
    }
    
    // optional .AdminBanPlayerMessage adminBanPlayerMessage = 77;
    public static final int ADMINBANPLAYERMESSAGE_FIELD_NUMBER = 77;
    private de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage adminBanPlayerMessage_;
    public boolean hasAdminBanPlayerMessage() {
      return ((bitField2_ & 0x00001000) == 0x00001000);
    }
    public de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage getAdminBanPlayerMessage() {
      return adminBanPlayerMessage_;
    }
    
    // optional .AdminBanPlayerAckMessage adminBanPlayerAckMessage = 78;
    public static final int ADMINBANPLAYERACKMESSAGE_FIELD_NUMBER = 78;
    private de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage adminBanPlayerAckMessage_;
    public boolean hasAdminBanPlayerAckMessage() {
      return ((bitField2_ & 0x00002000) == 0x00002000);
    }
    public de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage getAdminBanPlayerAckMessage() {
      return adminBanPlayerAckMessage_;
    }
    
    // optional .GameListSpectatorJoinedMessage gameListSpectatorJoinedMessage = 79;
    public static final int GAMELISTSPECTATORJOINEDMESSAGE_FIELD_NUMBER = 79;
    private de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage gameListSpectatorJoinedMessage_;
    public boolean hasGameListSpectatorJoinedMessage() {
      return ((bitField2_ & 0x00004000) == 0x00004000);
    }
    public de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage getGameListSpectatorJoinedMessage() {
      return gameListSpectatorJoinedMessage_;
    }
    
    // optional .GameListSpectatorLeftMessage gameListSpectatorLeftMessage = 80;
    public static final int GAMELISTSPECTATORLEFTMESSAGE_FIELD_NUMBER = 80;
    private de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage gameListSpectatorLeftMessage_;
    public boolean hasGameListSpectatorLeftMessage() {
      return ((bitField2_ & 0x00008000) == 0x00008000);
    }
    public de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage getGameListSpectatorLeftMessage() {
      return gameListSpectatorLeftMessage_;
    }
    
    // optional .GameSpectatorJoinedMessage gameSpectatorJoinedMessage = 81;
    public static final int GAMESPECTATORJOINEDMESSAGE_FIELD_NUMBER = 81;
    private de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage gameSpectatorJoinedMessage_;
    public boolean hasGameSpectatorJoinedMessage() {
      return ((bitField2_ & 0x00010000) == 0x00010000);
    }
    public de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage getGameSpectatorJoinedMessage() {
      return gameSpectatorJoinedMessage_;
    }
    
    // optional .GameSpectatorLeftMessage gameSpectatorLeftMessage = 82;
    public static final int GAMESPECTATORLEFTMESSAGE_FIELD_NUMBER = 82;
    private de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage gameSpectatorLeftMessage_;
    public boolean hasGameSpectatorLeftMessage() {
      return ((bitField2_ & 0x00020000) == 0x00020000);
    }
    public de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage getGameSpectatorLeftMessage() {
      return gameSpectatorLeftMessage_;
    }
    
    private void initFields() {
      messageType_ = de.pokerth.protocol.ProtoBuf.PokerTHMessage.PokerTHMessageType.Type_AnnounceMessage;
      announceMessage_ = de.pokerth.protocol.ProtoBuf.AnnounceMessage.getDefaultInstance();
      initMessage_ = de.pokerth.protocol.ProtoBuf.InitMessage.getDefaultInstance();
      authServerChallengeMessage_ = de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage.getDefaultInstance();
      authClientResponseMessage_ = de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage.getDefaultInstance();
      authServerVerificationMessage_ = de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage.getDefaultInstance();
      initAckMessage_ = de.pokerth.protocol.ProtoBuf.InitAckMessage.getDefaultInstance();
      avatarRequestMessage_ = de.pokerth.protocol.ProtoBuf.AvatarRequestMessage.getDefaultInstance();
      avatarHeaderMessage_ = de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage.getDefaultInstance();
      avatarDataMessage_ = de.pokerth.protocol.ProtoBuf.AvatarDataMessage.getDefaultInstance();
      avatarEndMessage_ = de.pokerth.protocol.ProtoBuf.AvatarEndMessage.getDefaultInstance();
      unknownAvatarMessage_ = de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage.getDefaultInstance();
      playerListMessage_ = de.pokerth.protocol.ProtoBuf.PlayerListMessage.getDefaultInstance();
      gameListNewMessage_ = de.pokerth.protocol.ProtoBuf.GameListNewMessage.getDefaultInstance();
      gameListUpdateMessage_ = de.pokerth.protocol.ProtoBuf.GameListUpdateMessage.getDefaultInstance();
      gameListPlayerJoinedMessage_ = de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage.getDefaultInstance();
      gameListPlayerLeftMessage_ = de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage.getDefaultInstance();
      gameListAdminChangedMessage_ = de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage.getDefaultInstance();
      playerInfoRequestMessage_ = de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage.getDefaultInstance();
      playerInfoReplyMessage_ = de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.getDefaultInstance();
      subscriptionRequestMessage_ = de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.getDefaultInstance();
      joinExistingGameMessage_ = de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage.getDefaultInstance();
      joinNewGameMessage_ = de.pokerth.protocol.ProtoBuf.JoinNewGameMessage.getDefaultInstance();
      rejoinExistingGameMessage_ = de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage.getDefaultInstance();
      joinGameAckMessage_ = de.pokerth.protocol.ProtoBuf.JoinGameAckMessage.getDefaultInstance();
      joinGameFailedMessage_ = de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.getDefaultInstance();
      gamePlayerJoinedMessage_ = de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage.getDefaultInstance();
      gamePlayerLeftMessage_ = de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.getDefaultInstance();
      gameAdminChangedMessage_ = de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage.getDefaultInstance();
      removedFromGameMessage_ = de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.getDefaultInstance();
      kickPlayerRequestMessage_ = de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage.getDefaultInstance();
      leaveGameRequestMessage_ = de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage.getDefaultInstance();
      invitePlayerToGameMessage_ = de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage.getDefaultInstance();
      inviteNotifyMessage_ = de.pokerth.protocol.ProtoBuf.InviteNotifyMessage.getDefaultInstance();
      rejectGameInvitationMessage_ = de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.getDefaultInstance();
      rejectInvNotifyMessage_ = de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage.getDefaultInstance();
      startEventMessage_ = de.pokerth.protocol.ProtoBuf.StartEventMessage.getDefaultInstance();
      startEventAckMessage_ = de.pokerth.protocol.ProtoBuf.StartEventAckMessage.getDefaultInstance();
      gameStartInitialMessage_ = de.pokerth.protocol.ProtoBuf.GameStartInitialMessage.getDefaultInstance();
      gameStartRejoinMessage_ = de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.getDefaultInstance();
      handStartMessage_ = de.pokerth.protocol.ProtoBuf.HandStartMessage.getDefaultInstance();
      playersTurnMessage_ = de.pokerth.protocol.ProtoBuf.PlayersTurnMessage.getDefaultInstance();
      myActionRequestMessage_ = de.pokerth.protocol.ProtoBuf.MyActionRequestMessage.getDefaultInstance();
      yourActionRejectedMessage_ = de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.getDefaultInstance();
      playersActionDoneMessage_ = de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage.getDefaultInstance();
      dealFlopCardsMessage_ = de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage.getDefaultInstance();
      dealTurnCardMessage_ = de.pokerth.protocol.ProtoBuf.DealTurnCardMessage.getDefaultInstance();
      dealRiverCardMessage_ = de.pokerth.protocol.ProtoBuf.DealRiverCardMessage.getDefaultInstance();
      allInShowCardsMessage_ = de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.getDefaultInstance();
      endOfHandShowCardsMessage_ = de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage.getDefaultInstance();
      endOfHandHideCardsMessage_ = de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage.getDefaultInstance();
      showMyCardsRequestMessage_ = de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage.getDefaultInstance();
      afterHandShowCardsMessage_ = de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage.getDefaultInstance();
      endOfGameMessage_ = de.pokerth.protocol.ProtoBuf.EndOfGameMessage.getDefaultInstance();
      playerIdChangedMessage_ = de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage.getDefaultInstance();
      askKickPlayerMessage_ = de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage.getDefaultInstance();
      askKickDeniedMessage_ = de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.getDefaultInstance();
      startKickPetitionMessage_ = de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage.getDefaultInstance();
      voteKickRequestMessage_ = de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage.getDefaultInstance();
      voteKickReplyMessage_ = de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.getDefaultInstance();
      kickPetitionUpdateMessage_ = de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage.getDefaultInstance();
      endKickPetitionMessage_ = de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.getDefaultInstance();
      statisticsMessage_ = de.pokerth.protocol.ProtoBuf.StatisticsMessage.getDefaultInstance();
      chatRequestMessage_ = de.pokerth.protocol.ProtoBuf.ChatRequestMessage.getDefaultInstance();
      chatMessage_ = de.pokerth.protocol.ProtoBuf.ChatMessage.getDefaultInstance();
      chatRejectMessage_ = de.pokerth.protocol.ProtoBuf.ChatRejectMessage.getDefaultInstance();
      dialogMessage_ = de.pokerth.protocol.ProtoBuf.DialogMessage.getDefaultInstance();
      timeoutWarningMessage_ = de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.getDefaultInstance();
      resetTimeoutMessage_ = de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage.getDefaultInstance();
      reportAvatarMessage_ = de.pokerth.protocol.ProtoBuf.ReportAvatarMessage.getDefaultInstance();
      reportAvatarAckMessage_ = de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.getDefaultInstance();
      reportGameMessage_ = de.pokerth.protocol.ProtoBuf.ReportGameMessage.getDefaultInstance();
      reportGameAckMessage_ = de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.getDefaultInstance();
      errorMessage_ = de.pokerth.protocol.ProtoBuf.ErrorMessage.getDefaultInstance();
      adminRemoveGameMessage_ = de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage.getDefaultInstance();
      adminRemoveGameAckMessage_ = de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.getDefaultInstance();
      adminBanPlayerMessage_ = de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage.getDefaultInstance();
      adminBanPlayerAckMessage_ = de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.getDefaultInstance();
      gameListSpectatorJoinedMessage_ = de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage.getDefaultInstance();
      gameListSpectatorLeftMessage_ = de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage.getDefaultInstance();
      gameSpectatorJoinedMessage_ = de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage.getDefaultInstance();
      gameSpectatorLeftMessage_ = de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      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;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeEnum(1, messageType_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, announceMessage_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(3, initMessage_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeMessage(4, authServerChallengeMessage_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeMessage(5, authClientResponseMessage_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeMessage(6, authServerVerificationMessage_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeMessage(7, initAckMessage_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeMessage(8, avatarRequestMessage_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        output.writeMessage(9, avatarHeaderMessage_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        output.writeMessage(10, avatarDataMessage_);
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        output.writeMessage(11, avatarEndMessage_);
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        output.writeMessage(12, unknownAvatarMessage_);
      }
      if (((bitField0_ & 0x00001000) == 0x00001000)) {
        output.writeMessage(13, playerListMessage_);
      }
      if (((bitField0_ & 0x00002000) == 0x00002000)) {
        output.writeMessage(14, gameListNewMessage_);
      }
      if (((bitField0_ & 0x00004000) == 0x00004000)) {
        output.writeMessage(15, gameListUpdateMessage_);
      }
      if (((bitField0_ & 0x00008000) == 0x00008000)) {
        output.writeMessage(16, gameListPlayerJoinedMessage_);
      }
      if (((bitField0_ & 0x00010000) == 0x00010000)) {
        output.writeMessage(17, gameListPlayerLeftMessage_);
      }
      if (((bitField0_ & 0x00020000) == 0x00020000)) {
        output.writeMessage(18, gameListAdminChangedMessage_);
      }
      if (((bitField0_ & 0x00040000) == 0x00040000)) {
        output.writeMessage(19, playerInfoRequestMessage_);
      }
      if (((bitField0_ & 0x00080000) == 0x00080000)) {
        output.writeMessage(20, playerInfoReplyMessage_);
      }
      if (((bitField0_ & 0x00100000) == 0x00100000)) {
        output.writeMessage(21, subscriptionRequestMessage_);
      }
      if (((bitField0_ & 0x00200000) == 0x00200000)) {
        output.writeMessage(22, joinExistingGameMessage_);
      }
      if (((bitField0_ & 0x00400000) == 0x00400000)) {
        output.writeMessage(23, joinNewGameMessage_);
      }
      if (((bitField0_ & 0x00800000) == 0x00800000)) {
        output.writeMessage(24, rejoinExistingGameMessage_);
      }
      if (((bitField0_ & 0x01000000) == 0x01000000)) {
        output.writeMessage(25, joinGameAckMessage_);
      }
      if (((bitField0_ & 0x02000000) == 0x02000000)) {
        output.writeMessage(26, joinGameFailedMessage_);
      }
      if (((bitField0_ & 0x04000000) == 0x04000000)) {
        output.writeMessage(27, gamePlayerJoinedMessage_);
      }
      if (((bitField0_ & 0x08000000) == 0x08000000)) {
        output.writeMessage(28, gamePlayerLeftMessage_);
      }
      if (((bitField0_ & 0x10000000) == 0x10000000)) {
        output.writeMessage(29, gameAdminChangedMessage_);
      }
      if (((bitField0_ & 0x20000000) == 0x20000000)) {
        output.writeMessage(30, removedFromGameMessage_);
      }
      if (((bitField0_ & 0x40000000) == 0x40000000)) {
        output.writeMessage(31, kickPlayerRequestMessage_);
      }
      if (((bitField0_ & 0x80000000) == 0x80000000)) {
        output.writeMessage(32, leaveGameRequestMessage_);
      }
      if (((bitField1_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(33, invitePlayerToGameMessage_);
      }
      if (((bitField1_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(34, inviteNotifyMessage_);
      }
      if (((bitField1_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(35, rejectGameInvitationMessage_);
      }
      if (((bitField1_ & 0x00000008) == 0x00000008)) {
        output.writeMessage(36, rejectInvNotifyMessage_);
      }
      if (((bitField1_ & 0x00000010) == 0x00000010)) {
        output.writeMessage(37, startEventMessage_);
      }
      if (((bitField1_ & 0x00000020) == 0x00000020)) {
        output.writeMessage(38, startEventAckMessage_);
      }
      if (((bitField1_ & 0x00000040) == 0x00000040)) {
        output.writeMessage(39, gameStartInitialMessage_);
      }
      if (((bitField1_ & 0x00000080) == 0x00000080)) {
        output.writeMessage(40, gameStartRejoinMessage_);
      }
      if (((bitField1_ & 0x00000100) == 0x00000100)) {
        output.writeMessage(41, handStartMessage_);
      }
      if (((bitField1_ & 0x00000200) == 0x00000200)) {
        output.writeMessage(42, playersTurnMessage_);
      }
      if (((bitField1_ & 0x00000400) == 0x00000400)) {
        output.writeMessage(43, myActionRequestMessage_);
      }
      if (((bitField1_ & 0x00000800) == 0x00000800)) {
        output.writeMessage(44, yourActionRejectedMessage_);
      }
      if (((bitField1_ & 0x00001000) == 0x00001000)) {
        output.writeMessage(45, playersActionDoneMessage_);
      }
      if (((bitField1_ & 0x00002000) == 0x00002000)) {
        output.writeMessage(46, dealFlopCardsMessage_);
      }
      if (((bitField1_ & 0x00004000) == 0x00004000)) {
        output.writeMessage(47, dealTurnCardMessage_);
      }
      if (((bitField1_ & 0x00008000) == 0x00008000)) {
        output.writeMessage(48, dealRiverCardMessage_);
      }
      if (((bitField1_ & 0x00010000) == 0x00010000)) {
        output.writeMessage(49, allInShowCardsMessage_);
      }
      if (((bitField1_ & 0x00020000) == 0x00020000)) {
        output.writeMessage(50, endOfHandShowCardsMessage_);
      }
      if (((bitField1_ & 0x00040000) == 0x00040000)) {
        output.writeMessage(51, endOfHandHideCardsMessage_);
      }
      if (((bitField1_ & 0x00080000) == 0x00080000)) {
        output.writeMessage(52, showMyCardsRequestMessage_);
      }
      if (((bitField1_ & 0x00100000) == 0x00100000)) {
        output.writeMessage(53, afterHandShowCardsMessage_);
      }
      if (((bitField1_ & 0x00200000) == 0x00200000)) {
        output.writeMessage(54, endOfGameMessage_);
      }
      if (((bitField1_ & 0x00400000) == 0x00400000)) {
        output.writeMessage(55, playerIdChangedMessage_);
      }
      if (((bitField1_ & 0x00800000) == 0x00800000)) {
        output.writeMessage(56, askKickPlayerMessage_);
      }
      if (((bitField1_ & 0x01000000) == 0x01000000)) {
        output.writeMessage(57, askKickDeniedMessage_);
      }
      if (((bitField1_ & 0x02000000) == 0x02000000)) {
        output.writeMessage(58, startKickPetitionMessage_);
      }
      if (((bitField1_ & 0x04000000) == 0x04000000)) {
        output.writeMessage(59, voteKickRequestMessage_);
      }
      if (((bitField1_ & 0x08000000) == 0x08000000)) {
        output.writeMessage(60, voteKickReplyMessage_);
      }
      if (((bitField1_ & 0x10000000) == 0x10000000)) {
        output.writeMessage(61, kickPetitionUpdateMessage_);
      }
      if (((bitField1_ & 0x20000000) == 0x20000000)) {
        output.writeMessage(62, endKickPetitionMessage_);
      }
      if (((bitField1_ & 0x40000000) == 0x40000000)) {
        output.writeMessage(63, statisticsMessage_);
      }
      if (((bitField1_ & 0x80000000) == 0x80000000)) {
        output.writeMessage(64, chatRequestMessage_);
      }
      if (((bitField2_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(65, chatMessage_);
      }
      if (((bitField2_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(66, chatRejectMessage_);
      }
      if (((bitField2_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(67, dialogMessage_);
      }
      if (((bitField2_ & 0x00000008) == 0x00000008)) {
        output.writeMessage(68, timeoutWarningMessage_);
      }
      if (((bitField2_ & 0x00000010) == 0x00000010)) {
        output.writeMessage(69, resetTimeoutMessage_);
      }
      if (((bitField2_ & 0x00000020) == 0x00000020)) {
        output.writeMessage(70, reportAvatarMessage_);
      }
      if (((bitField2_ & 0x00000040) == 0x00000040)) {
        output.writeMessage(71, reportAvatarAckMessage_);
      }
      if (((bitField2_ & 0x00000080) == 0x00000080)) {
        output.writeMessage(72, reportGameMessage_);
      }
      if (((bitField2_ & 0x00000100) == 0x00000100)) {
        output.writeMessage(73, reportGameAckMessage_);
      }
      if (((bitField2_ & 0x00000200) == 0x00000200)) {
        output.writeMessage(74, errorMessage_);
      }
      if (((bitField2_ & 0x00000400) == 0x00000400)) {
        output.writeMessage(75, adminRemoveGameMessage_);
      }
      if (((bitField2_ & 0x00000800) == 0x00000800)) {
        output.writeMessage(76, adminRemoveGameAckMessage_);
      }
      if (((bitField2_ & 0x00001000) == 0x00001000)) {
        output.writeMessage(77, adminBanPlayerMessage_);
      }
      if (((bitField2_ & 0x00002000) == 0x00002000)) {
        output.writeMessage(78, adminBanPlayerAckMessage_);
      }
      if (((bitField2_ & 0x00004000) == 0x00004000)) {
        output.writeMessage(79, gameListSpectatorJoinedMessage_);
      }
      if (((bitField2_ & 0x00008000) == 0x00008000)) {
        output.writeMessage(80, gameListSpectatorLeftMessage_);
      }
      if (((bitField2_ & 0x00010000) == 0x00010000)) {
        output.writeMessage(81, gameSpectatorJoinedMessage_);
      }
      if (((bitField2_ & 0x00020000) == 0x00020000)) {
        output.writeMessage(82, gameSpectatorLeftMessage_);
      }
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, messageType_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, announceMessage_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, initMessage_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, authServerChallengeMessage_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, authClientResponseMessage_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, authServerVerificationMessage_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, initAckMessage_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(8, avatarRequestMessage_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(9, avatarHeaderMessage_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(10, avatarDataMessage_);
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(11, avatarEndMessage_);
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(12, unknownAvatarMessage_);
      }
      if (((bitField0_ & 0x00001000) == 0x00001000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(13, playerListMessage_);
      }
      if (((bitField0_ & 0x00002000) == 0x00002000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(14, gameListNewMessage_);
      }
      if (((bitField0_ & 0x00004000) == 0x00004000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(15, gameListUpdateMessage_);
      }
      if (((bitField0_ & 0x00008000) == 0x00008000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(16, gameListPlayerJoinedMessage_);
      }
      if (((bitField0_ & 0x00010000) == 0x00010000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(17, gameListPlayerLeftMessage_);
      }
      if (((bitField0_ & 0x00020000) == 0x00020000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(18, gameListAdminChangedMessage_);
      }
      if (((bitField0_ & 0x00040000) == 0x00040000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(19, playerInfoRequestMessage_);
      }
      if (((bitField0_ & 0x00080000) == 0x00080000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(20, playerInfoReplyMessage_);
      }
      if (((bitField0_ & 0x00100000) == 0x00100000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(21, subscriptionRequestMessage_);
      }
      if (((bitField0_ & 0x00200000) == 0x00200000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(22, joinExistingGameMessage_);
      }
      if (((bitField0_ & 0x00400000) == 0x00400000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(23, joinNewGameMessage_);
      }
      if (((bitField0_ & 0x00800000) == 0x00800000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(24, rejoinExistingGameMessage_);
      }
      if (((bitField0_ & 0x01000000) == 0x01000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(25, joinGameAckMessage_);
      }
      if (((bitField0_ & 0x02000000) == 0x02000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(26, joinGameFailedMessage_);
      }
      if (((bitField0_ & 0x04000000) == 0x04000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(27, gamePlayerJoinedMessage_);
      }
      if (((bitField0_ & 0x08000000) == 0x08000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(28, gamePlayerLeftMessage_);
      }
      if (((bitField0_ & 0x10000000) == 0x10000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(29, gameAdminChangedMessage_);
      }
      if (((bitField0_ & 0x20000000) == 0x20000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(30, removedFromGameMessage_);
      }
      if (((bitField0_ & 0x40000000) == 0x40000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(31, kickPlayerRequestMessage_);
      }
      if (((bitField0_ & 0x80000000) == 0x80000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(32, leaveGameRequestMessage_);
      }
      if (((bitField1_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(33, invitePlayerToGameMessage_);
      }
      if (((bitField1_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(34, inviteNotifyMessage_);
      }
      if (((bitField1_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(35, rejectGameInvitationMessage_);
      }
      if (((bitField1_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(36, rejectInvNotifyMessage_);
      }
      if (((bitField1_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(37, startEventMessage_);
      }
      if (((bitField1_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(38, startEventAckMessage_);
      }
      if (((bitField1_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(39, gameStartInitialMessage_);
      }
      if (((bitField1_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(40, gameStartRejoinMessage_);
      }
      if (((bitField1_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(41, handStartMessage_);
      }
      if (((bitField1_ & 0x00000200) == 0x00000200)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(42, playersTurnMessage_);
      }
      if (((bitField1_ & 0x00000400) == 0x00000400)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(43, myActionRequestMessage_);
      }
      if (((bitField1_ & 0x00000800) == 0x00000800)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(44, yourActionRejectedMessage_);
      }
      if (((bitField1_ & 0x00001000) == 0x00001000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(45, playersActionDoneMessage_);
      }
      if (((bitField1_ & 0x00002000) == 0x00002000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(46, dealFlopCardsMessage_);
      }
      if (((bitField1_ & 0x00004000) == 0x00004000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(47, dealTurnCardMessage_);
      }
      if (((bitField1_ & 0x00008000) == 0x00008000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(48, dealRiverCardMessage_);
      }
      if (((bitField1_ & 0x00010000) == 0x00010000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(49, allInShowCardsMessage_);
      }
      if (((bitField1_ & 0x00020000) == 0x00020000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(50, endOfHandShowCardsMessage_);
      }
      if (((bitField1_ & 0x00040000) == 0x00040000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(51, endOfHandHideCardsMessage_);
      }
      if (((bitField1_ & 0x00080000) == 0x00080000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(52, showMyCardsRequestMessage_);
      }
      if (((bitField1_ & 0x00100000) == 0x00100000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(53, afterHandShowCardsMessage_);
      }
      if (((bitField1_ & 0x00200000) == 0x00200000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(54, endOfGameMessage_);
      }
      if (((bitField1_ & 0x00400000) == 0x00400000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(55, playerIdChangedMessage_);
      }
      if (((bitField1_ & 0x00800000) == 0x00800000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(56, askKickPlayerMessage_);
      }
      if (((bitField1_ & 0x01000000) == 0x01000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(57, askKickDeniedMessage_);
      }
      if (((bitField1_ & 0x02000000) == 0x02000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(58, startKickPetitionMessage_);
      }
      if (((bitField1_ & 0x04000000) == 0x04000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(59, voteKickRequestMessage_);
      }
      if (((bitField1_ & 0x08000000) == 0x08000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(60, voteKickReplyMessage_);
      }
      if (((bitField1_ & 0x10000000) == 0x10000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(61, kickPetitionUpdateMessage_);
      }
      if (((bitField1_ & 0x20000000) == 0x20000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(62, endKickPetitionMessage_);
      }
      if (((bitField1_ & 0x40000000) == 0x40000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(63, statisticsMessage_);
      }
      if (((bitField1_ & 0x80000000) == 0x80000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(64, chatRequestMessage_);
      }
      if (((bitField2_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(65, chatMessage_);
      }
      if (((bitField2_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(66, chatRejectMessage_);
      }
      if (((bitField2_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(67, dialogMessage_);
      }
      if (((bitField2_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(68, timeoutWarningMessage_);
      }
      if (((bitField2_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(69, resetTimeoutMessage_);
      }
      if (((bitField2_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(70, reportAvatarMessage_);
      }
      if (((bitField2_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(71, reportAvatarAckMessage_);
      }
      if (((bitField2_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(72, reportGameMessage_);
      }
      if (((bitField2_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(73, reportGameAckMessage_);
      }
      if (((bitField2_ & 0x00000200) == 0x00000200)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(74, errorMessage_);
      }
      if (((bitField2_ & 0x00000400) == 0x00000400)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(75, adminRemoveGameMessage_);
      }
      if (((bitField2_ & 0x00000800) == 0x00000800)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(76, adminRemoveGameAckMessage_);
      }
      if (((bitField2_ & 0x00001000) == 0x00001000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(77, adminBanPlayerMessage_);
      }
      if (((bitField2_ & 0x00002000) == 0x00002000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(78, adminBanPlayerAckMessage_);
      }
      if (((bitField2_ & 0x00004000) == 0x00004000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(79, gameListSpectatorJoinedMessage_);
      }
      if (((bitField2_ & 0x00008000) == 0x00008000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(80, gameListSpectatorLeftMessage_);
      }
      if (((bitField2_ & 0x00010000) == 0x00010000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(81, gameSpectatorJoinedMessage_);
      }
      if (((bitField2_ & 0x00020000) == 0x00020000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(82, gameSpectatorLeftMessage_);
      }
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static de.pokerth.protocol.ProtoBuf.PokerTHMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.PokerTHMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.PokerTHMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.PokerTHMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.PokerTHMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.PokerTHMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.PokerTHMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.PokerTHMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static de.pokerth.protocol.ProtoBuf.PokerTHMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static de.pokerth.protocol.ProtoBuf.PokerTHMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(de.pokerth.protocol.ProtoBuf.PokerTHMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          de.pokerth.protocol.ProtoBuf.PokerTHMessage, Builder>
        implements de.pokerth.protocol.ProtoBuf.PokerTHMessageOrBuilder {
      // Construct using de.pokerth.protocol.ProtoBuf.PokerTHMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private void maybeForceBuilderInitialization() {
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        messageType_ = de.pokerth.protocol.ProtoBuf.PokerTHMessage.PokerTHMessageType.Type_AnnounceMessage;
        bitField0_ = (bitField0_ & ~0x00000001);
        announceMessage_ = de.pokerth.protocol.ProtoBuf.AnnounceMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000002);
        initMessage_ = de.pokerth.protocol.ProtoBuf.InitMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000004);
        authServerChallengeMessage_ = de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000008);
        authClientResponseMessage_ = de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000010);
        authServerVerificationMessage_ = de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000020);
        initAckMessage_ = de.pokerth.protocol.ProtoBuf.InitAckMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000040);
        avatarRequestMessage_ = de.pokerth.protocol.ProtoBuf.AvatarRequestMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000080);
        avatarHeaderMessage_ = de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000100);
        avatarDataMessage_ = de.pokerth.protocol.ProtoBuf.AvatarDataMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000200);
        avatarEndMessage_ = de.pokerth.protocol.ProtoBuf.AvatarEndMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000400);
        unknownAvatarMessage_ = de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00000800);
        playerListMessage_ = de.pokerth.protocol.ProtoBuf.PlayerListMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00001000);
        gameListNewMessage_ = de.pokerth.protocol.ProtoBuf.GameListNewMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00002000);
        gameListUpdateMessage_ = de.pokerth.protocol.ProtoBuf.GameListUpdateMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00004000);
        gameListPlayerJoinedMessage_ = de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00008000);
        gameListPlayerLeftMessage_ = de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00010000);
        gameListAdminChangedMessage_ = de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00020000);
        playerInfoRequestMessage_ = de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00040000);
        playerInfoReplyMessage_ = de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00080000);
        subscriptionRequestMessage_ = de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00100000);
        joinExistingGameMessage_ = de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00200000);
        joinNewGameMessage_ = de.pokerth.protocol.ProtoBuf.JoinNewGameMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00400000);
        rejoinExistingGameMessage_ = de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x00800000);
        joinGameAckMessage_ = de.pokerth.protocol.ProtoBuf.JoinGameAckMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x01000000);
        joinGameFailedMessage_ = de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x02000000);
        gamePlayerJoinedMessage_ = de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x04000000);
        gamePlayerLeftMessage_ = de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x08000000);
        gameAdminChangedMessage_ = de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x10000000);
        removedFromGameMessage_ = de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x20000000);
        kickPlayerRequestMessage_ = de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x40000000);
        leaveGameRequestMessage_ = de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage.getDefaultInstance();
        bitField0_ = (bitField0_ & ~0x80000000);
        invitePlayerToGameMessage_ = de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x00000001);
        inviteNotifyMessage_ = de.pokerth.protocol.ProtoBuf.InviteNotifyMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x00000002);
        rejectGameInvitationMessage_ = de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x00000004);
        rejectInvNotifyMessage_ = de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x00000008);
        startEventMessage_ = de.pokerth.protocol.ProtoBuf.StartEventMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x00000010);
        startEventAckMessage_ = de.pokerth.protocol.ProtoBuf.StartEventAckMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x00000020);
        gameStartInitialMessage_ = de.pokerth.protocol.ProtoBuf.GameStartInitialMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x00000040);
        gameStartRejoinMessage_ = de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x00000080);
        handStartMessage_ = de.pokerth.protocol.ProtoBuf.HandStartMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x00000100);
        playersTurnMessage_ = de.pokerth.protocol.ProtoBuf.PlayersTurnMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x00000200);
        myActionRequestMessage_ = de.pokerth.protocol.ProtoBuf.MyActionRequestMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x00000400);
        yourActionRejectedMessage_ = de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x00000800);
        playersActionDoneMessage_ = de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x00001000);
        dealFlopCardsMessage_ = de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x00002000);
        dealTurnCardMessage_ = de.pokerth.protocol.ProtoBuf.DealTurnCardMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x00004000);
        dealRiverCardMessage_ = de.pokerth.protocol.ProtoBuf.DealRiverCardMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x00008000);
        allInShowCardsMessage_ = de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x00010000);
        endOfHandShowCardsMessage_ = de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x00020000);
        endOfHandHideCardsMessage_ = de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x00040000);
        showMyCardsRequestMessage_ = de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x00080000);
        afterHandShowCardsMessage_ = de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x00100000);
        endOfGameMessage_ = de.pokerth.protocol.ProtoBuf.EndOfGameMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x00200000);
        playerIdChangedMessage_ = de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x00400000);
        askKickPlayerMessage_ = de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x00800000);
        askKickDeniedMessage_ = de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x01000000);
        startKickPetitionMessage_ = de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x02000000);
        voteKickRequestMessage_ = de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x04000000);
        voteKickReplyMessage_ = de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x08000000);
        kickPetitionUpdateMessage_ = de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x10000000);
        endKickPetitionMessage_ = de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x20000000);
        statisticsMessage_ = de.pokerth.protocol.ProtoBuf.StatisticsMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x40000000);
        chatRequestMessage_ = de.pokerth.protocol.ProtoBuf.ChatRequestMessage.getDefaultInstance();
        bitField1_ = (bitField1_ & ~0x80000000);
        chatMessage_ = de.pokerth.protocol.ProtoBuf.ChatMessage.getDefaultInstance();
        bitField2_ = (bitField2_ & ~0x00000001);
        chatRejectMessage_ = de.pokerth.protocol.ProtoBuf.ChatRejectMessage.getDefaultInstance();
        bitField2_ = (bitField2_ & ~0x00000002);
        dialogMessage_ = de.pokerth.protocol.ProtoBuf.DialogMessage.getDefaultInstance();
        bitField2_ = (bitField2_ & ~0x00000004);
        timeoutWarningMessage_ = de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.getDefaultInstance();
        bitField2_ = (bitField2_ & ~0x00000008);
        resetTimeoutMessage_ = de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage.getDefaultInstance();
        bitField2_ = (bitField2_ & ~0x00000010);
        reportAvatarMessage_ = de.pokerth.protocol.ProtoBuf.ReportAvatarMessage.getDefaultInstance();
        bitField2_ = (bitField2_ & ~0x00000020);
        reportAvatarAckMessage_ = de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.getDefaultInstance();
        bitField2_ = (bitField2_ & ~0x00000040);
        reportGameMessage_ = de.pokerth.protocol.ProtoBuf.ReportGameMessage.getDefaultInstance();
        bitField2_ = (bitField2_ & ~0x00000080);
        reportGameAckMessage_ = de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.getDefaultInstance();
        bitField2_ = (bitField2_ & ~0x00000100);
        errorMessage_ = de.pokerth.protocol.ProtoBuf.ErrorMessage.getDefaultInstance();
        bitField2_ = (bitField2_ & ~0x00000200);
        adminRemoveGameMessage_ = de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage.getDefaultInstance();
        bitField2_ = (bitField2_ & ~0x00000400);
        adminRemoveGameAckMessage_ = de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.getDefaultInstance();
        bitField2_ = (bitField2_ & ~0x00000800);
        adminBanPlayerMessage_ = de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage.getDefaultInstance();
        bitField2_ = (bitField2_ & ~0x00001000);
        adminBanPlayerAckMessage_ = de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.getDefaultInstance();
        bitField2_ = (bitField2_ & ~0x00002000);
        gameListSpectatorJoinedMessage_ = de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage.getDefaultInstance();
        bitField2_ = (bitField2_ & ~0x00004000);
        gameListSpectatorLeftMessage_ = de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage.getDefaultInstance();
        bitField2_ = (bitField2_ & ~0x00008000);
        gameSpectatorJoinedMessage_ = de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage.getDefaultInstance();
        bitField2_ = (bitField2_ & ~0x00010000);
        gameSpectatorLeftMessage_ = de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage.getDefaultInstance();
        bitField2_ = (bitField2_ & ~0x00020000);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public de.pokerth.protocol.ProtoBuf.PokerTHMessage getDefaultInstanceForType() {
        return de.pokerth.protocol.ProtoBuf.PokerTHMessage.getDefaultInstance();
      }
      
      public de.pokerth.protocol.ProtoBuf.PokerTHMessage build() {
        de.pokerth.protocol.ProtoBuf.PokerTHMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private de.pokerth.protocol.ProtoBuf.PokerTHMessage buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        de.pokerth.protocol.ProtoBuf.PokerTHMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public de.pokerth.protocol.ProtoBuf.PokerTHMessage buildPartial() {
        de.pokerth.protocol.ProtoBuf.PokerTHMessage result = new de.pokerth.protocol.ProtoBuf.PokerTHMessage(this);
        int from_bitField0_ = bitField0_;
        int from_bitField1_ = bitField1_;
        int from_bitField2_ = bitField2_;
        int to_bitField0_ = 0;
        int to_bitField1_ = 0;
        int to_bitField2_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.messageType_ = messageType_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.announceMessage_ = announceMessage_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.initMessage_ = initMessage_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.authServerChallengeMessage_ = authServerChallengeMessage_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.authClientResponseMessage_ = authClientResponseMessage_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.authServerVerificationMessage_ = authServerVerificationMessage_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.initAckMessage_ = initAckMessage_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        result.avatarRequestMessage_ = avatarRequestMessage_;
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000100;
        }
        result.avatarHeaderMessage_ = avatarHeaderMessage_;
        if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
          to_bitField0_ |= 0x00000200;
        }
        result.avatarDataMessage_ = avatarDataMessage_;
        if (((from_bitField0_ & 0x00000400) == 0x00000400)) {
          to_bitField0_ |= 0x00000400;
        }
        result.avatarEndMessage_ = avatarEndMessage_;
        if (((from_bitField0_ & 0x00000800) == 0x00000800)) {
          to_bitField0_ |= 0x00000800;
        }
        result.unknownAvatarMessage_ = unknownAvatarMessage_;
        if (((from_bitField0_ & 0x00001000) == 0x00001000)) {
          to_bitField0_ |= 0x00001000;
        }
        result.playerListMessage_ = playerListMessage_;
        if (((from_bitField0_ & 0x00002000) == 0x00002000)) {
          to_bitField0_ |= 0x00002000;
        }
        result.gameListNewMessage_ = gameListNewMessage_;
        if (((from_bitField0_ & 0x00004000) == 0x00004000)) {
          to_bitField0_ |= 0x00004000;
        }
        result.gameListUpdateMessage_ = gameListUpdateMessage_;
        if (((from_bitField0_ & 0x00008000) == 0x00008000)) {
          to_bitField0_ |= 0x00008000;
        }
        result.gameListPlayerJoinedMessage_ = gameListPlayerJoinedMessage_;
        if (((from_bitField0_ & 0x00010000) == 0x00010000)) {
          to_bitField0_ |= 0x00010000;
        }
        result.gameListPlayerLeftMessage_ = gameListPlayerLeftMessage_;
        if (((from_bitField0_ & 0x00020000) == 0x00020000)) {
          to_bitField0_ |= 0x00020000;
        }
        result.gameListAdminChangedMessage_ = gameListAdminChangedMessage_;
        if (((from_bitField0_ & 0x00040000) == 0x00040000)) {
          to_bitField0_ |= 0x00040000;
        }
        result.playerInfoRequestMessage_ = playerInfoRequestMessage_;
        if (((from_bitField0_ & 0x00080000) == 0x00080000)) {
          to_bitField0_ |= 0x00080000;
        }
        result.playerInfoReplyMessage_ = playerInfoReplyMessage_;
        if (((from_bitField0_ & 0x00100000) == 0x00100000)) {
          to_bitField0_ |= 0x00100000;
        }
        result.subscriptionRequestMessage_ = subscriptionRequestMessage_;
        if (((from_bitField0_ & 0x00200000) == 0x00200000)) {
          to_bitField0_ |= 0x00200000;
        }
        result.joinExistingGameMessage_ = joinExistingGameMessage_;
        if (((from_bitField0_ & 0x00400000) == 0x00400000)) {
          to_bitField0_ |= 0x00400000;
        }
        result.joinNewGameMessage_ = joinNewGameMessage_;
        if (((from_bitField0_ & 0x00800000) == 0x00800000)) {
          to_bitField0_ |= 0x00800000;
        }
        result.rejoinExistingGameMessage_ = rejoinExistingGameMessage_;
        if (((from_bitField0_ & 0x01000000) == 0x01000000)) {
          to_bitField0_ |= 0x01000000;
        }
        result.joinGameAckMessage_ = joinGameAckMessage_;
        if (((from_bitField0_ & 0x02000000) == 0x02000000)) {
          to_bitField0_ |= 0x02000000;
        }
        result.joinGameFailedMessage_ = joinGameFailedMessage_;
        if (((from_bitField0_ & 0x04000000) == 0x04000000)) {
          to_bitField0_ |= 0x04000000;
        }
        result.gamePlayerJoinedMessage_ = gamePlayerJoinedMessage_;
        if (((from_bitField0_ & 0x08000000) == 0x08000000)) {
          to_bitField0_ |= 0x08000000;
        }
        result.gamePlayerLeftMessage_ = gamePlayerLeftMessage_;
        if (((from_bitField0_ & 0x10000000) == 0x10000000)) {
          to_bitField0_ |= 0x10000000;
        }
        result.gameAdminChangedMessage_ = gameAdminChangedMessage_;
        if (((from_bitField0_ & 0x20000000) == 0x20000000)) {
          to_bitField0_ |= 0x20000000;
        }
        result.removedFromGameMessage_ = removedFromGameMessage_;
        if (((from_bitField0_ & 0x40000000) == 0x40000000)) {
          to_bitField0_ |= 0x40000000;
        }
        result.kickPlayerRequestMessage_ = kickPlayerRequestMessage_;
        if (((from_bitField0_ & 0x80000000) == 0x80000000)) {
          to_bitField0_ |= 0x80000000;
        }
        result.leaveGameRequestMessage_ = leaveGameRequestMessage_;
        if (((from_bitField1_ & 0x00000001) == 0x00000001)) {
          to_bitField1_ |= 0x00000001;
        }
        result.invitePlayerToGameMessage_ = invitePlayerToGameMessage_;
        if (((from_bitField1_ & 0x00000002) == 0x00000002)) {
          to_bitField1_ |= 0x00000002;
        }
        result.inviteNotifyMessage_ = inviteNotifyMessage_;
        if (((from_bitField1_ & 0x00000004) == 0x00000004)) {
          to_bitField1_ |= 0x00000004;
        }
        result.rejectGameInvitationMessage_ = rejectGameInvitationMessage_;
        if (((from_bitField1_ & 0x00000008) == 0x00000008)) {
          to_bitField1_ |= 0x00000008;
        }
        result.rejectInvNotifyMessage_ = rejectInvNotifyMessage_;
        if (((from_bitField1_ & 0x00000010) == 0x00000010)) {
          to_bitField1_ |= 0x00000010;
        }
        result.startEventMessage_ = startEventMessage_;
        if (((from_bitField1_ & 0x00000020) == 0x00000020)) {
          to_bitField1_ |= 0x00000020;
        }
        result.startEventAckMessage_ = startEventAckMessage_;
        if (((from_bitField1_ & 0x00000040) == 0x00000040)) {
          to_bitField1_ |= 0x00000040;
        }
        result.gameStartInitialMessage_ = gameStartInitialMessage_;
        if (((from_bitField1_ & 0x00000080) == 0x00000080)) {
          to_bitField1_ |= 0x00000080;
        }
        result.gameStartRejoinMessage_ = gameStartRejoinMessage_;
        if (((from_bitField1_ & 0x00000100) == 0x00000100)) {
          to_bitField1_ |= 0x00000100;
        }
        result.handStartMessage_ = handStartMessage_;
        if (((from_bitField1_ & 0x00000200) == 0x00000200)) {
          to_bitField1_ |= 0x00000200;
        }
        result.playersTurnMessage_ = playersTurnMessage_;
        if (((from_bitField1_ & 0x00000400) == 0x00000400)) {
          to_bitField1_ |= 0x00000400;
        }
        result.myActionRequestMessage_ = myActionRequestMessage_;
        if (((from_bitField1_ & 0x00000800) == 0x00000800)) {
          to_bitField1_ |= 0x00000800;
        }
        result.yourActionRejectedMessage_ = yourActionRejectedMessage_;
        if (((from_bitField1_ & 0x00001000) == 0x00001000)) {
          to_bitField1_ |= 0x00001000;
        }
        result.playersActionDoneMessage_ = playersActionDoneMessage_;
        if (((from_bitField1_ & 0x00002000) == 0x00002000)) {
          to_bitField1_ |= 0x00002000;
        }
        result.dealFlopCardsMessage_ = dealFlopCardsMessage_;
        if (((from_bitField1_ & 0x00004000) == 0x00004000)) {
          to_bitField1_ |= 0x00004000;
        }
        result.dealTurnCardMessage_ = dealTurnCardMessage_;
        if (((from_bitField1_ & 0x00008000) == 0x00008000)) {
          to_bitField1_ |= 0x00008000;
        }
        result.dealRiverCardMessage_ = dealRiverCardMessage_;
        if (((from_bitField1_ & 0x00010000) == 0x00010000)) {
          to_bitField1_ |= 0x00010000;
        }
        result.allInShowCardsMessage_ = allInShowCardsMessage_;
        if (((from_bitField1_ & 0x00020000) == 0x00020000)) {
          to_bitField1_ |= 0x00020000;
        }
        result.endOfHandShowCardsMessage_ = endOfHandShowCardsMessage_;
        if (((from_bitField1_ & 0x00040000) == 0x00040000)) {
          to_bitField1_ |= 0x00040000;
        }
        result.endOfHandHideCardsMessage_ = endOfHandHideCardsMessage_;
        if (((from_bitField1_ & 0x00080000) == 0x00080000)) {
          to_bitField1_ |= 0x00080000;
        }
        result.showMyCardsRequestMessage_ = showMyCardsRequestMessage_;
        if (((from_bitField1_ & 0x00100000) == 0x00100000)) {
          to_bitField1_ |= 0x00100000;
        }
        result.afterHandShowCardsMessage_ = afterHandShowCardsMessage_;
        if (((from_bitField1_ & 0x00200000) == 0x00200000)) {
          to_bitField1_ |= 0x00200000;
        }
        result.endOfGameMessage_ = endOfGameMessage_;
        if (((from_bitField1_ & 0x00400000) == 0x00400000)) {
          to_bitField1_ |= 0x00400000;
        }
        result.playerIdChangedMessage_ = playerIdChangedMessage_;
        if (((from_bitField1_ & 0x00800000) == 0x00800000)) {
          to_bitField1_ |= 0x00800000;
        }
        result.askKickPlayerMessage_ = askKickPlayerMessage_;
        if (((from_bitField1_ & 0x01000000) == 0x01000000)) {
          to_bitField1_ |= 0x01000000;
        }
        result.askKickDeniedMessage_ = askKickDeniedMessage_;
        if (((from_bitField1_ & 0x02000000) == 0x02000000)) {
          to_bitField1_ |= 0x02000000;
        }
        result.startKickPetitionMessage_ = startKickPetitionMessage_;
        if (((from_bitField1_ & 0x04000000) == 0x04000000)) {
          to_bitField1_ |= 0x04000000;
        }
        result.voteKickRequestMessage_ = voteKickRequestMessage_;
        if (((from_bitField1_ & 0x08000000) == 0x08000000)) {
          to_bitField1_ |= 0x08000000;
        }
        result.voteKickReplyMessage_ = voteKickReplyMessage_;
        if (((from_bitField1_ & 0x10000000) == 0x10000000)) {
          to_bitField1_ |= 0x10000000;
        }
        result.kickPetitionUpdateMessage_ = kickPetitionUpdateMessage_;
        if (((from_bitField1_ & 0x20000000) == 0x20000000)) {
          to_bitField1_ |= 0x20000000;
        }
        result.endKickPetitionMessage_ = endKickPetitionMessage_;
        if (((from_bitField1_ & 0x40000000) == 0x40000000)) {
          to_bitField1_ |= 0x40000000;
        }
        result.statisticsMessage_ = statisticsMessage_;
        if (((from_bitField1_ & 0x80000000) == 0x80000000)) {
          to_bitField1_ |= 0x80000000;
        }
        result.chatRequestMessage_ = chatRequestMessage_;
        if (((from_bitField2_ & 0x00000001) == 0x00000001)) {
          to_bitField2_ |= 0x00000001;
        }
        result.chatMessage_ = chatMessage_;
        if (((from_bitField2_ & 0x00000002) == 0x00000002)) {
          to_bitField2_ |= 0x00000002;
        }
        result.chatRejectMessage_ = chatRejectMessage_;
        if (((from_bitField2_ & 0x00000004) == 0x00000004)) {
          to_bitField2_ |= 0x00000004;
        }
        result.dialogMessage_ = dialogMessage_;
        if (((from_bitField2_ & 0x00000008) == 0x00000008)) {
          to_bitField2_ |= 0x00000008;
        }
        result.timeoutWarningMessage_ = timeoutWarningMessage_;
        if (((from_bitField2_ & 0x00000010) == 0x00000010)) {
          to_bitField2_ |= 0x00000010;
        }
        result.resetTimeoutMessage_ = resetTimeoutMessage_;
        if (((from_bitField2_ & 0x00000020) == 0x00000020)) {
          to_bitField2_ |= 0x00000020;
        }
        result.reportAvatarMessage_ = reportAvatarMessage_;
        if (((from_bitField2_ & 0x00000040) == 0x00000040)) {
          to_bitField2_ |= 0x00000040;
        }
        result.reportAvatarAckMessage_ = reportAvatarAckMessage_;
        if (((from_bitField2_ & 0x00000080) == 0x00000080)) {
          to_bitField2_ |= 0x00000080;
        }
        result.reportGameMessage_ = reportGameMessage_;
        if (((from_bitField2_ & 0x00000100) == 0x00000100)) {
          to_bitField2_ |= 0x00000100;
        }
        result.reportGameAckMessage_ = reportGameAckMessage_;
        if (((from_bitField2_ & 0x00000200) == 0x00000200)) {
          to_bitField2_ |= 0x00000200;
        }
        result.errorMessage_ = errorMessage_;
        if (((from_bitField2_ & 0x00000400) == 0x00000400)) {
          to_bitField2_ |= 0x00000400;
        }
        result.adminRemoveGameMessage_ = adminRemoveGameMessage_;
        if (((from_bitField2_ & 0x00000800) == 0x00000800)) {
          to_bitField2_ |= 0x00000800;
        }
        result.adminRemoveGameAckMessage_ = adminRemoveGameAckMessage_;
        if (((from_bitField2_ & 0x00001000) == 0x00001000)) {
          to_bitField2_ |= 0x00001000;
        }
        result.adminBanPlayerMessage_ = adminBanPlayerMessage_;
        if (((from_bitField2_ & 0x00002000) == 0x00002000)) {
          to_bitField2_ |= 0x00002000;
        }
        result.adminBanPlayerAckMessage_ = adminBanPlayerAckMessage_;
        if (((from_bitField2_ & 0x00004000) == 0x00004000)) {
          to_bitField2_ |= 0x00004000;
        }
        result.gameListSpectatorJoinedMessage_ = gameListSpectatorJoinedMessage_;
        if (((from_bitField2_ & 0x00008000) == 0x00008000)) {
          to_bitField2_ |= 0x00008000;
        }
        result.gameListSpectatorLeftMessage_ = gameListSpectatorLeftMessage_;
        if (((from_bitField2_ & 0x00010000) == 0x00010000)) {
          to_bitField2_ |= 0x00010000;
        }
        result.gameSpectatorJoinedMessage_ = gameSpectatorJoinedMessage_;
        if (((from_bitField2_ & 0x00020000) == 0x00020000)) {
          to_bitField2_ |= 0x00020000;
        }
        result.gameSpectatorLeftMessage_ = gameSpectatorLeftMessage_;
        result.bitField0_ = to_bitField0_;
        result.bitField1_ = to_bitField1_;
        result.bitField2_ = to_bitField2_;
        return result;
      }
      
      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());
        }
        return this;
      }
      
      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;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              
              return this;
            default: {
              if (!parseUnknownField(input, extensionRegistry, tag)) {
                
                return this;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();
              de.pokerth.protocol.ProtoBuf.PokerTHMessage.PokerTHMessageType value = de.pokerth.protocol.ProtoBuf.PokerTHMessage.PokerTHMessageType.valueOf(rawValue);
              if (value != null) {
                bitField0_ |= 0x00000001;
                messageType_ = value;
              }
              break;
            }
            case 18: {
              de.pokerth.protocol.ProtoBuf.AnnounceMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.AnnounceMessage.newBuilder();
              if (hasAnnounceMessage()) {
                subBuilder.mergeFrom(getAnnounceMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setAnnounceMessage(subBuilder.buildPartial());
              break;
            }
            case 26: {
              de.pokerth.protocol.ProtoBuf.InitMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.InitMessage.newBuilder();
              if (hasInitMessage()) {
                subBuilder.mergeFrom(getInitMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setInitMessage(subBuilder.buildPartial());
              break;
            }
            case 34: {
              de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage.newBuilder();
              if (hasAuthServerChallengeMessage()) {
                subBuilder.mergeFrom(getAuthServerChallengeMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setAuthServerChallengeMessage(subBuilder.buildPartial());
              break;
            }
            case 42: {
              de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage.newBuilder();
              if (hasAuthClientResponseMessage()) {
                subBuilder.mergeFrom(getAuthClientResponseMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setAuthClientResponseMessage(subBuilder.buildPartial());
              break;
            }
            case 50: {
              de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage.newBuilder();
              if (hasAuthServerVerificationMessage()) {
                subBuilder.mergeFrom(getAuthServerVerificationMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setAuthServerVerificationMessage(subBuilder.buildPartial());
              break;
            }
            case 58: {
              de.pokerth.protocol.ProtoBuf.InitAckMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.InitAckMessage.newBuilder();
              if (hasInitAckMessage()) {
                subBuilder.mergeFrom(getInitAckMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setInitAckMessage(subBuilder.buildPartial());
              break;
            }
            case 66: {
              de.pokerth.protocol.ProtoBuf.AvatarRequestMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.AvatarRequestMessage.newBuilder();
              if (hasAvatarRequestMessage()) {
                subBuilder.mergeFrom(getAvatarRequestMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setAvatarRequestMessage(subBuilder.buildPartial());
              break;
            }
            case 74: {
              de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage.newBuilder();
              if (hasAvatarHeaderMessage()) {
                subBuilder.mergeFrom(getAvatarHeaderMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setAvatarHeaderMessage(subBuilder.buildPartial());
              break;
            }
            case 82: {
              de.pokerth.protocol.ProtoBuf.AvatarDataMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.AvatarDataMessage.newBuilder();
              if (hasAvatarDataMessage()) {
                subBuilder.mergeFrom(getAvatarDataMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setAvatarDataMessage(subBuilder.buildPartial());
              break;
            }
            case 90: {
              de.pokerth.protocol.ProtoBuf.AvatarEndMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.AvatarEndMessage.newBuilder();
              if (hasAvatarEndMessage()) {
                subBuilder.mergeFrom(getAvatarEndMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setAvatarEndMessage(subBuilder.buildPartial());
              break;
            }
            case 98: {
              de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage.newBuilder();
              if (hasUnknownAvatarMessage()) {
                subBuilder.mergeFrom(getUnknownAvatarMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setUnknownAvatarMessage(subBuilder.buildPartial());
              break;
            }
            case 106: {
              de.pokerth.protocol.ProtoBuf.PlayerListMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.PlayerListMessage.newBuilder();
              if (hasPlayerListMessage()) {
                subBuilder.mergeFrom(getPlayerListMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setPlayerListMessage(subBuilder.buildPartial());
              break;
            }
            case 114: {
              de.pokerth.protocol.ProtoBuf.GameListNewMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.GameListNewMessage.newBuilder();
              if (hasGameListNewMessage()) {
                subBuilder.mergeFrom(getGameListNewMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setGameListNewMessage(subBuilder.buildPartial());
              break;
            }
            case 122: {
              de.pokerth.protocol.ProtoBuf.GameListUpdateMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.GameListUpdateMessage.newBuilder();
              if (hasGameListUpdateMessage()) {
                subBuilder.mergeFrom(getGameListUpdateMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setGameListUpdateMessage(subBuilder.buildPartial());
              break;
            }
            case 130: {
              de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage.newBuilder();
              if (hasGameListPlayerJoinedMessage()) {
                subBuilder.mergeFrom(getGameListPlayerJoinedMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setGameListPlayerJoinedMessage(subBuilder.buildPartial());
              break;
            }
            case 138: {
              de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage.newBuilder();
              if (hasGameListPlayerLeftMessage()) {
                subBuilder.mergeFrom(getGameListPlayerLeftMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setGameListPlayerLeftMessage(subBuilder.buildPartial());
              break;
            }
            case 146: {
              de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage.newBuilder();
              if (hasGameListAdminChangedMessage()) {
                subBuilder.mergeFrom(getGameListAdminChangedMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setGameListAdminChangedMessage(subBuilder.buildPartial());
              break;
            }
            case 154: {
              de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage.newBuilder();
              if (hasPlayerInfoRequestMessage()) {
                subBuilder.mergeFrom(getPlayerInfoRequestMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setPlayerInfoRequestMessage(subBuilder.buildPartial());
              break;
            }
            case 162: {
              de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.newBuilder();
              if (hasPlayerInfoReplyMessage()) {
                subBuilder.mergeFrom(getPlayerInfoReplyMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setPlayerInfoReplyMessage(subBuilder.buildPartial());
              break;
            }
            case 170: {
              de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.newBuilder();
              if (hasSubscriptionRequestMessage()) {
                subBuilder.mergeFrom(getSubscriptionRequestMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setSubscriptionRequestMessage(subBuilder.buildPartial());
              break;
            }
            case 178: {
              de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage.newBuilder();
              if (hasJoinExistingGameMessage()) {
                subBuilder.mergeFrom(getJoinExistingGameMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setJoinExistingGameMessage(subBuilder.buildPartial());
              break;
            }
            case 186: {
              de.pokerth.protocol.ProtoBuf.JoinNewGameMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.JoinNewGameMessage.newBuilder();
              if (hasJoinNewGameMessage()) {
                subBuilder.mergeFrom(getJoinNewGameMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setJoinNewGameMessage(subBuilder.buildPartial());
              break;
            }
            case 194: {
              de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage.newBuilder();
              if (hasRejoinExistingGameMessage()) {
                subBuilder.mergeFrom(getRejoinExistingGameMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setRejoinExistingGameMessage(subBuilder.buildPartial());
              break;
            }
            case 202: {
              de.pokerth.protocol.ProtoBuf.JoinGameAckMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.JoinGameAckMessage.newBuilder();
              if (hasJoinGameAckMessage()) {
                subBuilder.mergeFrom(getJoinGameAckMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setJoinGameAckMessage(subBuilder.buildPartial());
              break;
            }
            case 210: {
              de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.newBuilder();
              if (hasJoinGameFailedMessage()) {
                subBuilder.mergeFrom(getJoinGameFailedMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setJoinGameFailedMessage(subBuilder.buildPartial());
              break;
            }
            case 218: {
              de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage.newBuilder();
              if (hasGamePlayerJoinedMessage()) {
                subBuilder.mergeFrom(getGamePlayerJoinedMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setGamePlayerJoinedMessage(subBuilder.buildPartial());
              break;
            }
            case 226: {
              de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.newBuilder();
              if (hasGamePlayerLeftMessage()) {
                subBuilder.mergeFrom(getGamePlayerLeftMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setGamePlayerLeftMessage(subBuilder.buildPartial());
              break;
            }
            case 234: {
              de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage.newBuilder();
              if (hasGameAdminChangedMessage()) {
                subBuilder.mergeFrom(getGameAdminChangedMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setGameAdminChangedMessage(subBuilder.buildPartial());
              break;
            }
            case 242: {
              de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.newBuilder();
              if (hasRemovedFromGameMessage()) {
                subBuilder.mergeFrom(getRemovedFromGameMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setRemovedFromGameMessage(subBuilder.buildPartial());
              break;
            }
            case 250: {
              de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage.newBuilder();
              if (hasKickPlayerRequestMessage()) {
                subBuilder.mergeFrom(getKickPlayerRequestMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setKickPlayerRequestMessage(subBuilder.buildPartial());
              break;
            }
            case 258: {
              de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage.newBuilder();
              if (hasLeaveGameRequestMessage()) {
                subBuilder.mergeFrom(getLeaveGameRequestMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setLeaveGameRequestMessage(subBuilder.buildPartial());
              break;
            }
            case 266: {
              de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage.newBuilder();
              if (hasInvitePlayerToGameMessage()) {
                subBuilder.mergeFrom(getInvitePlayerToGameMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setInvitePlayerToGameMessage(subBuilder.buildPartial());
              break;
            }
            case 274: {
              de.pokerth.protocol.ProtoBuf.InviteNotifyMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.InviteNotifyMessage.newBuilder();
              if (hasInviteNotifyMessage()) {
                subBuilder.mergeFrom(getInviteNotifyMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setInviteNotifyMessage(subBuilder.buildPartial());
              break;
            }
            case 282: {
              de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.newBuilder();
              if (hasRejectGameInvitationMessage()) {
                subBuilder.mergeFrom(getRejectGameInvitationMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setRejectGameInvitationMessage(subBuilder.buildPartial());
              break;
            }
            case 290: {
              de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage.newBuilder();
              if (hasRejectInvNotifyMessage()) {
                subBuilder.mergeFrom(getRejectInvNotifyMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setRejectInvNotifyMessage(subBuilder.buildPartial());
              break;
            }
            case 298: {
              de.pokerth.protocol.ProtoBuf.StartEventMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.StartEventMessage.newBuilder();
              if (hasStartEventMessage()) {
                subBuilder.mergeFrom(getStartEventMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setStartEventMessage(subBuilder.buildPartial());
              break;
            }
            case 306: {
              de.pokerth.protocol.ProtoBuf.StartEventAckMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.StartEventAckMessage.newBuilder();
              if (hasStartEventAckMessage()) {
                subBuilder.mergeFrom(getStartEventAckMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setStartEventAckMessage(subBuilder.buildPartial());
              break;
            }
            case 314: {
              de.pokerth.protocol.ProtoBuf.GameStartInitialMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.GameStartInitialMessage.newBuilder();
              if (hasGameStartInitialMessage()) {
                subBuilder.mergeFrom(getGameStartInitialMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setGameStartInitialMessage(subBuilder.buildPartial());
              break;
            }
            case 322: {
              de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.newBuilder();
              if (hasGameStartRejoinMessage()) {
                subBuilder.mergeFrom(getGameStartRejoinMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setGameStartRejoinMessage(subBuilder.buildPartial());
              break;
            }
            case 330: {
              de.pokerth.protocol.ProtoBuf.HandStartMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.HandStartMessage.newBuilder();
              if (hasHandStartMessage()) {
                subBuilder.mergeFrom(getHandStartMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setHandStartMessage(subBuilder.buildPartial());
              break;
            }
            case 338: {
              de.pokerth.protocol.ProtoBuf.PlayersTurnMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.PlayersTurnMessage.newBuilder();
              if (hasPlayersTurnMessage()) {
                subBuilder.mergeFrom(getPlayersTurnMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setPlayersTurnMessage(subBuilder.buildPartial());
              break;
            }
            case 346: {
              de.pokerth.protocol.ProtoBuf.MyActionRequestMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.MyActionRequestMessage.newBuilder();
              if (hasMyActionRequestMessage()) {
                subBuilder.mergeFrom(getMyActionRequestMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setMyActionRequestMessage(subBuilder.buildPartial());
              break;
            }
            case 354: {
              de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.newBuilder();
              if (hasYourActionRejectedMessage()) {
                subBuilder.mergeFrom(getYourActionRejectedMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setYourActionRejectedMessage(subBuilder.buildPartial());
              break;
            }
            case 362: {
              de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage.newBuilder();
              if (hasPlayersActionDoneMessage()) {
                subBuilder.mergeFrom(getPlayersActionDoneMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setPlayersActionDoneMessage(subBuilder.buildPartial());
              break;
            }
            case 370: {
              de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage.newBuilder();
              if (hasDealFlopCardsMessage()) {
                subBuilder.mergeFrom(getDealFlopCardsMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setDealFlopCardsMessage(subBuilder.buildPartial());
              break;
            }
            case 378: {
              de.pokerth.protocol.ProtoBuf.DealTurnCardMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.DealTurnCardMessage.newBuilder();
              if (hasDealTurnCardMessage()) {
                subBuilder.mergeFrom(getDealTurnCardMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setDealTurnCardMessage(subBuilder.buildPartial());
              break;
            }
            case 386: {
              de.pokerth.protocol.ProtoBuf.DealRiverCardMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.DealRiverCardMessage.newBuilder();
              if (hasDealRiverCardMessage()) {
                subBuilder.mergeFrom(getDealRiverCardMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setDealRiverCardMessage(subBuilder.buildPartial());
              break;
            }
            case 394: {
              de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.newBuilder();
              if (hasAllInShowCardsMessage()) {
                subBuilder.mergeFrom(getAllInShowCardsMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setAllInShowCardsMessage(subBuilder.buildPartial());
              break;
            }
            case 402: {
              de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage.newBuilder();
              if (hasEndOfHandShowCardsMessage()) {
                subBuilder.mergeFrom(getEndOfHandShowCardsMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setEndOfHandShowCardsMessage(subBuilder.buildPartial());
              break;
            }
            case 410: {
              de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage.newBuilder();
              if (hasEndOfHandHideCardsMessage()) {
                subBuilder.mergeFrom(getEndOfHandHideCardsMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setEndOfHandHideCardsMessage(subBuilder.buildPartial());
              break;
            }
            case 418: {
              de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage.newBuilder();
              if (hasShowMyCardsRequestMessage()) {
                subBuilder.mergeFrom(getShowMyCardsRequestMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setShowMyCardsRequestMessage(subBuilder.buildPartial());
              break;
            }
            case 426: {
              de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage.newBuilder();
              if (hasAfterHandShowCardsMessage()) {
                subBuilder.mergeFrom(getAfterHandShowCardsMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setAfterHandShowCardsMessage(subBuilder.buildPartial());
              break;
            }
            case 434: {
              de.pokerth.protocol.ProtoBuf.EndOfGameMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.EndOfGameMessage.newBuilder();
              if (hasEndOfGameMessage()) {
                subBuilder.mergeFrom(getEndOfGameMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setEndOfGameMessage(subBuilder.buildPartial());
              break;
            }
            case 442: {
              de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage.newBuilder();
              if (hasPlayerIdChangedMessage()) {
                subBuilder.mergeFrom(getPlayerIdChangedMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setPlayerIdChangedMessage(subBuilder.buildPartial());
              break;
            }
            case 450: {
              de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage.newBuilder();
              if (hasAskKickPlayerMessage()) {
                subBuilder.mergeFrom(getAskKickPlayerMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setAskKickPlayerMessage(subBuilder.buildPartial());
              break;
            }
            case 458: {
              de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.newBuilder();
              if (hasAskKickDeniedMessage()) {
                subBuilder.mergeFrom(getAskKickDeniedMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setAskKickDeniedMessage(subBuilder.buildPartial());
              break;
            }
            case 466: {
              de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage.newBuilder();
              if (hasStartKickPetitionMessage()) {
                subBuilder.mergeFrom(getStartKickPetitionMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setStartKickPetitionMessage(subBuilder.buildPartial());
              break;
            }
            case 474: {
              de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage.newBuilder();
              if (hasVoteKickRequestMessage()) {
                subBuilder.mergeFrom(getVoteKickRequestMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setVoteKickRequestMessage(subBuilder.buildPartial());
              break;
            }
            case 482: {
              de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.newBuilder();
              if (hasVoteKickReplyMessage()) {
                subBuilder.mergeFrom(getVoteKickReplyMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setVoteKickReplyMessage(subBuilder.buildPartial());
              break;
            }
            case 490: {
              de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage.newBuilder();
              if (hasKickPetitionUpdateMessage()) {
                subBuilder.mergeFrom(getKickPetitionUpdateMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setKickPetitionUpdateMessage(subBuilder.buildPartial());
              break;
            }
            case 498: {
              de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.newBuilder();
              if (hasEndKickPetitionMessage()) {
                subBuilder.mergeFrom(getEndKickPetitionMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setEndKickPetitionMessage(subBuilder.buildPartial());
              break;
            }
            case 506: {
              de.pokerth.protocol.ProtoBuf.StatisticsMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.StatisticsMessage.newBuilder();
              if (hasStatisticsMessage()) {
                subBuilder.mergeFrom(getStatisticsMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setStatisticsMessage(subBuilder.buildPartial());
              break;
            }
            case 514: {
              de.pokerth.protocol.ProtoBuf.ChatRequestMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.ChatRequestMessage.newBuilder();
              if (hasChatRequestMessage()) {
                subBuilder.mergeFrom(getChatRequestMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setChatRequestMessage(subBuilder.buildPartial());
              break;
            }
            case 522: {
              de.pokerth.protocol.ProtoBuf.ChatMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.ChatMessage.newBuilder();
              if (hasChatMessage()) {
                subBuilder.mergeFrom(getChatMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setChatMessage(subBuilder.buildPartial());
              break;
            }
            case 530: {
              de.pokerth.protocol.ProtoBuf.ChatRejectMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.ChatRejectMessage.newBuilder();
              if (hasChatRejectMessage()) {
                subBuilder.mergeFrom(getChatRejectMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setChatRejectMessage(subBuilder.buildPartial());
              break;
            }
            case 538: {
              de.pokerth.protocol.ProtoBuf.DialogMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.DialogMessage.newBuilder();
              if (hasDialogMessage()) {
                subBuilder.mergeFrom(getDialogMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setDialogMessage(subBuilder.buildPartial());
              break;
            }
            case 546: {
              de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.newBuilder();
              if (hasTimeoutWarningMessage()) {
                subBuilder.mergeFrom(getTimeoutWarningMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setTimeoutWarningMessage(subBuilder.buildPartial());
              break;
            }
            case 554: {
              de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage.newBuilder();
              if (hasResetTimeoutMessage()) {
                subBuilder.mergeFrom(getResetTimeoutMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setResetTimeoutMessage(subBuilder.buildPartial());
              break;
            }
            case 562: {
              de.pokerth.protocol.ProtoBuf.ReportAvatarMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.ReportAvatarMessage.newBuilder();
              if (hasReportAvatarMessage()) {
                subBuilder.mergeFrom(getReportAvatarMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setReportAvatarMessage(subBuilder.buildPartial());
              break;
            }
            case 570: {
              de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.newBuilder();
              if (hasReportAvatarAckMessage()) {
                subBuilder.mergeFrom(getReportAvatarAckMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setReportAvatarAckMessage(subBuilder.buildPartial());
              break;
            }
            case 578: {
              de.pokerth.protocol.ProtoBuf.ReportGameMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.ReportGameMessage.newBuilder();
              if (hasReportGameMessage()) {
                subBuilder.mergeFrom(getReportGameMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setReportGameMessage(subBuilder.buildPartial());
              break;
            }
            case 586: {
              de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.newBuilder();
              if (hasReportGameAckMessage()) {
                subBuilder.mergeFrom(getReportGameAckMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setReportGameAckMessage(subBuilder.buildPartial());
              break;
            }
            case 594: {
              de.pokerth.protocol.ProtoBuf.ErrorMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.ErrorMessage.newBuilder();
              if (hasErrorMessage()) {
                subBuilder.mergeFrom(getErrorMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setErrorMessage(subBuilder.buildPartial());
              break;
            }
            case 602: {
              de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage.newBuilder();
              if (hasAdminRemoveGameMessage()) {
                subBuilder.mergeFrom(getAdminRemoveGameMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setAdminRemoveGameMessage(subBuilder.buildPartial());
              break;
            }
            case 610: {
              de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.newBuilder();
              if (hasAdminRemoveGameAckMessage()) {
                subBuilder.mergeFrom(getAdminRemoveGameAckMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setAdminRemoveGameAckMessage(subBuilder.buildPartial());
              break;
            }
            case 618: {
              de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage.newBuilder();
              if (hasAdminBanPlayerMessage()) {
                subBuilder.mergeFrom(getAdminBanPlayerMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setAdminBanPlayerMessage(subBuilder.buildPartial());
              break;
            }
            case 626: {
              de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.newBuilder();
              if (hasAdminBanPlayerAckMessage()) {
                subBuilder.mergeFrom(getAdminBanPlayerAckMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setAdminBanPlayerAckMessage(subBuilder.buildPartial());
              break;
            }
            case 634: {
              de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage.newBuilder();
              if (hasGameListSpectatorJoinedMessage()) {
                subBuilder.mergeFrom(getGameListSpectatorJoinedMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setGameListSpectatorJoinedMessage(subBuilder.buildPartial());
              break;
            }
            case 642: {
              de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage.newBuilder();
              if (hasGameListSpectatorLeftMessage()) {
                subBuilder.mergeFrom(getGameListSpectatorLeftMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setGameListSpectatorLeftMessage(subBuilder.buildPartial());
              break;
            }
            case 650: {
              de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage.newBuilder();
              if (hasGameSpectatorJoinedMessage()) {
                subBuilder.mergeFrom(getGameSpectatorJoinedMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setGameSpectatorJoinedMessage(subBuilder.buildPartial());
              break;
            }
            case 658: {
              de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage.Builder subBuilder = de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage.newBuilder();
              if (hasGameSpectatorLeftMessage()) {
                subBuilder.mergeFrom(getGameSpectatorLeftMessage());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setGameSpectatorLeftMessage(subBuilder.buildPartial());
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      private int bitField1_;
      private int bitField2_;
      
      // required .PokerTHMessage.PokerTHMessageType messageType = 1;
      private de.pokerth.protocol.ProtoBuf.PokerTHMessage.PokerTHMessageType messageType_ = de.pokerth.protocol.ProtoBuf.PokerTHMessage.PokerTHMessageType.Type_AnnounceMessage;
      public boolean hasMessageType() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public de.pokerth.protocol.ProtoBuf.PokerTHMessage.PokerTHMessageType getMessageType() {
        return messageType_;
      }
      public Builder setMessageType(de.pokerth.protocol.ProtoBuf.PokerTHMessage.PokerTHMessageType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        messageType_ = value;
        
        return this;
      }
      public Builder clearMessageType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        messageType_ = de.pokerth.protocol.ProtoBuf.PokerTHMessage.PokerTHMessageType.Type_AnnounceMessage;
        
        return this;
      }
      
      // optional .AnnounceMessage announceMessage = 2;
      private de.pokerth.protocol.ProtoBuf.AnnounceMessage announceMessage_ = de.pokerth.protocol.ProtoBuf.AnnounceMessage.getDefaultInstance();
      public boolean hasAnnounceMessage() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public de.pokerth.protocol.ProtoBuf.AnnounceMessage getAnnounceMessage() {
        return announceMessage_;
      }
      public Builder setAnnounceMessage(de.pokerth.protocol.ProtoBuf.AnnounceMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        announceMessage_ = value;
        
        bitField0_ |= 0x00000002;
        return this;
      }
      public Builder setAnnounceMessage(
          de.pokerth.protocol.ProtoBuf.AnnounceMessage.Builder builderForValue) {
        announceMessage_ = builderForValue.build();
        
        bitField0_ |= 0x00000002;
        return this;
      }
      public Builder mergeAnnounceMessage(de.pokerth.protocol.ProtoBuf.AnnounceMessage value) {
        if (((bitField0_ & 0x00000002) == 0x00000002) &&
            announceMessage_ != de.pokerth.protocol.ProtoBuf.AnnounceMessage.getDefaultInstance()) {
          announceMessage_ =
            de.pokerth.protocol.ProtoBuf.AnnounceMessage.newBuilder(announceMessage_).mergeFrom(value).buildPartial();
        } else {
          announceMessage_ = value;
        }
        
        bitField0_ |= 0x00000002;
        return this;
      }
      public Builder clearAnnounceMessage() {
        announceMessage_ = de.pokerth.protocol.ProtoBuf.AnnounceMessage.getDefaultInstance();
        
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      
      // optional .InitMessage initMessage = 3;
      private de.pokerth.protocol.ProtoBuf.InitMessage initMessage_ = de.pokerth.protocol.ProtoBuf.InitMessage.getDefaultInstance();
      public boolean hasInitMessage() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public de.pokerth.protocol.ProtoBuf.InitMessage getInitMessage() {
        return initMessage_;
      }
      public Builder setInitMessage(de.pokerth.protocol.ProtoBuf.InitMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        initMessage_ = value;
        
        bitField0_ |= 0x00000004;
        return this;
      }
      public Builder setInitMessage(
          de.pokerth.protocol.ProtoBuf.InitMessage.Builder builderForValue) {
        initMessage_ = builderForValue.build();
        
        bitField0_ |= 0x00000004;
        return this;
      }
      public Builder mergeInitMessage(de.pokerth.protocol.ProtoBuf.InitMessage value) {
        if (((bitField0_ & 0x00000004) == 0x00000004) &&
            initMessage_ != de.pokerth.protocol.ProtoBuf.InitMessage.getDefaultInstance()) {
          initMessage_ =
            de.pokerth.protocol.ProtoBuf.InitMessage.newBuilder(initMessage_).mergeFrom(value).buildPartial();
        } else {
          initMessage_ = value;
        }
        
        bitField0_ |= 0x00000004;
        return this;
      }
      public Builder clearInitMessage() {
        initMessage_ = de.pokerth.protocol.ProtoBuf.InitMessage.getDefaultInstance();
        
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      
      // optional .AuthServerChallengeMessage authServerChallengeMessage = 4;
      private de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage authServerChallengeMessage_ = de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage.getDefaultInstance();
      public boolean hasAuthServerChallengeMessage() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      public de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage getAuthServerChallengeMessage() {
        return authServerChallengeMessage_;
      }
      public Builder setAuthServerChallengeMessage(de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        authServerChallengeMessage_ = value;
        
        bitField0_ |= 0x00000008;
        return this;
      }
      public Builder setAuthServerChallengeMessage(
          de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage.Builder builderForValue) {
        authServerChallengeMessage_ = builderForValue.build();
        
        bitField0_ |= 0x00000008;
        return this;
      }
      public Builder mergeAuthServerChallengeMessage(de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage value) {
        if (((bitField0_ & 0x00000008) == 0x00000008) &&
            authServerChallengeMessage_ != de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage.getDefaultInstance()) {
          authServerChallengeMessage_ =
            de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage.newBuilder(authServerChallengeMessage_).mergeFrom(value).buildPartial();
        } else {
          authServerChallengeMessage_ = value;
        }
        
        bitField0_ |= 0x00000008;
        return this;
      }
      public Builder clearAuthServerChallengeMessage() {
        authServerChallengeMessage_ = de.pokerth.protocol.ProtoBuf.AuthServerChallengeMessage.getDefaultInstance();
        
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }
      
      // optional .AuthClientResponseMessage authClientResponseMessage = 5;
      private de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage authClientResponseMessage_ = de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage.getDefaultInstance();
      public boolean hasAuthClientResponseMessage() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      public de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage getAuthClientResponseMessage() {
        return authClientResponseMessage_;
      }
      public Builder setAuthClientResponseMessage(de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        authClientResponseMessage_ = value;
        
        bitField0_ |= 0x00000010;
        return this;
      }
      public Builder setAuthClientResponseMessage(
          de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage.Builder builderForValue) {
        authClientResponseMessage_ = builderForValue.build();
        
        bitField0_ |= 0x00000010;
        return this;
      }
      public Builder mergeAuthClientResponseMessage(de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage value) {
        if (((bitField0_ & 0x00000010) == 0x00000010) &&
            authClientResponseMessage_ != de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage.getDefaultInstance()) {
          authClientResponseMessage_ =
            de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage.newBuilder(authClientResponseMessage_).mergeFrom(value).buildPartial();
        } else {
          authClientResponseMessage_ = value;
        }
        
        bitField0_ |= 0x00000010;
        return this;
      }
      public Builder clearAuthClientResponseMessage() {
        authClientResponseMessage_ = de.pokerth.protocol.ProtoBuf.AuthClientResponseMessage.getDefaultInstance();
        
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }
      
      // optional .AuthServerVerificationMessage authServerVerificationMessage = 6;
      private de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage authServerVerificationMessage_ = de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage.getDefaultInstance();
      public boolean hasAuthServerVerificationMessage() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      public de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage getAuthServerVerificationMessage() {
        return authServerVerificationMessage_;
      }
      public Builder setAuthServerVerificationMessage(de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        authServerVerificationMessage_ = value;
        
        bitField0_ |= 0x00000020;
        return this;
      }
      public Builder setAuthServerVerificationMessage(
          de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage.Builder builderForValue) {
        authServerVerificationMessage_ = builderForValue.build();
        
        bitField0_ |= 0x00000020;
        return this;
      }
      public Builder mergeAuthServerVerificationMessage(de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage value) {
        if (((bitField0_ & 0x00000020) == 0x00000020) &&
            authServerVerificationMessage_ != de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage.getDefaultInstance()) {
          authServerVerificationMessage_ =
            de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage.newBuilder(authServerVerificationMessage_).mergeFrom(value).buildPartial();
        } else {
          authServerVerificationMessage_ = value;
        }
        
        bitField0_ |= 0x00000020;
        return this;
      }
      public Builder clearAuthServerVerificationMessage() {
        authServerVerificationMessage_ = de.pokerth.protocol.ProtoBuf.AuthServerVerificationMessage.getDefaultInstance();
        
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }
      
      // optional .InitAckMessage initAckMessage = 7;
      private de.pokerth.protocol.ProtoBuf.InitAckMessage initAckMessage_ = de.pokerth.protocol.ProtoBuf.InitAckMessage.getDefaultInstance();
      public boolean hasInitAckMessage() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      public de.pokerth.protocol.ProtoBuf.InitAckMessage getInitAckMessage() {
        return initAckMessage_;
      }
      public Builder setInitAckMessage(de.pokerth.protocol.ProtoBuf.InitAckMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        initAckMessage_ = value;
        
        bitField0_ |= 0x00000040;
        return this;
      }
      public Builder setInitAckMessage(
          de.pokerth.protocol.ProtoBuf.InitAckMessage.Builder builderForValue) {
        initAckMessage_ = builderForValue.build();
        
        bitField0_ |= 0x00000040;
        return this;
      }
      public Builder mergeInitAckMessage(de.pokerth.protocol.ProtoBuf.InitAckMessage value) {
        if (((bitField0_ & 0x00000040) == 0x00000040) &&
            initAckMessage_ != de.pokerth.protocol.ProtoBuf.InitAckMessage.getDefaultInstance()) {
          initAckMessage_ =
            de.pokerth.protocol.ProtoBuf.InitAckMessage.newBuilder(initAckMessage_).mergeFrom(value).buildPartial();
        } else {
          initAckMessage_ = value;
        }
        
        bitField0_ |= 0x00000040;
        return this;
      }
      public Builder clearInitAckMessage() {
        initAckMessage_ = de.pokerth.protocol.ProtoBuf.InitAckMessage.getDefaultInstance();
        
        bitField0_ = (bitField0_ & ~0x00000040);
        return this;
      }
      
      // optional .AvatarRequestMessage avatarRequestMessage = 8;
      private de.pokerth.protocol.ProtoBuf.AvatarRequestMessage avatarRequestMessage_ = de.pokerth.protocol.ProtoBuf.AvatarRequestMessage.getDefaultInstance();
      public boolean hasAvatarRequestMessage() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      public de.pokerth.protocol.ProtoBuf.AvatarRequestMessage getAvatarRequestMessage() {
        return avatarRequestMessage_;
      }
      public Builder setAvatarRequestMessage(de.pokerth.protocol.ProtoBuf.AvatarRequestMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        avatarRequestMessage_ = value;
        
        bitField0_ |= 0x00000080;
        return this;
      }
      public Builder setAvatarRequestMessage(
          de.pokerth.protocol.ProtoBuf.AvatarRequestMessage.Builder builderForValue) {
        avatarRequestMessage_ = builderForValue.build();
        
        bitField0_ |= 0x00000080;
        return this;
      }
      public Builder mergeAvatarRequestMessage(de.pokerth.protocol.ProtoBuf.AvatarRequestMessage value) {
        if (((bitField0_ & 0x00000080) == 0x00000080) &&
            avatarRequestMessage_ != de.pokerth.protocol.ProtoBuf.AvatarRequestMessage.getDefaultInstance()) {
          avatarRequestMessage_ =
            de.pokerth.protocol.ProtoBuf.AvatarRequestMessage.newBuilder(avatarRequestMessage_).mergeFrom(value).buildPartial();
        } else {
          avatarRequestMessage_ = value;
        }
        
        bitField0_ |= 0x00000080;
        return this;
      }
      public Builder clearAvatarRequestMessage() {
        avatarRequestMessage_ = de.pokerth.protocol.ProtoBuf.AvatarRequestMessage.getDefaultInstance();
        
        bitField0_ = (bitField0_ & ~0x00000080);
        return this;
      }
      
      // optional .AvatarHeaderMessage avatarHeaderMessage = 9;
      private de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage avatarHeaderMessage_ = de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage.getDefaultInstance();
      public boolean hasAvatarHeaderMessage() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      public de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage getAvatarHeaderMessage() {
        return avatarHeaderMessage_;
      }
      public Builder setAvatarHeaderMessage(de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        avatarHeaderMessage_ = value;
        
        bitField0_ |= 0x00000100;
        return this;
      }
      public Builder setAvatarHeaderMessage(
          de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage.Builder builderForValue) {
        avatarHeaderMessage_ = builderForValue.build();
        
        bitField0_ |= 0x00000100;
        return this;
      }
      public Builder mergeAvatarHeaderMessage(de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage value) {
        if (((bitField0_ & 0x00000100) == 0x00000100) &&
            avatarHeaderMessage_ != de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage.getDefaultInstance()) {
          avatarHeaderMessage_ =
            de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage.newBuilder(avatarHeaderMessage_).mergeFrom(value).buildPartial();
        } else {
          avatarHeaderMessage_ = value;
        }
        
        bitField0_ |= 0x00000100;
        return this;
      }
      public Builder clearAvatarHeaderMessage() {
        avatarHeaderMessage_ = de.pokerth.protocol.ProtoBuf.AvatarHeaderMessage.getDefaultInstance();
        
        bitField0_ = (bitField0_ & ~0x00000100);
        return this;
      }
      
      // optional .AvatarDataMessage avatarDataMessage = 10;
      private de.pokerth.protocol.ProtoBuf.AvatarDataMessage avatarDataMessage_ = de.pokerth.protocol.ProtoBuf.AvatarDataMessage.getDefaultInstance();
      public boolean hasAvatarDataMessage() {
        return ((bitField0_ & 0x00000200) == 0x00000200);
      }
      public de.pokerth.protocol.ProtoBuf.AvatarDataMessage getAvatarDataMessage() {
        return avatarDataMessage_;
      }
      public Builder setAvatarDataMessage(de.pokerth.protocol.ProtoBuf.AvatarDataMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        avatarDataMessage_ = value;
        
        bitField0_ |= 0x00000200;
        return this;
      }
      public Builder setAvatarDataMessage(
          de.pokerth.protocol.ProtoBuf.AvatarDataMessage.Builder builderForValue) {
        avatarDataMessage_ = builderForValue.build();
        
        bitField0_ |= 0x00000200;
        return this;
      }
      public Builder mergeAvatarDataMessage(de.pokerth.protocol.ProtoBuf.AvatarDataMessage value) {
        if (((bitField0_ & 0x00000200) == 0x00000200) &&
            avatarDataMessage_ != de.pokerth.protocol.ProtoBuf.AvatarDataMessage.getDefaultInstance()) {
          avatarDataMessage_ =
            de.pokerth.protocol.ProtoBuf.AvatarDataMessage.newBuilder(avatarDataMessage_).mergeFrom(value).buildPartial();
        } else {
          avatarDataMessage_ = value;
        }
        
        bitField0_ |= 0x00000200;
        return this;
      }
      public Builder clearAvatarDataMessage() {
        avatarDataMessage_ = de.pokerth.protocol.ProtoBuf.AvatarDataMessage.getDefaultInstance();
        
        bitField0_ = (bitField0_ & ~0x00000200);
        return this;
      }
      
      // optional .AvatarEndMessage avatarEndMessage = 11;
      private de.pokerth.protocol.ProtoBuf.AvatarEndMessage avatarEndMessage_ = de.pokerth.protocol.ProtoBuf.AvatarEndMessage.getDefaultInstance();
      public boolean hasAvatarEndMessage() {
        return ((bitField0_ & 0x00000400) == 0x00000400);
      }
      public de.pokerth.protocol.ProtoBuf.AvatarEndMessage getAvatarEndMessage() {
        return avatarEndMessage_;
      }
      public Builder setAvatarEndMessage(de.pokerth.protocol.ProtoBuf.AvatarEndMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        avatarEndMessage_ = value;
        
        bitField0_ |= 0x00000400;
        return this;
      }
      public Builder setAvatarEndMessage(
          de.pokerth.protocol.ProtoBuf.AvatarEndMessage.Builder builderForValue) {
        avatarEndMessage_ = builderForValue.build();
        
        bitField0_ |= 0x00000400;
        return this;
      }
      public Builder mergeAvatarEndMessage(de.pokerth.protocol.ProtoBuf.AvatarEndMessage value) {
        if (((bitField0_ & 0x00000400) == 0x00000400) &&
            avatarEndMessage_ != de.pokerth.protocol.ProtoBuf.AvatarEndMessage.getDefaultInstance()) {
          avatarEndMessage_ =
            de.pokerth.protocol.ProtoBuf.AvatarEndMessage.newBuilder(avatarEndMessage_).mergeFrom(value).buildPartial();
        } else {
          avatarEndMessage_ = value;
        }
        
        bitField0_ |= 0x00000400;
        return this;
      }
      public Builder clearAvatarEndMessage() {
        avatarEndMessage_ = de.pokerth.protocol.ProtoBuf.AvatarEndMessage.getDefaultInstance();
        
        bitField0_ = (bitField0_ & ~0x00000400);
        return this;
      }
      
      // optional .UnknownAvatarMessage unknownAvatarMessage = 12;
      private de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage unknownAvatarMessage_ = de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage.getDefaultInstance();
      public boolean hasUnknownAvatarMessage() {
        return ((bitField0_ & 0x00000800) == 0x00000800);
      }
      public de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage getUnknownAvatarMessage() {
        return unknownAvatarMessage_;
      }
      public Builder setUnknownAvatarMessage(de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        unknownAvatarMessage_ = value;
        
        bitField0_ |= 0x00000800;
        return this;
      }
      public Builder setUnknownAvatarMessage(
          de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage.Builder builderForValue) {
        unknownAvatarMessage_ = builderForValue.build();
        
        bitField0_ |= 0x00000800;
        return this;
      }
      public Builder mergeUnknownAvatarMessage(de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage value) {
        if (((bitField0_ & 0x00000800) == 0x00000800) &&
            unknownAvatarMessage_ != de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage.getDefaultInstance()) {
          unknownAvatarMessage_ =
            de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage.newBuilder(unknownAvatarMessage_).mergeFrom(value).buildPartial();
        } else {
          unknownAvatarMessage_ = value;
        }
        
        bitField0_ |= 0x00000800;
        return this;
      }
      public Builder clearUnknownAvatarMessage() {
        unknownAvatarMessage_ = de.pokerth.protocol.ProtoBuf.UnknownAvatarMessage.getDefaultInstance();
        
        bitField0_ = (bitField0_ & ~0x00000800);
        return this;
      }
      
      // optional .PlayerListMessage playerListMessage = 13;
      private de.pokerth.protocol.ProtoBuf.PlayerListMessage playerListMessage_ = de.pokerth.protocol.ProtoBuf.PlayerListMessage.getDefaultInstance();
      public boolean hasPlayerListMessage() {
        return ((bitField0_ & 0x00001000) == 0x00001000);
      }
      public de.pokerth.protocol.ProtoBuf.PlayerListMessage getPlayerListMessage() {
        return playerListMessage_;
      }
      public Builder setPlayerListMessage(de.pokerth.protocol.ProtoBuf.PlayerListMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        playerListMessage_ = value;
        
        bitField0_ |= 0x00001000;
        return this;
      }
      public Builder setPlayerListMessage(
          de.pokerth.protocol.ProtoBuf.PlayerListMessage.Builder builderForValue) {
        playerListMessage_ = builderForValue.build();
        
        bitField0_ |= 0x00001000;
        return this;
      }
      public Builder mergePlayerListMessage(de.pokerth.protocol.ProtoBuf.PlayerListMessage value) {
        if (((bitField0_ & 0x00001000) == 0x00001000) &&
            playerListMessage_ != de.pokerth.protocol.ProtoBuf.PlayerListMessage.getDefaultInstance()) {
          playerListMessage_ =
            de.pokerth.protocol.ProtoBuf.PlayerListMessage.newBuilder(playerListMessage_).mergeFrom(value).buildPartial();
        } else {
          playerListMessage_ = value;
        }
        
        bitField0_ |= 0x00001000;
        return this;
      }
      public Builder clearPlayerListMessage() {
        playerListMessage_ = de.pokerth.protocol.ProtoBuf.PlayerListMessage.getDefaultInstance();
        
        bitField0_ = (bitField0_ & ~0x00001000);
        return this;
      }
      
      // optional .GameListNewMessage gameListNewMessage = 14;
      private de.pokerth.protocol.ProtoBuf.GameListNewMessage gameListNewMessage_ = de.pokerth.protocol.ProtoBuf.GameListNewMessage.getDefaultInstance();
      public boolean hasGameListNewMessage() {
        return ((bitField0_ & 0x00002000) == 0x00002000);
      }
      public de.pokerth.protocol.ProtoBuf.GameListNewMessage getGameListNewMessage() {
        return gameListNewMessage_;
      }
      public Builder setGameListNewMessage(de.pokerth.protocol.ProtoBuf.GameListNewMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        gameListNewMessage_ = value;
        
        bitField0_ |= 0x00002000;
        return this;
      }
      public Builder setGameListNewMessage(
          de.pokerth.protocol.ProtoBuf.GameListNewMessage.Builder builderForValue) {
        gameListNewMessage_ = builderForValue.build();
        
        bitField0_ |= 0x00002000;
        return this;
      }
      public Builder mergeGameListNewMessage(de.pokerth.protocol.ProtoBuf.GameListNewMessage value) {
        if (((bitField0_ & 0x00002000) == 0x00002000) &&
            gameListNewMessage_ != de.pokerth.protocol.ProtoBuf.GameListNewMessage.getDefaultInstance()) {
          gameListNewMessage_ =
            de.pokerth.protocol.ProtoBuf.GameListNewMessage.newBuilder(gameListNewMessage_).mergeFrom(value).buildPartial();
        } else {
          gameListNewMessage_ = value;
        }
        
        bitField0_ |= 0x00002000;
        return this;
      }
      public Builder clearGameListNewMessage() {
        gameListNewMessage_ = de.pokerth.protocol.ProtoBuf.GameListNewMessage.getDefaultInstance();
        
        bitField0_ = (bitField0_ & ~0x00002000);
        return this;
      }
      
      // optional .GameListUpdateMessage gameListUpdateMessage = 15;
      private de.pokerth.protocol.ProtoBuf.GameListUpdateMessage gameListUpdateMessage_ = de.pokerth.protocol.ProtoBuf.GameListUpdateMessage.getDefaultInstance();
      public boolean hasGameListUpdateMessage() {
        return ((bitField0_ & 0x00004000) == 0x00004000);
      }
      public de.pokerth.protocol.ProtoBuf.GameListUpdateMessage getGameListUpdateMessage() {
        return gameListUpdateMessage_;
      }
      public Builder setGameListUpdateMessage(de.pokerth.protocol.ProtoBuf.GameListUpdateMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        gameListUpdateMessage_ = value;
        
        bitField0_ |= 0x00004000;
        return this;
      }
      public Builder setGameListUpdateMessage(
          de.pokerth.protocol.ProtoBuf.GameListUpdateMessage.Builder builderForValue) {
        gameListUpdateMessage_ = builderForValue.build();
        
        bitField0_ |= 0x00004000;
        return this;
      }
      public Builder mergeGameListUpdateMessage(de.pokerth.protocol.ProtoBuf.GameListUpdateMessage value) {
        if (((bitField0_ & 0x00004000) == 0x00004000) &&
            gameListUpdateMessage_ != de.pokerth.protocol.ProtoBuf.GameListUpdateMessage.getDefaultInstance()) {
          gameListUpdateMessage_ =
            de.pokerth.protocol.ProtoBuf.GameListUpdateMessage.newBuilder(gameListUpdateMessage_).mergeFrom(value).buildPartial();
        } else {
          gameListUpdateMessage_ = value;
        }
        
        bitField0_ |= 0x00004000;
        return this;
      }
      public Builder clearGameListUpdateMessage() {
        gameListUpdateMessage_ = de.pokerth.protocol.ProtoBuf.GameListUpdateMessage.getDefaultInstance();
        
        bitField0_ = (bitField0_ & ~0x00004000);
        return this;
      }
      
      // optional .GameListPlayerJoinedMessage gameListPlayerJoinedMessage = 16;
      private de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage gameListPlayerJoinedMessage_ = de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage.getDefaultInstance();
      public boolean hasGameListPlayerJoinedMessage() {
        return ((bitField0_ & 0x00008000) == 0x00008000);
      }
      public de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage getGameListPlayerJoinedMessage() {
        return gameListPlayerJoinedMessage_;
      }
      public Builder setGameListPlayerJoinedMessage(de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        gameListPlayerJoinedMessage_ = value;
        
        bitField0_ |= 0x00008000;
        return this;
      }
      public Builder setGameListPlayerJoinedMessage(
          de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage.Builder builderForValue) {
        gameListPlayerJoinedMessage_ = builderForValue.build();
        
        bitField0_ |= 0x00008000;
        return this;
      }
      public Builder mergeGameListPlayerJoinedMessage(de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage value) {
        if (((bitField0_ & 0x00008000) == 0x00008000) &&
            gameListPlayerJoinedMessage_ != de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage.getDefaultInstance()) {
          gameListPlayerJoinedMessage_ =
            de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage.newBuilder(gameListPlayerJoinedMessage_).mergeFrom(value).buildPartial();
        } else {
          gameListPlayerJoinedMessage_ = value;
        }
        
        bitField0_ |= 0x00008000;
        return this;
      }
      public Builder clearGameListPlayerJoinedMessage() {
        gameListPlayerJoinedMessage_ = de.pokerth.protocol.ProtoBuf.GameListPlayerJoinedMessage.getDefaultInstance();
        
        bitField0_ = (bitField0_ & ~0x00008000);
        return this;
      }
      
      // optional .GameListPlayerLeftMessage gameListPlayerLeftMessage = 17;
      private de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage gameListPlayerLeftMessage_ = de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage.getDefaultInstance();
      public boolean hasGameListPlayerLeftMessage() {
        return ((bitField0_ & 0x00010000) == 0x00010000);
      }
      public de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage getGameListPlayerLeftMessage() {
        return gameListPlayerLeftMessage_;
      }
      public Builder setGameListPlayerLeftMessage(de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        gameListPlayerLeftMessage_ = value;
        
        bitField0_ |= 0x00010000;
        return this;
      }
      public Builder setGameListPlayerLeftMessage(
          de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage.Builder builderForValue) {
        gameListPlayerLeftMessage_ = builderForValue.build();
        
        bitField0_ |= 0x00010000;
        return this;
      }
      public Builder mergeGameListPlayerLeftMessage(de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage value) {
        if (((bitField0_ & 0x00010000) == 0x00010000) &&
            gameListPlayerLeftMessage_ != de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage.getDefaultInstance()) {
          gameListPlayerLeftMessage_ =
            de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage.newBuilder(gameListPlayerLeftMessage_).mergeFrom(value).buildPartial();
        } else {
          gameListPlayerLeftMessage_ = value;
        }
        
        bitField0_ |= 0x00010000;
        return this;
      }
      public Builder clearGameListPlayerLeftMessage() {
        gameListPlayerLeftMessage_ = de.pokerth.protocol.ProtoBuf.GameListPlayerLeftMessage.getDefaultInstance();
        
        bitField0_ = (bitField0_ & ~0x00010000);
        return this;
      }
      
      // optional .GameListAdminChangedMessage gameListAdminChangedMessage = 18;
      private de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage gameListAdminChangedMessage_ = de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage.getDefaultInstance();
      public boolean hasGameListAdminChangedMessage() {
        return ((bitField0_ & 0x00020000) == 0x00020000);
      }
      public de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage getGameListAdminChangedMessage() {
        return gameListAdminChangedMessage_;
      }
      public Builder setGameListAdminChangedMessage(de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        gameListAdminChangedMessage_ = value;
        
        bitField0_ |= 0x00020000;
        return this;
      }
      public Builder setGameListAdminChangedMessage(
          de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage.Builder builderForValue) {
        gameListAdminChangedMessage_ = builderForValue.build();
        
        bitField0_ |= 0x00020000;
        return this;
      }
      public Builder mergeGameListAdminChangedMessage(de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage value) {
        if (((bitField0_ & 0x00020000) == 0x00020000) &&
            gameListAdminChangedMessage_ != de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage.getDefaultInstance()) {
          gameListAdminChangedMessage_ =
            de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage.newBuilder(gameListAdminChangedMessage_).mergeFrom(value).buildPartial();
        } else {
          gameListAdminChangedMessage_ = value;
        }
        
        bitField0_ |= 0x00020000;
        return this;
      }
      public Builder clearGameListAdminChangedMessage() {
        gameListAdminChangedMessage_ = de.pokerth.protocol.ProtoBuf.GameListAdminChangedMessage.getDefaultInstance();
        
        bitField0_ = (bitField0_ & ~0x00020000);
        return this;
      }
      
      // optional .PlayerInfoRequestMessage playerInfoRequestMessage = 19;
      private de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage playerInfoRequestMessage_ = de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage.getDefaultInstance();
      public boolean hasPlayerInfoRequestMessage() {
        return ((bitField0_ & 0x00040000) == 0x00040000);
      }
      public de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage getPlayerInfoRequestMessage() {
        return playerInfoRequestMessage_;
      }
      public Builder setPlayerInfoRequestMessage(de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        playerInfoRequestMessage_ = value;
        
        bitField0_ |= 0x00040000;
        return this;
      }
      public Builder setPlayerInfoRequestMessage(
          de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage.Builder builderForValue) {
        playerInfoRequestMessage_ = builderForValue.build();
        
        bitField0_ |= 0x00040000;
        return this;
      }
      public Builder mergePlayerInfoRequestMessage(de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage value) {
        if (((bitField0_ & 0x00040000) == 0x00040000) &&
            playerInfoRequestMessage_ != de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage.getDefaultInstance()) {
          playerInfoRequestMessage_ =
            de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage.newBuilder(playerInfoRequestMessage_).mergeFrom(value).buildPartial();
        } else {
          playerInfoRequestMessage_ = value;
        }
        
        bitField0_ |= 0x00040000;
        return this;
      }
      public Builder clearPlayerInfoRequestMessage() {
        playerInfoRequestMessage_ = de.pokerth.protocol.ProtoBuf.PlayerInfoRequestMessage.getDefaultInstance();
        
        bitField0_ = (bitField0_ & ~0x00040000);
        return this;
      }
      
      // optional .PlayerInfoReplyMessage playerInfoReplyMessage = 20;
      private de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage playerInfoReplyMessage_ = de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.getDefaultInstance();
      public boolean hasPlayerInfoReplyMessage() {
        return ((bitField0_ & 0x00080000) == 0x00080000);
      }
      public de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage getPlayerInfoReplyMessage() {
        return playerInfoReplyMessage_;
      }
      public Builder setPlayerInfoReplyMessage(de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        playerInfoReplyMessage_ = value;
        
        bitField0_ |= 0x00080000;
        return this;
      }
      public Builder setPlayerInfoReplyMessage(
          de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.Builder builderForValue) {
        playerInfoReplyMessage_ = builderForValue.build();
        
        bitField0_ |= 0x00080000;
        return this;
      }
      public Builder mergePlayerInfoReplyMessage(de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage value) {
        if (((bitField0_ & 0x00080000) == 0x00080000) &&
            playerInfoReplyMessage_ != de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.getDefaultInstance()) {
          playerInfoReplyMessage_ =
            de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.newBuilder(playerInfoReplyMessage_).mergeFrom(value).buildPartial();
        } else {
          playerInfoReplyMessage_ = value;
        }
        
        bitField0_ |= 0x00080000;
        return this;
      }
      public Builder clearPlayerInfoReplyMessage() {
        playerInfoReplyMessage_ = de.pokerth.protocol.ProtoBuf.PlayerInfoReplyMessage.getDefaultInstance();
        
        bitField0_ = (bitField0_ & ~0x00080000);
        return this;
      }
      
      // optional .SubscriptionRequestMessage subscriptionRequestMessage = 21;
      private de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage subscriptionRequestMessage_ = de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.getDefaultInstance();
      public boolean hasSubscriptionRequestMessage() {
        return ((bitField0_ & 0x00100000) == 0x00100000);
      }
      public de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage getSubscriptionRequestMessage() {
        return subscriptionRequestMessage_;
      }
      public Builder setSubscriptionRequestMessage(de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        subscriptionRequestMessage_ = value;
        
        bitField0_ |= 0x00100000;
        return this;
      }
      public Builder setSubscriptionRequestMessage(
          de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.Builder builderForValue) {
        subscriptionRequestMessage_ = builderForValue.build();
        
        bitField0_ |= 0x00100000;
        return this;
      }
      public Builder mergeSubscriptionRequestMessage(de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage value) {
        if (((bitField0_ & 0x00100000) == 0x00100000) &&
            subscriptionRequestMessage_ != de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.getDefaultInstance()) {
          subscriptionRequestMessage_ =
            de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.newBuilder(subscriptionRequestMessage_).mergeFrom(value).buildPartial();
        } else {
          subscriptionRequestMessage_ = value;
        }
        
        bitField0_ |= 0x00100000;
        return this;
      }
      public Builder clearSubscriptionRequestMessage() {
        subscriptionRequestMessage_ = de.pokerth.protocol.ProtoBuf.SubscriptionRequestMessage.getDefaultInstance();
        
        bitField0_ = (bitField0_ & ~0x00100000);
        return this;
      }
      
      // optional .JoinExistingGameMessage joinExistingGameMessage = 22;
      private de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage joinExistingGameMessage_ = de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage.getDefaultInstance();
      public boolean hasJoinExistingGameMessage() {
        return ((bitField0_ & 0x00200000) == 0x00200000);
      }
      public de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage getJoinExistingGameMessage() {
        return joinExistingGameMessage_;
      }
      public Builder setJoinExistingGameMessage(de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        joinExistingGameMessage_ = value;
        
        bitField0_ |= 0x00200000;
        return this;
      }
      public Builder setJoinExistingGameMessage(
          de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage.Builder builderForValue) {
        joinExistingGameMessage_ = builderForValue.build();
        
        bitField0_ |= 0x00200000;
        return this;
      }
      public Builder mergeJoinExistingGameMessage(de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage value) {
        if (((bitField0_ & 0x00200000) == 0x00200000) &&
            joinExistingGameMessage_ != de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage.getDefaultInstance()) {
          joinExistingGameMessage_ =
            de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage.newBuilder(joinExistingGameMessage_).mergeFrom(value).buildPartial();
        } else {
          joinExistingGameMessage_ = value;
        }
        
        bitField0_ |= 0x00200000;
        return this;
      }
      public Builder clearJoinExistingGameMessage() {
        joinExistingGameMessage_ = de.pokerth.protocol.ProtoBuf.JoinExistingGameMessage.getDefaultInstance();
        
        bitField0_ = (bitField0_ & ~0x00200000);
        return this;
      }
      
      // optional .JoinNewGameMessage joinNewGameMessage = 23;
      private de.pokerth.protocol.ProtoBuf.JoinNewGameMessage joinNewGameMessage_ = de.pokerth.protocol.ProtoBuf.JoinNewGameMessage.getDefaultInstance();
      public boolean hasJoinNewGameMessage() {
        return ((bitField0_ & 0x00400000) == 0x00400000);
      }
      public de.pokerth.protocol.ProtoBuf.JoinNewGameMessage getJoinNewGameMessage() {
        return joinNewGameMessage_;
      }
      public Builder setJoinNewGameMessage(de.pokerth.protocol.ProtoBuf.JoinNewGameMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        joinNewGameMessage_ = value;
        
        bitField0_ |= 0x00400000;
        return this;
      }
      public Builder setJoinNewGameMessage(
          de.pokerth.protocol.ProtoBuf.JoinNewGameMessage.Builder builderForValue) {
        joinNewGameMessage_ = builderForValue.build();
        
        bitField0_ |= 0x00400000;
        return this;
      }
      public Builder mergeJoinNewGameMessage(de.pokerth.protocol.ProtoBuf.JoinNewGameMessage value) {
        if (((bitField0_ & 0x00400000) == 0x00400000) &&
            joinNewGameMessage_ != de.pokerth.protocol.ProtoBuf.JoinNewGameMessage.getDefaultInstance()) {
          joinNewGameMessage_ =
            de.pokerth.protocol.ProtoBuf.JoinNewGameMessage.newBuilder(joinNewGameMessage_).mergeFrom(value).buildPartial();
        } else {
          joinNewGameMessage_ = value;
        }
        
        bitField0_ |= 0x00400000;
        return this;
      }
      public Builder clearJoinNewGameMessage() {
        joinNewGameMessage_ = de.pokerth.protocol.ProtoBuf.JoinNewGameMessage.getDefaultInstance();
        
        bitField0_ = (bitField0_ & ~0x00400000);
        return this;
      }
      
      // optional .RejoinExistingGameMessage rejoinExistingGameMessage = 24;
      private de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage rejoinExistingGameMessage_ = de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage.getDefaultInstance();
      public boolean hasRejoinExistingGameMessage() {
        return ((bitField0_ & 0x00800000) == 0x00800000);
      }
      public de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage getRejoinExistingGameMessage() {
        return rejoinExistingGameMessage_;
      }
      public Builder setRejoinExistingGameMessage(de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        rejoinExistingGameMessage_ = value;
        
        bitField0_ |= 0x00800000;
        return this;
      }
      public Builder setRejoinExistingGameMessage(
          de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage.Builder builderForValue) {
        rejoinExistingGameMessage_ = builderForValue.build();
        
        bitField0_ |= 0x00800000;
        return this;
      }
      public Builder mergeRejoinExistingGameMessage(de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage value) {
        if (((bitField0_ & 0x00800000) == 0x00800000) &&
            rejoinExistingGameMessage_ != de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage.getDefaultInstance()) {
          rejoinExistingGameMessage_ =
            de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage.newBuilder(rejoinExistingGameMessage_).mergeFrom(value).buildPartial();
        } else {
          rejoinExistingGameMessage_ = value;
        }
        
        bitField0_ |= 0x00800000;
        return this;
      }
      public Builder clearRejoinExistingGameMessage() {
        rejoinExistingGameMessage_ = de.pokerth.protocol.ProtoBuf.RejoinExistingGameMessage.getDefaultInstance();
        
        bitField0_ = (bitField0_ & ~0x00800000);
        return this;
      }
      
      // optional .JoinGameAckMessage joinGameAckMessage = 25;
      private de.pokerth.protocol.ProtoBuf.JoinGameAckMessage joinGameAckMessage_ = de.pokerth.protocol.ProtoBuf.JoinGameAckMessage.getDefaultInstance();
      public boolean hasJoinGameAckMessage() {
        return ((bitField0_ & 0x01000000) == 0x01000000);
      }
      public de.pokerth.protocol.ProtoBuf.JoinGameAckMessage getJoinGameAckMessage() {
        return joinGameAckMessage_;
      }
      public Builder setJoinGameAckMessage(de.pokerth.protocol.ProtoBuf.JoinGameAckMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        joinGameAckMessage_ = value;
        
        bitField0_ |= 0x01000000;
        return this;
      }
      public Builder setJoinGameAckMessage(
          de.pokerth.protocol.ProtoBuf.JoinGameAckMessage.Builder builderForValue) {
        joinGameAckMessage_ = builderForValue.build();
        
        bitField0_ |= 0x01000000;
        return this;
      }
      public Builder mergeJoinGameAckMessage(de.pokerth.protocol.ProtoBuf.JoinGameAckMessage value) {
        if (((bitField0_ & 0x01000000) == 0x01000000) &&
            joinGameAckMessage_ != de.pokerth.protocol.ProtoBuf.JoinGameAckMessage.getDefaultInstance()) {
          joinGameAckMessage_ =
            de.pokerth.protocol.ProtoBuf.JoinGameAckMessage.newBuilder(joinGameAckMessage_).mergeFrom(value).buildPartial();
        } else {
          joinGameAckMessage_ = value;
        }
        
        bitField0_ |= 0x01000000;
        return this;
      }
      public Builder clearJoinGameAckMessage() {
        joinGameAckMessage_ = de.pokerth.protocol.ProtoBuf.JoinGameAckMessage.getDefaultInstance();
        
        bitField0_ = (bitField0_ & ~0x01000000);
        return this;
      }
      
      // optional .JoinGameFailedMessage joinGameFailedMessage = 26;
      private de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage joinGameFailedMessage_ = de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.getDefaultInstance();
      public boolean hasJoinGameFailedMessage() {
        return ((bitField0_ & 0x02000000) == 0x02000000);
      }
      public de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage getJoinGameFailedMessage() {
        return joinGameFailedMessage_;
      }
      public Builder setJoinGameFailedMessage(de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        joinGameFailedMessage_ = value;
        
        bitField0_ |= 0x02000000;
        return this;
      }
      public Builder setJoinGameFailedMessage(
          de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.Builder builderForValue) {
        joinGameFailedMessage_ = builderForValue.build();
        
        bitField0_ |= 0x02000000;
        return this;
      }
      public Builder mergeJoinGameFailedMessage(de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage value) {
        if (((bitField0_ & 0x02000000) == 0x02000000) &&
            joinGameFailedMessage_ != de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.getDefaultInstance()) {
          joinGameFailedMessage_ =
            de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.newBuilder(joinGameFailedMessage_).mergeFrom(value).buildPartial();
        } else {
          joinGameFailedMessage_ = value;
        }
        
        bitField0_ |= 0x02000000;
        return this;
      }
      public Builder clearJoinGameFailedMessage() {
        joinGameFailedMessage_ = de.pokerth.protocol.ProtoBuf.JoinGameFailedMessage.getDefaultInstance();
        
        bitField0_ = (bitField0_ & ~0x02000000);
        return this;
      }
      
      // optional .GamePlayerJoinedMessage gamePlayerJoinedMessage = 27;
      private de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage gamePlayerJoinedMessage_ = de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage.getDefaultInstance();
      public boolean hasGamePlayerJoinedMessage() {
        return ((bitField0_ & 0x04000000) == 0x04000000);
      }
      public de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage getGamePlayerJoinedMessage() {
        return gamePlayerJoinedMessage_;
      }
      public Builder setGamePlayerJoinedMessage(de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        gamePlayerJoinedMessage_ = value;
        
        bitField0_ |= 0x04000000;
        return this;
      }
      public Builder setGamePlayerJoinedMessage(
          de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage.Builder builderForValue) {
        gamePlayerJoinedMessage_ = builderForValue.build();
        
        bitField0_ |= 0x04000000;
        return this;
      }
      public Builder mergeGamePlayerJoinedMessage(de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage value) {
        if (((bitField0_ & 0x04000000) == 0x04000000) &&
            gamePlayerJoinedMessage_ != de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage.getDefaultInstance()) {
          gamePlayerJoinedMessage_ =
            de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage.newBuilder(gamePlayerJoinedMessage_).mergeFrom(value).buildPartial();
        } else {
          gamePlayerJoinedMessage_ = value;
        }
        
        bitField0_ |= 0x04000000;
        return this;
      }
      public Builder clearGamePlayerJoinedMessage() {
        gamePlayerJoinedMessage_ = de.pokerth.protocol.ProtoBuf.GamePlayerJoinedMessage.getDefaultInstance();
        
        bitField0_ = (bitField0_ & ~0x04000000);
        return this;
      }
      
      // optional .GamePlayerLeftMessage gamePlayerLeftMessage = 28;
      private de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage gamePlayerLeftMessage_ = de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.getDefaultInstance();
      public boolean hasGamePlayerLeftMessage() {
        return ((bitField0_ & 0x08000000) == 0x08000000);
      }
      public de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage getGamePlayerLeftMessage() {
        return gamePlayerLeftMessage_;
      }
      public Builder setGamePlayerLeftMessage(de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        gamePlayerLeftMessage_ = value;
        
        bitField0_ |= 0x08000000;
        return this;
      }
      public Builder setGamePlayerLeftMessage(
          de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.Builder builderForValue) {
        gamePlayerLeftMessage_ = builderForValue.build();
        
        bitField0_ |= 0x08000000;
        return this;
      }
      public Builder mergeGamePlayerLeftMessage(de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage value) {
        if (((bitField0_ & 0x08000000) == 0x08000000) &&
            gamePlayerLeftMessage_ != de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.getDefaultInstance()) {
          gamePlayerLeftMessage_ =
            de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.newBuilder(gamePlayerLeftMessage_).mergeFrom(value).buildPartial();
        } else {
          gamePlayerLeftMessage_ = value;
        }
        
        bitField0_ |= 0x08000000;
        return this;
      }
      public Builder clearGamePlayerLeftMessage() {
        gamePlayerLeftMessage_ = de.pokerth.protocol.ProtoBuf.GamePlayerLeftMessage.getDefaultInstance();
        
        bitField0_ = (bitField0_ & ~0x08000000);
        return this;
      }
      
      // optional .GameAdminChangedMessage gameAdminChangedMessage = 29;
      private de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage gameAdminChangedMessage_ = de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage.getDefaultInstance();
      public boolean hasGameAdminChangedMessage() {
        return ((bitField0_ & 0x10000000) == 0x10000000);
      }
      public de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage getGameAdminChangedMessage() {
        return gameAdminChangedMessage_;
      }
      public Builder setGameAdminChangedMessage(de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        gameAdminChangedMessage_ = value;
        
        bitField0_ |= 0x10000000;
        return this;
      }
      public Builder setGameAdminChangedMessage(
          de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage.Builder builderForValue) {
        gameAdminChangedMessage_ = builderForValue.build();
        
        bitField0_ |= 0x10000000;
        return this;
      }
      public Builder mergeGameAdminChangedMessage(de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage value) {
        if (((bitField0_ & 0x10000000) == 0x10000000) &&
            gameAdminChangedMessage_ != de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage.getDefaultInstance()) {
          gameAdminChangedMessage_ =
            de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage.newBuilder(gameAdminChangedMessage_).mergeFrom(value).buildPartial();
        } else {
          gameAdminChangedMessage_ = value;
        }
        
        bitField0_ |= 0x10000000;
        return this;
      }
      public Builder clearGameAdminChangedMessage() {
        gameAdminChangedMessage_ = de.pokerth.protocol.ProtoBuf.GameAdminChangedMessage.getDefaultInstance();
        
        bitField0_ = (bitField0_ & ~0x10000000);
        return this;
      }
      
      // optional .RemovedFromGameMessage removedFromGameMessage = 30;
      private de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage removedFromGameMessage_ = de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.getDefaultInstance();
      public boolean hasRemovedFromGameMessage() {
        return ((bitField0_ & 0x20000000) == 0x20000000);
      }
      public de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage getRemovedFromGameMessage() {
        return removedFromGameMessage_;
      }
      public Builder setRemovedFromGameMessage(de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        removedFromGameMessage_ = value;
        
        bitField0_ |= 0x20000000;
        return this;
      }
      public Builder setRemovedFromGameMessage(
          de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.Builder builderForValue) {
        removedFromGameMessage_ = builderForValue.build();
        
        bitField0_ |= 0x20000000;
        return this;
      }
      public Builder mergeRemovedFromGameMessage(de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage value) {
        if (((bitField0_ & 0x20000000) == 0x20000000) &&
            removedFromGameMessage_ != de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.getDefaultInstance()) {
          removedFromGameMessage_ =
            de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.newBuilder(removedFromGameMessage_).mergeFrom(value).buildPartial();
        } else {
          removedFromGameMessage_ = value;
        }
        
        bitField0_ |= 0x20000000;
        return this;
      }
      public Builder clearRemovedFromGameMessage() {
        removedFromGameMessage_ = de.pokerth.protocol.ProtoBuf.RemovedFromGameMessage.getDefaultInstance();
        
        bitField0_ = (bitField0_ & ~0x20000000);
        return this;
      }
      
      // optional .KickPlayerRequestMessage kickPlayerRequestMessage = 31;
      private de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage kickPlayerRequestMessage_ = de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage.getDefaultInstance();
      public boolean hasKickPlayerRequestMessage() {
        return ((bitField0_ & 0x40000000) == 0x40000000);
      }
      public de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage getKickPlayerRequestMessage() {
        return kickPlayerRequestMessage_;
      }
      public Builder setKickPlayerRequestMessage(de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        kickPlayerRequestMessage_ = value;
        
        bitField0_ |= 0x40000000;
        return this;
      }
      public Builder setKickPlayerRequestMessage(
          de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage.Builder builderForValue) {
        kickPlayerRequestMessage_ = builderForValue.build();
        
        bitField0_ |= 0x40000000;
        return this;
      }
      public Builder mergeKickPlayerRequestMessage(de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage value) {
        if (((bitField0_ & 0x40000000) == 0x40000000) &&
            kickPlayerRequestMessage_ != de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage.getDefaultInstance()) {
          kickPlayerRequestMessage_ =
            de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage.newBuilder(kickPlayerRequestMessage_).mergeFrom(value).buildPartial();
        } else {
          kickPlayerRequestMessage_ = value;
        }
        
        bitField0_ |= 0x40000000;
        return this;
      }
      public Builder clearKickPlayerRequestMessage() {
        kickPlayerRequestMessage_ = de.pokerth.protocol.ProtoBuf.KickPlayerRequestMessage.getDefaultInstance();
        
        bitField0_ = (bitField0_ & ~0x40000000);
        return this;
      }
      
      // optional .LeaveGameRequestMessage leaveGameRequestMessage = 32;
      private de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage leaveGameRequestMessage_ = de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage.getDefaultInstance();
      public boolean hasLeaveGameRequestMessage() {
        return ((bitField0_ & 0x80000000) == 0x80000000);
      }
      public de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage getLeaveGameRequestMessage() {
        return leaveGameRequestMessage_;
      }
      public Builder setLeaveGameRequestMessage(de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        leaveGameRequestMessage_ = value;
        
        bitField0_ |= 0x80000000;
        return this;
      }
      public Builder setLeaveGameRequestMessage(
          de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage.Builder builderForValue) {
        leaveGameRequestMessage_ = builderForValue.build();
        
        bitField0_ |= 0x80000000;
        return this;
      }
      public Builder mergeLeaveGameRequestMessage(de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage value) {
        if (((bitField0_ & 0x80000000) == 0x80000000) &&
            leaveGameRequestMessage_ != de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage.getDefaultInstance()) {
          leaveGameRequestMessage_ =
            de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage.newBuilder(leaveGameRequestMessage_).mergeFrom(value).buildPartial();
        } else {
          leaveGameRequestMessage_ = value;
        }
        
        bitField0_ |= 0x80000000;
        return this;
      }
      public Builder clearLeaveGameRequestMessage() {
        leaveGameRequestMessage_ = de.pokerth.protocol.ProtoBuf.LeaveGameRequestMessage.getDefaultInstance();
        
        bitField0_ = (bitField0_ & ~0x80000000);
        return this;
      }
      
      // optional .InvitePlayerToGameMessage invitePlayerToGameMessage = 33;
      private de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage invitePlayerToGameMessage_ = de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage.getDefaultInstance();
      public boolean hasInvitePlayerToGameMessage() {
        return ((bitField1_ & 0x00000001) == 0x00000001);
      }
      public de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage getInvitePlayerToGameMessage() {
        return invitePlayerToGameMessage_;
      }
      public Builder setInvitePlayerToGameMessage(de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        invitePlayerToGameMessage_ = value;
        
        bitField1_ |= 0x00000001;
        return this;
      }
      public Builder setInvitePlayerToGameMessage(
          de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage.Builder builderForValue) {
        invitePlayerToGameMessage_ = builderForValue.build();
        
        bitField1_ |= 0x00000001;
        return this;
      }
      public Builder mergeInvitePlayerToGameMessage(de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage value) {
        if (((bitField1_ & 0x00000001) == 0x00000001) &&
            invitePlayerToGameMessage_ != de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage.getDefaultInstance()) {
          invitePlayerToGameMessage_ =
            de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage.newBuilder(invitePlayerToGameMessage_).mergeFrom(value).buildPartial();
        } else {
          invitePlayerToGameMessage_ = value;
        }
        
        bitField1_ |= 0x00000001;
        return this;
      }
      public Builder clearInvitePlayerToGameMessage() {
        invitePlayerToGameMessage_ = de.pokerth.protocol.ProtoBuf.InvitePlayerToGameMessage.getDefaultInstance();
        
        bitField1_ = (bitField1_ & ~0x00000001);
        return this;
      }
      
      // optional .InviteNotifyMessage inviteNotifyMessage = 34;
      private de.pokerth.protocol.ProtoBuf.InviteNotifyMessage inviteNotifyMessage_ = de.pokerth.protocol.ProtoBuf.InviteNotifyMessage.getDefaultInstance();
      public boolean hasInviteNotifyMessage() {
        return ((bitField1_ & 0x00000002) == 0x00000002);
      }
      public de.pokerth.protocol.ProtoBuf.InviteNotifyMessage getInviteNotifyMessage() {
        return inviteNotifyMessage_;
      }
      public Builder setInviteNotifyMessage(de.pokerth.protocol.ProtoBuf.InviteNotifyMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        inviteNotifyMessage_ = value;
        
        bitField1_ |= 0x00000002;
        return this;
      }
      public Builder setInviteNotifyMessage(
          de.pokerth.protocol.ProtoBuf.InviteNotifyMessage.Builder builderForValue) {
        inviteNotifyMessage_ = builderForValue.build();
        
        bitField1_ |= 0x00000002;
        return this;
      }
      public Builder mergeInviteNotifyMessage(de.pokerth.protocol.ProtoBuf.InviteNotifyMessage value) {
        if (((bitField1_ & 0x00000002) == 0x00000002) &&
            inviteNotifyMessage_ != de.pokerth.protocol.ProtoBuf.InviteNotifyMessage.getDefaultInstance()) {
          inviteNotifyMessage_ =
            de.pokerth.protocol.ProtoBuf.InviteNotifyMessage.newBuilder(inviteNotifyMessage_).mergeFrom(value).buildPartial();
        } else {
          inviteNotifyMessage_ = value;
        }
        
        bitField1_ |= 0x00000002;
        return this;
      }
      public Builder clearInviteNotifyMessage() {
        inviteNotifyMessage_ = de.pokerth.protocol.ProtoBuf.InviteNotifyMessage.getDefaultInstance();
        
        bitField1_ = (bitField1_ & ~0x00000002);
        return this;
      }
      
      // optional .RejectGameInvitationMessage rejectGameInvitationMessage = 35;
      private de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage rejectGameInvitationMessage_ = de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.getDefaultInstance();
      public boolean hasRejectGameInvitationMessage() {
        return ((bitField1_ & 0x00000004) == 0x00000004);
      }
      public de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage getRejectGameInvitationMessage() {
        return rejectGameInvitationMessage_;
      }
      public Builder setRejectGameInvitationMessage(de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        rejectGameInvitationMessage_ = value;
        
        bitField1_ |= 0x00000004;
        return this;
      }
      public Builder setRejectGameInvitationMessage(
          de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.Builder builderForValue) {
        rejectGameInvitationMessage_ = builderForValue.build();
        
        bitField1_ |= 0x00000004;
        return this;
      }
      public Builder mergeRejectGameInvitationMessage(de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage value) {
        if (((bitField1_ & 0x00000004) == 0x00000004) &&
            rejectGameInvitationMessage_ != de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.getDefaultInstance()) {
          rejectGameInvitationMessage_ =
            de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.newBuilder(rejectGameInvitationMessage_).mergeFrom(value).buildPartial();
        } else {
          rejectGameInvitationMessage_ = value;
        }
        
        bitField1_ |= 0x00000004;
        return this;
      }
      public Builder clearRejectGameInvitationMessage() {
        rejectGameInvitationMessage_ = de.pokerth.protocol.ProtoBuf.RejectGameInvitationMessage.getDefaultInstance();
        
        bitField1_ = (bitField1_ & ~0x00000004);
        return this;
      }
      
      // optional .RejectInvNotifyMessage rejectInvNotifyMessage = 36;
      private de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage rejectInvNotifyMessage_ = de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage.getDefaultInstance();
      public boolean hasRejectInvNotifyMessage() {
        return ((bitField1_ & 0x00000008) == 0x00000008);
      }
      public de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage getRejectInvNotifyMessage() {
        return rejectInvNotifyMessage_;
      }
      public Builder setRejectInvNotifyMessage(de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        rejectInvNotifyMessage_ = value;
        
        bitField1_ |= 0x00000008;
        return this;
      }
      public Builder setRejectInvNotifyMessage(
          de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage.Builder builderForValue) {
        rejectInvNotifyMessage_ = builderForValue.build();
        
        bitField1_ |= 0x00000008;
        return this;
      }
      public Builder mergeRejectInvNotifyMessage(de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage value) {
        if (((bitField1_ & 0x00000008) == 0x00000008) &&
            rejectInvNotifyMessage_ != de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage.getDefaultInstance()) {
          rejectInvNotifyMessage_ =
            de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage.newBuilder(rejectInvNotifyMessage_).mergeFrom(value).buildPartial();
        } else {
          rejectInvNotifyMessage_ = value;
        }
        
        bitField1_ |= 0x00000008;
        return this;
      }
      public Builder clearRejectInvNotifyMessage() {
        rejectInvNotifyMessage_ = de.pokerth.protocol.ProtoBuf.RejectInvNotifyMessage.getDefaultInstance();
        
        bitField1_ = (bitField1_ & ~0x00000008);
        return this;
      }
      
      // optional .StartEventMessage startEventMessage = 37;
      private de.pokerth.protocol.ProtoBuf.StartEventMessage startEventMessage_ = de.pokerth.protocol.ProtoBuf.StartEventMessage.getDefaultInstance();
      public boolean hasStartEventMessage() {
        return ((bitField1_ & 0x00000010) == 0x00000010);
      }
      public de.pokerth.protocol.ProtoBuf.StartEventMessage getStartEventMessage() {
        return startEventMessage_;
      }
      public Builder setStartEventMessage(de.pokerth.protocol.ProtoBuf.StartEventMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        startEventMessage_ = value;
        
        bitField1_ |= 0x00000010;
        return this;
      }
      public Builder setStartEventMessage(
          de.pokerth.protocol.ProtoBuf.StartEventMessage.Builder builderForValue) {
        startEventMessage_ = builderForValue.build();
        
        bitField1_ |= 0x00000010;
        return this;
      }
      public Builder mergeStartEventMessage(de.pokerth.protocol.ProtoBuf.StartEventMessage value) {
        if (((bitField1_ & 0x00000010) == 0x00000010) &&
            startEventMessage_ != de.pokerth.protocol.ProtoBuf.StartEventMessage.getDefaultInstance()) {
          startEventMessage_ =
            de.pokerth.protocol.ProtoBuf.StartEventMessage.newBuilder(startEventMessage_).mergeFrom(value).buildPartial();
        } else {
          startEventMessage_ = value;
        }
        
        bitField1_ |= 0x00000010;
        return this;
      }
      public Builder clearStartEventMessage() {
        startEventMessage_ = de.pokerth.protocol.ProtoBuf.StartEventMessage.getDefaultInstance();
        
        bitField1_ = (bitField1_ & ~0x00000010);
        return this;
      }
      
      // optional .StartEventAckMessage startEventAckMessage = 38;
      private de.pokerth.protocol.ProtoBuf.StartEventAckMessage startEventAckMessage_ = de.pokerth.protocol.ProtoBuf.StartEventAckMessage.getDefaultInstance();
      public boolean hasStartEventAckMessage() {
        return ((bitField1_ & 0x00000020) == 0x00000020);
      }
      public de.pokerth.protocol.ProtoBuf.StartEventAckMessage getStartEventAckMessage() {
        return startEventAckMessage_;
      }
      public Builder setStartEventAckMessage(de.pokerth.protocol.ProtoBuf.StartEventAckMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        startEventAckMessage_ = value;
        
        bitField1_ |= 0x00000020;
        return this;
      }
      public Builder setStartEventAckMessage(
          de.pokerth.protocol.ProtoBuf.StartEventAckMessage.Builder builderForValue) {
        startEventAckMessage_ = builderForValue.build();
        
        bitField1_ |= 0x00000020;
        return this;
      }
      public Builder mergeStartEventAckMessage(de.pokerth.protocol.ProtoBuf.StartEventAckMessage value) {
        if (((bitField1_ & 0x00000020) == 0x00000020) &&
            startEventAckMessage_ != de.pokerth.protocol.ProtoBuf.StartEventAckMessage.getDefaultInstance()) {
          startEventAckMessage_ =
            de.pokerth.protocol.ProtoBuf.StartEventAckMessage.newBuilder(startEventAckMessage_).mergeFrom(value).buildPartial();
        } else {
          startEventAckMessage_ = value;
        }
        
        bitField1_ |= 0x00000020;
        return this;
      }
      public Builder clearStartEventAckMessage() {
        startEventAckMessage_ = de.pokerth.protocol.ProtoBuf.StartEventAckMessage.getDefaultInstance();
        
        bitField1_ = (bitField1_ & ~0x00000020);
        return this;
      }
      
      // optional .GameStartInitialMessage gameStartInitialMessage = 39;
      private de.pokerth.protocol.ProtoBuf.GameStartInitialMessage gameStartInitialMessage_ = de.pokerth.protocol.ProtoBuf.GameStartInitialMessage.getDefaultInstance();
      public boolean hasGameStartInitialMessage() {
        return ((bitField1_ & 0x00000040) == 0x00000040);
      }
      public de.pokerth.protocol.ProtoBuf.GameStartInitialMessage getGameStartInitialMessage() {
        return gameStartInitialMessage_;
      }
      public Builder setGameStartInitialMessage(de.pokerth.protocol.ProtoBuf.GameStartInitialMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        gameStartInitialMessage_ = value;
        
        bitField1_ |= 0x00000040;
        return this;
      }
      public Builder setGameStartInitialMessage(
          de.pokerth.protocol.ProtoBuf.GameStartInitialMessage.Builder builderForValue) {
        gameStartInitialMessage_ = builderForValue.build();
        
        bitField1_ |= 0x00000040;
        return this;
      }
      public Builder mergeGameStartInitialMessage(de.pokerth.protocol.ProtoBuf.GameStartInitialMessage value) {
        if (((bitField1_ & 0x00000040) == 0x00000040) &&
            gameStartInitialMessage_ != de.pokerth.protocol.ProtoBuf.GameStartInitialMessage.getDefaultInstance()) {
          gameStartInitialMessage_ =
            de.pokerth.protocol.ProtoBuf.GameStartInitialMessage.newBuilder(gameStartInitialMessage_).mergeFrom(value).buildPartial();
        } else {
          gameStartInitialMessage_ = value;
        }
        
        bitField1_ |= 0x00000040;
        return this;
      }
      public Builder clearGameStartInitialMessage() {
        gameStartInitialMessage_ = de.pokerth.protocol.ProtoBuf.GameStartInitialMessage.getDefaultInstance();
        
        bitField1_ = (bitField1_ & ~0x00000040);
        return this;
      }
      
      // optional .GameStartRejoinMessage gameStartRejoinMessage = 40;
      private de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage gameStartRejoinMessage_ = de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.getDefaultInstance();
      public boolean hasGameStartRejoinMessage() {
        return ((bitField1_ & 0x00000080) == 0x00000080);
      }
      public de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage getGameStartRejoinMessage() {
        return gameStartRejoinMessage_;
      }
      public Builder setGameStartRejoinMessage(de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        gameStartRejoinMessage_ = value;
        
        bitField1_ |= 0x00000080;
        return this;
      }
      public Builder setGameStartRejoinMessage(
          de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.Builder builderForValue) {
        gameStartRejoinMessage_ = builderForValue.build();
        
        bitField1_ |= 0x00000080;
        return this;
      }
      public Builder mergeGameStartRejoinMessage(de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage value) {
        if (((bitField1_ & 0x00000080) == 0x00000080) &&
            gameStartRejoinMessage_ != de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.getDefaultInstance()) {
          gameStartRejoinMessage_ =
            de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.newBuilder(gameStartRejoinMessage_).mergeFrom(value).buildPartial();
        } else {
          gameStartRejoinMessage_ = value;
        }
        
        bitField1_ |= 0x00000080;
        return this;
      }
      public Builder clearGameStartRejoinMessage() {
        gameStartRejoinMessage_ = de.pokerth.protocol.ProtoBuf.GameStartRejoinMessage.getDefaultInstance();
        
        bitField1_ = (bitField1_ & ~0x00000080);
        return this;
      }
      
      // optional .HandStartMessage handStartMessage = 41;
      private de.pokerth.protocol.ProtoBuf.HandStartMessage handStartMessage_ = de.pokerth.protocol.ProtoBuf.HandStartMessage.getDefaultInstance();
      public boolean hasHandStartMessage() {
        return ((bitField1_ & 0x00000100) == 0x00000100);
      }
      public de.pokerth.protocol.ProtoBuf.HandStartMessage getHandStartMessage() {
        return handStartMessage_;
      }
      public Builder setHandStartMessage(de.pokerth.protocol.ProtoBuf.HandStartMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        handStartMessage_ = value;
        
        bitField1_ |= 0x00000100;
        return this;
      }
      public Builder setHandStartMessage(
          de.pokerth.protocol.ProtoBuf.HandStartMessage.Builder builderForValue) {
        handStartMessage_ = builderForValue.build();
        
        bitField1_ |= 0x00000100;
        return this;
      }
      public Builder mergeHandStartMessage(de.pokerth.protocol.ProtoBuf.HandStartMessage value) {
        if (((bitField1_ & 0x00000100) == 0x00000100) &&
            handStartMessage_ != de.pokerth.protocol.ProtoBuf.HandStartMessage.getDefaultInstance()) {
          handStartMessage_ =
            de.pokerth.protocol.ProtoBuf.HandStartMessage.newBuilder(handStartMessage_).mergeFrom(value).buildPartial();
        } else {
          handStartMessage_ = value;
        }
        
        bitField1_ |= 0x00000100;
        return this;
      }
      public Builder clearHandStartMessage() {
        handStartMessage_ = de.pokerth.protocol.ProtoBuf.HandStartMessage.getDefaultInstance();
        
        bitField1_ = (bitField1_ & ~0x00000100);
        return this;
      }
      
      // optional .PlayersTurnMessage playersTurnMessage = 42;
      private de.pokerth.protocol.ProtoBuf.PlayersTurnMessage playersTurnMessage_ = de.pokerth.protocol.ProtoBuf.PlayersTurnMessage.getDefaultInstance();
      public boolean hasPlayersTurnMessage() {
        return ((bitField1_ & 0x00000200) == 0x00000200);
      }
      public de.pokerth.protocol.ProtoBuf.PlayersTurnMessage getPlayersTurnMessage() {
        return playersTurnMessage_;
      }
      public Builder setPlayersTurnMessage(de.pokerth.protocol.ProtoBuf.PlayersTurnMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        playersTurnMessage_ = value;
        
        bitField1_ |= 0x00000200;
        return this;
      }
      public Builder setPlayersTurnMessage(
          de.pokerth.protocol.ProtoBuf.PlayersTurnMessage.Builder builderForValue) {
        playersTurnMessage_ = builderForValue.build();
        
        bitField1_ |= 0x00000200;
        return this;
      }
      public Builder mergePlayersTurnMessage(de.pokerth.protocol.ProtoBuf.PlayersTurnMessage value) {
        if (((bitField1_ & 0x00000200) == 0x00000200) &&
            playersTurnMessage_ != de.pokerth.protocol.ProtoBuf.PlayersTurnMessage.getDefaultInstance()) {
          playersTurnMessage_ =
            de.pokerth.protocol.ProtoBuf.PlayersTurnMessage.newBuilder(playersTurnMessage_).mergeFrom(value).buildPartial();
        } else {
          playersTurnMessage_ = value;
        }
        
        bitField1_ |= 0x00000200;
        return this;
      }
      public Builder clearPlayersTurnMessage() {
        playersTurnMessage_ = de.pokerth.protocol.ProtoBuf.PlayersTurnMessage.getDefaultInstance();
        
        bitField1_ = (bitField1_ & ~0x00000200);
        return this;
      }
      
      // optional .MyActionRequestMessage myActionRequestMessage = 43;
      private de.pokerth.protocol.ProtoBuf.MyActionRequestMessage myActionRequestMessage_ = de.pokerth.protocol.ProtoBuf.MyActionRequestMessage.getDefaultInstance();
      public boolean hasMyActionRequestMessage() {
        return ((bitField1_ & 0x00000400) == 0x00000400);
      }
      public de.pokerth.protocol.ProtoBuf.MyActionRequestMessage getMyActionRequestMessage() {
        return myActionRequestMessage_;
      }
      public Builder setMyActionRequestMessage(de.pokerth.protocol.ProtoBuf.MyActionRequestMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        myActionRequestMessage_ = value;
        
        bitField1_ |= 0x00000400;
        return this;
      }
      public Builder setMyActionRequestMessage(
          de.pokerth.protocol.ProtoBuf.MyActionRequestMessage.Builder builderForValue) {
        myActionRequestMessage_ = builderForValue.build();
        
        bitField1_ |= 0x00000400;
        return this;
      }
      public Builder mergeMyActionRequestMessage(de.pokerth.protocol.ProtoBuf.MyActionRequestMessage value) {
        if (((bitField1_ & 0x00000400) == 0x00000400) &&
            myActionRequestMessage_ != de.pokerth.protocol.ProtoBuf.MyActionRequestMessage.getDefaultInstance()) {
          myActionRequestMessage_ =
            de.pokerth.protocol.ProtoBuf.MyActionRequestMessage.newBuilder(myActionRequestMessage_).mergeFrom(value).buildPartial();
        } else {
          myActionRequestMessage_ = value;
        }
        
        bitField1_ |= 0x00000400;
        return this;
      }
      public Builder clearMyActionRequestMessage() {
        myActionRequestMessage_ = de.pokerth.protocol.ProtoBuf.MyActionRequestMessage.getDefaultInstance();
        
        bitField1_ = (bitField1_ & ~0x00000400);
        return this;
      }
      
      // optional .YourActionRejectedMessage yourActionRejectedMessage = 44;
      private de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage yourActionRejectedMessage_ = de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.getDefaultInstance();
      public boolean hasYourActionRejectedMessage() {
        return ((bitField1_ & 0x00000800) == 0x00000800);
      }
      public de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage getYourActionRejectedMessage() {
        return yourActionRejectedMessage_;
      }
      public Builder setYourActionRejectedMessage(de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        yourActionRejectedMessage_ = value;
        
        bitField1_ |= 0x00000800;
        return this;
      }
      public Builder setYourActionRejectedMessage(
          de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.Builder builderForValue) {
        yourActionRejectedMessage_ = builderForValue.build();
        
        bitField1_ |= 0x00000800;
        return this;
      }
      public Builder mergeYourActionRejectedMessage(de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage value) {
        if (((bitField1_ & 0x00000800) == 0x00000800) &&
            yourActionRejectedMessage_ != de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.getDefaultInstance()) {
          yourActionRejectedMessage_ =
            de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.newBuilder(yourActionRejectedMessage_).mergeFrom(value).buildPartial();
        } else {
          yourActionRejectedMessage_ = value;
        }
        
        bitField1_ |= 0x00000800;
        return this;
      }
      public Builder clearYourActionRejectedMessage() {
        yourActionRejectedMessage_ = de.pokerth.protocol.ProtoBuf.YourActionRejectedMessage.getDefaultInstance();
        
        bitField1_ = (bitField1_ & ~0x00000800);
        return this;
      }
      
      // optional .PlayersActionDoneMessage playersActionDoneMessage = 45;
      private de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage playersActionDoneMessage_ = de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage.getDefaultInstance();
      public boolean hasPlayersActionDoneMessage() {
        return ((bitField1_ & 0x00001000) == 0x00001000);
      }
      public de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage getPlayersActionDoneMessage() {
        return playersActionDoneMessage_;
      }
      public Builder setPlayersActionDoneMessage(de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        playersActionDoneMessage_ = value;
        
        bitField1_ |= 0x00001000;
        return this;
      }
      public Builder setPlayersActionDoneMessage(
          de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage.Builder builderForValue) {
        playersActionDoneMessage_ = builderForValue.build();
        
        bitField1_ |= 0x00001000;
        return this;
      }
      public Builder mergePlayersActionDoneMessage(de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage value) {
        if (((bitField1_ & 0x00001000) == 0x00001000) &&
            playersActionDoneMessage_ != de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage.getDefaultInstance()) {
          playersActionDoneMessage_ =
            de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage.newBuilder(playersActionDoneMessage_).mergeFrom(value).buildPartial();
        } else {
          playersActionDoneMessage_ = value;
        }
        
        bitField1_ |= 0x00001000;
        return this;
      }
      public Builder clearPlayersActionDoneMessage() {
        playersActionDoneMessage_ = de.pokerth.protocol.ProtoBuf.PlayersActionDoneMessage.getDefaultInstance();
        
        bitField1_ = (bitField1_ & ~0x00001000);
        return this;
      }
      
      // optional .DealFlopCardsMessage dealFlopCardsMessage = 46;
      private de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage dealFlopCardsMessage_ = de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage.getDefaultInstance();
      public boolean hasDealFlopCardsMessage() {
        return ((bitField1_ & 0x00002000) == 0x00002000);
      }
      public de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage getDealFlopCardsMessage() {
        return dealFlopCardsMessage_;
      }
      public Builder setDealFlopCardsMessage(de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        dealFlopCardsMessage_ = value;
        
        bitField1_ |= 0x00002000;
        return this;
      }
      public Builder setDealFlopCardsMessage(
          de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage.Builder builderForValue) {
        dealFlopCardsMessage_ = builderForValue.build();
        
        bitField1_ |= 0x00002000;
        return this;
      }
      public Builder mergeDealFlopCardsMessage(de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage value) {
        if (((bitField1_ & 0x00002000) == 0x00002000) &&
            dealFlopCardsMessage_ != de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage.getDefaultInstance()) {
          dealFlopCardsMessage_ =
            de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage.newBuilder(dealFlopCardsMessage_).mergeFrom(value).buildPartial();
        } else {
          dealFlopCardsMessage_ = value;
        }
        
        bitField1_ |= 0x00002000;
        return this;
      }
      public Builder clearDealFlopCardsMessage() {
        dealFlopCardsMessage_ = de.pokerth.protocol.ProtoBuf.DealFlopCardsMessage.getDefaultInstance();
        
        bitField1_ = (bitField1_ & ~0x00002000);
        return this;
      }
      
      // optional .DealTurnCardMessage dealTurnCardMessage = 47;
      private de.pokerth.protocol.ProtoBuf.DealTurnCardMessage dealTurnCardMessage_ = de.pokerth.protocol.ProtoBuf.DealTurnCardMessage.getDefaultInstance();
      public boolean hasDealTurnCardMessage() {
        return ((bitField1_ & 0x00004000) == 0x00004000);
      }
      public de.pokerth.protocol.ProtoBuf.DealTurnCardMessage getDealTurnCardMessage() {
        return dealTurnCardMessage_;
      }
      public Builder setDealTurnCardMessage(de.pokerth.protocol.ProtoBuf.DealTurnCardMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        dealTurnCardMessage_ = value;
        
        bitField1_ |= 0x00004000;
        return this;
      }
      public Builder setDealTurnCardMessage(
          de.pokerth.protocol.ProtoBuf.DealTurnCardMessage.Builder builderForValue) {
        dealTurnCardMessage_ = builderForValue.build();
        
        bitField1_ |= 0x00004000;
        return this;
      }
      public Builder mergeDealTurnCardMessage(de.pokerth.protocol.ProtoBuf.DealTurnCardMessage value) {
        if (((bitField1_ & 0x00004000) == 0x00004000) &&
            dealTurnCardMessage_ != de.pokerth.protocol.ProtoBuf.DealTurnCardMessage.getDefaultInstance()) {
          dealTurnCardMessage_ =
            de.pokerth.protocol.ProtoBuf.DealTurnCardMessage.newBuilder(dealTurnCardMessage_).mergeFrom(value).buildPartial();
        } else {
          dealTurnCardMessage_ = value;
        }
        
        bitField1_ |= 0x00004000;
        return this;
      }
      public Builder clearDealTurnCardMessage() {
        dealTurnCardMessage_ = de.pokerth.protocol.ProtoBuf.DealTurnCardMessage.getDefaultInstance();
        
        bitField1_ = (bitField1_ & ~0x00004000);
        return this;
      }
      
      // optional .DealRiverCardMessage dealRiverCardMessage = 48;
      private de.pokerth.protocol.ProtoBuf.DealRiverCardMessage dealRiverCardMessage_ = de.pokerth.protocol.ProtoBuf.DealRiverCardMessage.getDefaultInstance();
      public boolean hasDealRiverCardMessage() {
        return ((bitField1_ & 0x00008000) == 0x00008000);
      }
      public de.pokerth.protocol.ProtoBuf.DealRiverCardMessage getDealRiverCardMessage() {
        return dealRiverCardMessage_;
      }
      public Builder setDealRiverCardMessage(de.pokerth.protocol.ProtoBuf.DealRiverCardMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        dealRiverCardMessage_ = value;
        
        bitField1_ |= 0x00008000;
        return this;
      }
      public Builder setDealRiverCardMessage(
          de.pokerth.protocol.ProtoBuf.DealRiverCardMessage.Builder builderForValue) {
        dealRiverCardMessage_ = builderForValue.build();
        
        bitField1_ |= 0x00008000;
        return this;
      }
      public Builder mergeDealRiverCardMessage(de.pokerth.protocol.ProtoBuf.DealRiverCardMessage value) {
        if (((bitField1_ & 0x00008000) == 0x00008000) &&
            dealRiverCardMessage_ != de.pokerth.protocol.ProtoBuf.DealRiverCardMessage.getDefaultInstance()) {
          dealRiverCardMessage_ =
            de.pokerth.protocol.ProtoBuf.DealRiverCardMessage.newBuilder(dealRiverCardMessage_).mergeFrom(value).buildPartial();
        } else {
          dealRiverCardMessage_ = value;
        }
        
        bitField1_ |= 0x00008000;
        return this;
      }
      public Builder clearDealRiverCardMessage() {
        dealRiverCardMessage_ = de.pokerth.protocol.ProtoBuf.DealRiverCardMessage.getDefaultInstance();
        
        bitField1_ = (bitField1_ & ~0x00008000);
        return this;
      }
      
      // optional .AllInShowCardsMessage allInShowCardsMessage = 49;
      private de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage allInShowCardsMessage_ = de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.getDefaultInstance();
      public boolean hasAllInShowCardsMessage() {
        return ((bitField1_ & 0x00010000) == 0x00010000);
      }
      public de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage getAllInShowCardsMessage() {
        return allInShowCardsMessage_;
      }
      public Builder setAllInShowCardsMessage(de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        allInShowCardsMessage_ = value;
        
        bitField1_ |= 0x00010000;
        return this;
      }
      public Builder setAllInShowCardsMessage(
          de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.Builder builderForValue) {
        allInShowCardsMessage_ = builderForValue.build();
        
        bitField1_ |= 0x00010000;
        return this;
      }
      public Builder mergeAllInShowCardsMessage(de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage value) {
        if (((bitField1_ & 0x00010000) == 0x00010000) &&
            allInShowCardsMessage_ != de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.getDefaultInstance()) {
          allInShowCardsMessage_ =
            de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.newBuilder(allInShowCardsMessage_).mergeFrom(value).buildPartial();
        } else {
          allInShowCardsMessage_ = value;
        }
        
        bitField1_ |= 0x00010000;
        return this;
      }
      public Builder clearAllInShowCardsMessage() {
        allInShowCardsMessage_ = de.pokerth.protocol.ProtoBuf.AllInShowCardsMessage.getDefaultInstance();
        
        bitField1_ = (bitField1_ & ~0x00010000);
        return this;
      }
      
      // optional .EndOfHandShowCardsMessage endOfHandShowCardsMessage = 50;
      private de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage endOfHandShowCardsMessage_ = de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage.getDefaultInstance();
      public boolean hasEndOfHandShowCardsMessage() {
        return ((bitField1_ & 0x00020000) == 0x00020000);
      }
      public de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage getEndOfHandShowCardsMessage() {
        return endOfHandShowCardsMessage_;
      }
      public Builder setEndOfHandShowCardsMessage(de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        endOfHandShowCardsMessage_ = value;
        
        bitField1_ |= 0x00020000;
        return this;
      }
      public Builder setEndOfHandShowCardsMessage(
          de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage.Builder builderForValue) {
        endOfHandShowCardsMessage_ = builderForValue.build();
        
        bitField1_ |= 0x00020000;
        return this;
      }
      public Builder mergeEndOfHandShowCardsMessage(de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage value) {
        if (((bitField1_ & 0x00020000) == 0x00020000) &&
            endOfHandShowCardsMessage_ != de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage.getDefaultInstance()) {
          endOfHandShowCardsMessage_ =
            de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage.newBuilder(endOfHandShowCardsMessage_).mergeFrom(value).buildPartial();
        } else {
          endOfHandShowCardsMessage_ = value;
        }
        
        bitField1_ |= 0x00020000;
        return this;
      }
      public Builder clearEndOfHandShowCardsMessage() {
        endOfHandShowCardsMessage_ = de.pokerth.protocol.ProtoBuf.EndOfHandShowCardsMessage.getDefaultInstance();
        
        bitField1_ = (bitField1_ & ~0x00020000);
        return this;
      }
      
      // optional .EndOfHandHideCardsMessage endOfHandHideCardsMessage = 51;
      private de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage endOfHandHideCardsMessage_ = de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage.getDefaultInstance();
      public boolean hasEndOfHandHideCardsMessage() {
        return ((bitField1_ & 0x00040000) == 0x00040000);
      }
      public de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage getEndOfHandHideCardsMessage() {
        return endOfHandHideCardsMessage_;
      }
      public Builder setEndOfHandHideCardsMessage(de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        endOfHandHideCardsMessage_ = value;
        
        bitField1_ |= 0x00040000;
        return this;
      }
      public Builder setEndOfHandHideCardsMessage(
          de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage.Builder builderForValue) {
        endOfHandHideCardsMessage_ = builderForValue.build();
        
        bitField1_ |= 0x00040000;
        return this;
      }
      public Builder mergeEndOfHandHideCardsMessage(de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage value) {
        if (((bitField1_ & 0x00040000) == 0x00040000) &&
            endOfHandHideCardsMessage_ != de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage.getDefaultInstance()) {
          endOfHandHideCardsMessage_ =
            de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage.newBuilder(endOfHandHideCardsMessage_).mergeFrom(value).buildPartial();
        } else {
          endOfHandHideCardsMessage_ = value;
        }
        
        bitField1_ |= 0x00040000;
        return this;
      }
      public Builder clearEndOfHandHideCardsMessage() {
        endOfHandHideCardsMessage_ = de.pokerth.protocol.ProtoBuf.EndOfHandHideCardsMessage.getDefaultInstance();
        
        bitField1_ = (bitField1_ & ~0x00040000);
        return this;
      }
      
      // optional .ShowMyCardsRequestMessage showMyCardsRequestMessage = 52;
      private de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage showMyCardsRequestMessage_ = de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage.getDefaultInstance();
      public boolean hasShowMyCardsRequestMessage() {
        return ((bitField1_ & 0x00080000) == 0x00080000);
      }
      public de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage getShowMyCardsRequestMessage() {
        return showMyCardsRequestMessage_;
      }
      public Builder setShowMyCardsRequestMessage(de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        showMyCardsRequestMessage_ = value;
        
        bitField1_ |= 0x00080000;
        return this;
      }
      public Builder setShowMyCardsRequestMessage(
          de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage.Builder builderForValue) {
        showMyCardsRequestMessage_ = builderForValue.build();
        
        bitField1_ |= 0x00080000;
        return this;
      }
      public Builder mergeShowMyCardsRequestMessage(de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage value) {
        if (((bitField1_ & 0x00080000) == 0x00080000) &&
            showMyCardsRequestMessage_ != de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage.getDefaultInstance()) {
          showMyCardsRequestMessage_ =
            de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage.newBuilder(showMyCardsRequestMessage_).mergeFrom(value).buildPartial();
        } else {
          showMyCardsRequestMessage_ = value;
        }
        
        bitField1_ |= 0x00080000;
        return this;
      }
      public Builder clearShowMyCardsRequestMessage() {
        showMyCardsRequestMessage_ = de.pokerth.protocol.ProtoBuf.ShowMyCardsRequestMessage.getDefaultInstance();
        
        bitField1_ = (bitField1_ & ~0x00080000);
        return this;
      }
      
      // optional .AfterHandShowCardsMessage afterHandShowCardsMessage = 53;
      private de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage afterHandShowCardsMessage_ = de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage.getDefaultInstance();
      public boolean hasAfterHandShowCardsMessage() {
        return ((bitField1_ & 0x00100000) == 0x00100000);
      }
      public de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage getAfterHandShowCardsMessage() {
        return afterHandShowCardsMessage_;
      }
      public Builder setAfterHandShowCardsMessage(de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        afterHandShowCardsMessage_ = value;
        
        bitField1_ |= 0x00100000;
        return this;
      }
      public Builder setAfterHandShowCardsMessage(
          de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage.Builder builderForValue) {
        afterHandShowCardsMessage_ = builderForValue.build();
        
        bitField1_ |= 0x00100000;
        return this;
      }
      public Builder mergeAfterHandShowCardsMessage(de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage value) {
        if (((bitField1_ & 0x00100000) == 0x00100000) &&
            afterHandShowCardsMessage_ != de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage.getDefaultInstance()) {
          afterHandShowCardsMessage_ =
            de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage.newBuilder(afterHandShowCardsMessage_).mergeFrom(value).buildPartial();
        } else {
          afterHandShowCardsMessage_ = value;
        }
        
        bitField1_ |= 0x00100000;
        return this;
      }
      public Builder clearAfterHandShowCardsMessage() {
        afterHandShowCardsMessage_ = de.pokerth.protocol.ProtoBuf.AfterHandShowCardsMessage.getDefaultInstance();
        
        bitField1_ = (bitField1_ & ~0x00100000);
        return this;
      }
      
      // optional .EndOfGameMessage endOfGameMessage = 54;
      private de.pokerth.protocol.ProtoBuf.EndOfGameMessage endOfGameMessage_ = de.pokerth.protocol.ProtoBuf.EndOfGameMessage.getDefaultInstance();
      public boolean hasEndOfGameMessage() {
        return ((bitField1_ & 0x00200000) == 0x00200000);
      }
      public de.pokerth.protocol.ProtoBuf.EndOfGameMessage getEndOfGameMessage() {
        return endOfGameMessage_;
      }
      public Builder setEndOfGameMessage(de.pokerth.protocol.ProtoBuf.EndOfGameMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        endOfGameMessage_ = value;
        
        bitField1_ |= 0x00200000;
        return this;
      }
      public Builder setEndOfGameMessage(
          de.pokerth.protocol.ProtoBuf.EndOfGameMessage.Builder builderForValue) {
        endOfGameMessage_ = builderForValue.build();
        
        bitField1_ |= 0x00200000;
        return this;
      }
      public Builder mergeEndOfGameMessage(de.pokerth.protocol.ProtoBuf.EndOfGameMessage value) {
        if (((bitField1_ & 0x00200000) == 0x00200000) &&
            endOfGameMessage_ != de.pokerth.protocol.ProtoBuf.EndOfGameMessage.getDefaultInstance()) {
          endOfGameMessage_ =
            de.pokerth.protocol.ProtoBuf.EndOfGameMessage.newBuilder(endOfGameMessage_).mergeFrom(value).buildPartial();
        } else {
          endOfGameMessage_ = value;
        }
        
        bitField1_ |= 0x00200000;
        return this;
      }
      public Builder clearEndOfGameMessage() {
        endOfGameMessage_ = de.pokerth.protocol.ProtoBuf.EndOfGameMessage.getDefaultInstance();
        
        bitField1_ = (bitField1_ & ~0x00200000);
        return this;
      }
      
      // optional .PlayerIdChangedMessage playerIdChangedMessage = 55;
      private de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage playerIdChangedMessage_ = de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage.getDefaultInstance();
      public boolean hasPlayerIdChangedMessage() {
        return ((bitField1_ & 0x00400000) == 0x00400000);
      }
      public de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage getPlayerIdChangedMessage() {
        return playerIdChangedMessage_;
      }
      public Builder setPlayerIdChangedMessage(de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        playerIdChangedMessage_ = value;
        
        bitField1_ |= 0x00400000;
        return this;
      }
      public Builder setPlayerIdChangedMessage(
          de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage.Builder builderForValue) {
        playerIdChangedMessage_ = builderForValue.build();
        
        bitField1_ |= 0x00400000;
        return this;
      }
      public Builder mergePlayerIdChangedMessage(de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage value) {
        if (((bitField1_ & 0x00400000) == 0x00400000) &&
            playerIdChangedMessage_ != de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage.getDefaultInstance()) {
          playerIdChangedMessage_ =
            de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage.newBuilder(playerIdChangedMessage_).mergeFrom(value).buildPartial();
        } else {
          playerIdChangedMessage_ = value;
        }
        
        bitField1_ |= 0x00400000;
        return this;
      }
      public Builder clearPlayerIdChangedMessage() {
        playerIdChangedMessage_ = de.pokerth.protocol.ProtoBuf.PlayerIdChangedMessage.getDefaultInstance();
        
        bitField1_ = (bitField1_ & ~0x00400000);
        return this;
      }
      
      // optional .AskKickPlayerMessage askKickPlayerMessage = 56;
      private de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage askKickPlayerMessage_ = de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage.getDefaultInstance();
      public boolean hasAskKickPlayerMessage() {
        return ((bitField1_ & 0x00800000) == 0x00800000);
      }
      public de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage getAskKickPlayerMessage() {
        return askKickPlayerMessage_;
      }
      public Builder setAskKickPlayerMessage(de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        askKickPlayerMessage_ = value;
        
        bitField1_ |= 0x00800000;
        return this;
      }
      public Builder setAskKickPlayerMessage(
          de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage.Builder builderForValue) {
        askKickPlayerMessage_ = builderForValue.build();
        
        bitField1_ |= 0x00800000;
        return this;
      }
      public Builder mergeAskKickPlayerMessage(de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage value) {
        if (((bitField1_ & 0x00800000) == 0x00800000) &&
            askKickPlayerMessage_ != de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage.getDefaultInstance()) {
          askKickPlayerMessage_ =
            de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage.newBuilder(askKickPlayerMessage_).mergeFrom(value).buildPartial();
        } else {
          askKickPlayerMessage_ = value;
        }
        
        bitField1_ |= 0x00800000;
        return this;
      }
      public Builder clearAskKickPlayerMessage() {
        askKickPlayerMessage_ = de.pokerth.protocol.ProtoBuf.AskKickPlayerMessage.getDefaultInstance();
        
        bitField1_ = (bitField1_ & ~0x00800000);
        return this;
      }
      
      // optional .AskKickDeniedMessage askKickDeniedMessage = 57;
      private de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage askKickDeniedMessage_ = de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.getDefaultInstance();
      public boolean hasAskKickDeniedMessage() {
        return ((bitField1_ & 0x01000000) == 0x01000000);
      }
      public de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage getAskKickDeniedMessage() {
        return askKickDeniedMessage_;
      }
      public Builder setAskKickDeniedMessage(de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        askKickDeniedMessage_ = value;
        
        bitField1_ |= 0x01000000;
        return this;
      }
      public Builder setAskKickDeniedMessage(
          de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.Builder builderForValue) {
        askKickDeniedMessage_ = builderForValue.build();
        
        bitField1_ |= 0x01000000;
        return this;
      }
      public Builder mergeAskKickDeniedMessage(de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage value) {
        if (((bitField1_ & 0x01000000) == 0x01000000) &&
            askKickDeniedMessage_ != de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.getDefaultInstance()) {
          askKickDeniedMessage_ =
            de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.newBuilder(askKickDeniedMessage_).mergeFrom(value).buildPartial();
        } else {
          askKickDeniedMessage_ = value;
        }
        
        bitField1_ |= 0x01000000;
        return this;
      }
      public Builder clearAskKickDeniedMessage() {
        askKickDeniedMessage_ = de.pokerth.protocol.ProtoBuf.AskKickDeniedMessage.getDefaultInstance();
        
        bitField1_ = (bitField1_ & ~0x01000000);
        return this;
      }
      
      // optional .StartKickPetitionMessage startKickPetitionMessage = 58;
      private de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage startKickPetitionMessage_ = de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage.getDefaultInstance();
      public boolean hasStartKickPetitionMessage() {
        return ((bitField1_ & 0x02000000) == 0x02000000);
      }
      public de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage getStartKickPetitionMessage() {
        return startKickPetitionMessage_;
      }
      public Builder setStartKickPetitionMessage(de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        startKickPetitionMessage_ = value;
        
        bitField1_ |= 0x02000000;
        return this;
      }
      public Builder setStartKickPetitionMessage(
          de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage.Builder builderForValue) {
        startKickPetitionMessage_ = builderForValue.build();
        
        bitField1_ |= 0x02000000;
        return this;
      }
      public Builder mergeStartKickPetitionMessage(de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage value) {
        if (((bitField1_ & 0x02000000) == 0x02000000) &&
            startKickPetitionMessage_ != de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage.getDefaultInstance()) {
          startKickPetitionMessage_ =
            de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage.newBuilder(startKickPetitionMessage_).mergeFrom(value).buildPartial();
        } else {
          startKickPetitionMessage_ = value;
        }
        
        bitField1_ |= 0x02000000;
        return this;
      }
      public Builder clearStartKickPetitionMessage() {
        startKickPetitionMessage_ = de.pokerth.protocol.ProtoBuf.StartKickPetitionMessage.getDefaultInstance();
        
        bitField1_ = (bitField1_ & ~0x02000000);
        return this;
      }
      
      // optional .VoteKickRequestMessage voteKickRequestMessage = 59;
      private de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage voteKickRequestMessage_ = de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage.getDefaultInstance();
      public boolean hasVoteKickRequestMessage() {
        return ((bitField1_ & 0x04000000) == 0x04000000);
      }
      public de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage getVoteKickRequestMessage() {
        return voteKickRequestMessage_;
      }
      public Builder setVoteKickRequestMessage(de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        voteKickRequestMessage_ = value;
        
        bitField1_ |= 0x04000000;
        return this;
      }
      public Builder setVoteKickRequestMessage(
          de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage.Builder builderForValue) {
        voteKickRequestMessage_ = builderForValue.build();
        
        bitField1_ |= 0x04000000;
        return this;
      }
      public Builder mergeVoteKickRequestMessage(de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage value) {
        if (((bitField1_ & 0x04000000) == 0x04000000) &&
            voteKickRequestMessage_ != de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage.getDefaultInstance()) {
          voteKickRequestMessage_ =
            de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage.newBuilder(voteKickRequestMessage_).mergeFrom(value).buildPartial();
        } else {
          voteKickRequestMessage_ = value;
        }
        
        bitField1_ |= 0x04000000;
        return this;
      }
      public Builder clearVoteKickRequestMessage() {
        voteKickRequestMessage_ = de.pokerth.protocol.ProtoBuf.VoteKickRequestMessage.getDefaultInstance();
        
        bitField1_ = (bitField1_ & ~0x04000000);
        return this;
      }
      
      // optional .VoteKickReplyMessage voteKickReplyMessage = 60;
      private de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage voteKickReplyMessage_ = de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.getDefaultInstance();
      public boolean hasVoteKickReplyMessage() {
        return ((bitField1_ & 0x08000000) == 0x08000000);
      }
      public de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage getVoteKickReplyMessage() {
        return voteKickReplyMessage_;
      }
      public Builder setVoteKickReplyMessage(de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        voteKickReplyMessage_ = value;
        
        bitField1_ |= 0x08000000;
        return this;
      }
      public Builder setVoteKickReplyMessage(
          de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.Builder builderForValue) {
        voteKickReplyMessage_ = builderForValue.build();
        
        bitField1_ |= 0x08000000;
        return this;
      }
      public Builder mergeVoteKickReplyMessage(de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage value) {
        if (((bitField1_ & 0x08000000) == 0x08000000) &&
            voteKickReplyMessage_ != de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.getDefaultInstance()) {
          voteKickReplyMessage_ =
            de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.newBuilder(voteKickReplyMessage_).mergeFrom(value).buildPartial();
        } else {
          voteKickReplyMessage_ = value;
        }
        
        bitField1_ |= 0x08000000;
        return this;
      }
      public Builder clearVoteKickReplyMessage() {
        voteKickReplyMessage_ = de.pokerth.protocol.ProtoBuf.VoteKickReplyMessage.getDefaultInstance();
        
        bitField1_ = (bitField1_ & ~0x08000000);
        return this;
      }
      
      // optional .KickPetitionUpdateMessage kickPetitionUpdateMessage = 61;
      private de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage kickPetitionUpdateMessage_ = de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage.getDefaultInstance();
      public boolean hasKickPetitionUpdateMessage() {
        return ((bitField1_ & 0x10000000) == 0x10000000);
      }
      public de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage getKickPetitionUpdateMessage() {
        return kickPetitionUpdateMessage_;
      }
      public Builder setKickPetitionUpdateMessage(de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        kickPetitionUpdateMessage_ = value;
        
        bitField1_ |= 0x10000000;
        return this;
      }
      public Builder setKickPetitionUpdateMessage(
          de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage.Builder builderForValue) {
        kickPetitionUpdateMessage_ = builderForValue.build();
        
        bitField1_ |= 0x10000000;
        return this;
      }
      public Builder mergeKickPetitionUpdateMessage(de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage value) {
        if (((bitField1_ & 0x10000000) == 0x10000000) &&
            kickPetitionUpdateMessage_ != de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage.getDefaultInstance()) {
          kickPetitionUpdateMessage_ =
            de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage.newBuilder(kickPetitionUpdateMessage_).mergeFrom(value).buildPartial();
        } else {
          kickPetitionUpdateMessage_ = value;
        }
        
        bitField1_ |= 0x10000000;
        return this;
      }
      public Builder clearKickPetitionUpdateMessage() {
        kickPetitionUpdateMessage_ = de.pokerth.protocol.ProtoBuf.KickPetitionUpdateMessage.getDefaultInstance();
        
        bitField1_ = (bitField1_ & ~0x10000000);
        return this;
      }
      
      // optional .EndKickPetitionMessage endKickPetitionMessage = 62;
      private de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage endKickPetitionMessage_ = de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.getDefaultInstance();
      public boolean hasEndKickPetitionMessage() {
        return ((bitField1_ & 0x20000000) == 0x20000000);
      }
      public de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage getEndKickPetitionMessage() {
        return endKickPetitionMessage_;
      }
      public Builder setEndKickPetitionMessage(de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        endKickPetitionMessage_ = value;
        
        bitField1_ |= 0x20000000;
        return this;
      }
      public Builder setEndKickPetitionMessage(
          de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.Builder builderForValue) {
        endKickPetitionMessage_ = builderForValue.build();
        
        bitField1_ |= 0x20000000;
        return this;
      }
      public Builder mergeEndKickPetitionMessage(de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage value) {
        if (((bitField1_ & 0x20000000) == 0x20000000) &&
            endKickPetitionMessage_ != de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.getDefaultInstance()) {
          endKickPetitionMessage_ =
            de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.newBuilder(endKickPetitionMessage_).mergeFrom(value).buildPartial();
        } else {
          endKickPetitionMessage_ = value;
        }
        
        bitField1_ |= 0x20000000;
        return this;
      }
      public Builder clearEndKickPetitionMessage() {
        endKickPetitionMessage_ = de.pokerth.protocol.ProtoBuf.EndKickPetitionMessage.getDefaultInstance();
        
        bitField1_ = (bitField1_ & ~0x20000000);
        return this;
      }
      
      // optional .StatisticsMessage statisticsMessage = 63;
      private de.pokerth.protocol.ProtoBuf.StatisticsMessage statisticsMessage_ = de.pokerth.protocol.ProtoBuf.StatisticsMessage.getDefaultInstance();
      public boolean hasStatisticsMessage() {
        return ((bitField1_ & 0x40000000) == 0x40000000);
      }
      public de.pokerth.protocol.ProtoBuf.StatisticsMessage getStatisticsMessage() {
        return statisticsMessage_;
      }
      public Builder setStatisticsMessage(de.pokerth.protocol.ProtoBuf.StatisticsMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        statisticsMessage_ = value;
        
        bitField1_ |= 0x40000000;
        return this;
      }
      public Builder setStatisticsMessage(
          de.pokerth.protocol.ProtoBuf.StatisticsMessage.Builder builderForValue) {
        statisticsMessage_ = builderForValue.build();
        
        bitField1_ |= 0x40000000;
        return this;
      }
      public Builder mergeStatisticsMessage(de.pokerth.protocol.ProtoBuf.StatisticsMessage value) {
        if (((bitField1_ & 0x40000000) == 0x40000000) &&
            statisticsMessage_ != de.pokerth.protocol.ProtoBuf.StatisticsMessage.getDefaultInstance()) {
          statisticsMessage_ =
            de.pokerth.protocol.ProtoBuf.StatisticsMessage.newBuilder(statisticsMessage_).mergeFrom(value).buildPartial();
        } else {
          statisticsMessage_ = value;
        }
        
        bitField1_ |= 0x40000000;
        return this;
      }
      public Builder clearStatisticsMessage() {
        statisticsMessage_ = de.pokerth.protocol.ProtoBuf.StatisticsMessage.getDefaultInstance();
        
        bitField1_ = (bitField1_ & ~0x40000000);
        return this;
      }
      
      // optional .ChatRequestMessage chatRequestMessage = 64;
      private de.pokerth.protocol.ProtoBuf.ChatRequestMessage chatRequestMessage_ = de.pokerth.protocol.ProtoBuf.ChatRequestMessage.getDefaultInstance();
      public boolean hasChatRequestMessage() {
        return ((bitField1_ & 0x80000000) == 0x80000000);
      }
      public de.pokerth.protocol.ProtoBuf.ChatRequestMessage getChatRequestMessage() {
        return chatRequestMessage_;
      }
      public Builder setChatRequestMessage(de.pokerth.protocol.ProtoBuf.ChatRequestMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        chatRequestMessage_ = value;
        
        bitField1_ |= 0x80000000;
        return this;
      }
      public Builder setChatRequestMessage(
          de.pokerth.protocol.ProtoBuf.ChatRequestMessage.Builder builderForValue) {
        chatRequestMessage_ = builderForValue.build();
        
        bitField1_ |= 0x80000000;
        return this;
      }
      public Builder mergeChatRequestMessage(de.pokerth.protocol.ProtoBuf.ChatRequestMessage value) {
        if (((bitField1_ & 0x80000000) == 0x80000000) &&
            chatRequestMessage_ != de.pokerth.protocol.ProtoBuf.ChatRequestMessage.getDefaultInstance()) {
          chatRequestMessage_ =
            de.pokerth.protocol.ProtoBuf.ChatRequestMessage.newBuilder(chatRequestMessage_).mergeFrom(value).buildPartial();
        } else {
          chatRequestMessage_ = value;
        }
        
        bitField1_ |= 0x80000000;
        return this;
      }
      public Builder clearChatRequestMessage() {
        chatRequestMessage_ = de.pokerth.protocol.ProtoBuf.ChatRequestMessage.getDefaultInstance();
        
        bitField1_ = (bitField1_ & ~0x80000000);
        return this;
      }
      
      // optional .ChatMessage chatMessage = 65;
      private de.pokerth.protocol.ProtoBuf.ChatMessage chatMessage_ = de.pokerth.protocol.ProtoBuf.ChatMessage.getDefaultInstance();
      public boolean hasChatMessage() {
        return ((bitField2_ & 0x00000001) == 0x00000001);
      }
      public de.pokerth.protocol.ProtoBuf.ChatMessage getChatMessage() {
        return chatMessage_;
      }
      public Builder setChatMessage(de.pokerth.protocol.ProtoBuf.ChatMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        chatMessage_ = value;
        
        bitField2_ |= 0x00000001;
        return this;
      }
      public Builder setChatMessage(
          de.pokerth.protocol.ProtoBuf.ChatMessage.Builder builderForValue) {
        chatMessage_ = builderForValue.build();
        
        bitField2_ |= 0x00000001;
        return this;
      }
      public Builder mergeChatMessage(de.pokerth.protocol.ProtoBuf.ChatMessage value) {
        if (((bitField2_ & 0x00000001) == 0x00000001) &&
            chatMessage_ != de.pokerth.protocol.ProtoBuf.ChatMessage.getDefaultInstance()) {
          chatMessage_ =
            de.pokerth.protocol.ProtoBuf.ChatMessage.newBuilder(chatMessage_).mergeFrom(value).buildPartial();
        } else {
          chatMessage_ = value;
        }
        
        bitField2_ |= 0x00000001;
        return this;
      }
      public Builder clearChatMessage() {
        chatMessage_ = de.pokerth.protocol.ProtoBuf.ChatMessage.getDefaultInstance();
        
        bitField2_ = (bitField2_ & ~0x00000001);
        return this;
      }
      
      // optional .ChatRejectMessage chatRejectMessage = 66;
      private de.pokerth.protocol.ProtoBuf.ChatRejectMessage chatRejectMessage_ = de.pokerth.protocol.ProtoBuf.ChatRejectMessage.getDefaultInstance();
      public boolean hasChatRejectMessage() {
        return ((bitField2_ & 0x00000002) == 0x00000002);
      }
      public de.pokerth.protocol.ProtoBuf.ChatRejectMessage getChatRejectMessage() {
        return chatRejectMessage_;
      }
      public Builder setChatRejectMessage(de.pokerth.protocol.ProtoBuf.ChatRejectMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        chatRejectMessage_ = value;
        
        bitField2_ |= 0x00000002;
        return this;
      }
      public Builder setChatRejectMessage(
          de.pokerth.protocol.ProtoBuf.ChatRejectMessage.Builder builderForValue) {
        chatRejectMessage_ = builderForValue.build();
        
        bitField2_ |= 0x00000002;
        return this;
      }
      public Builder mergeChatRejectMessage(de.pokerth.protocol.ProtoBuf.ChatRejectMessage value) {
        if (((bitField2_ & 0x00000002) == 0x00000002) &&
            chatRejectMessage_ != de.pokerth.protocol.ProtoBuf.ChatRejectMessage.getDefaultInstance()) {
          chatRejectMessage_ =
            de.pokerth.protocol.ProtoBuf.ChatRejectMessage.newBuilder(chatRejectMessage_).mergeFrom(value).buildPartial();
        } else {
          chatRejectMessage_ = value;
        }
        
        bitField2_ |= 0x00000002;
        return this;
      }
      public Builder clearChatRejectMessage() {
        chatRejectMessage_ = de.pokerth.protocol.ProtoBuf.ChatRejectMessage.getDefaultInstance();
        
        bitField2_ = (bitField2_ & ~0x00000002);
        return this;
      }
      
      // optional .DialogMessage dialogMessage = 67;
      private de.pokerth.protocol.ProtoBuf.DialogMessage dialogMessage_ = de.pokerth.protocol.ProtoBuf.DialogMessage.getDefaultInstance();
      public boolean hasDialogMessage() {
        return ((bitField2_ & 0x00000004) == 0x00000004);
      }
      public de.pokerth.protocol.ProtoBuf.DialogMessage getDialogMessage() {
        return dialogMessage_;
      }
      public Builder setDialogMessage(de.pokerth.protocol.ProtoBuf.DialogMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        dialogMessage_ = value;
        
        bitField2_ |= 0x00000004;
        return this;
      }
      public Builder setDialogMessage(
          de.pokerth.protocol.ProtoBuf.DialogMessage.Builder builderForValue) {
        dialogMessage_ = builderForValue.build();
        
        bitField2_ |= 0x00000004;
        return this;
      }
      public Builder mergeDialogMessage(de.pokerth.protocol.ProtoBuf.DialogMessage value) {
        if (((bitField2_ & 0x00000004) == 0x00000004) &&
            dialogMessage_ != de.pokerth.protocol.ProtoBuf.DialogMessage.getDefaultInstance()) {
          dialogMessage_ =
            de.pokerth.protocol.ProtoBuf.DialogMessage.newBuilder(dialogMessage_).mergeFrom(value).buildPartial();
        } else {
          dialogMessage_ = value;
        }
        
        bitField2_ |= 0x00000004;
        return this;
      }
      public Builder clearDialogMessage() {
        dialogMessage_ = de.pokerth.protocol.ProtoBuf.DialogMessage.getDefaultInstance();
        
        bitField2_ = (bitField2_ & ~0x00000004);
        return this;
      }
      
      // optional .TimeoutWarningMessage timeoutWarningMessage = 68;
      private de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage timeoutWarningMessage_ = de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.getDefaultInstance();
      public boolean hasTimeoutWarningMessage() {
        return ((bitField2_ & 0x00000008) == 0x00000008);
      }
      public de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage getTimeoutWarningMessage() {
        return timeoutWarningMessage_;
      }
      public Builder setTimeoutWarningMessage(de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        timeoutWarningMessage_ = value;
        
        bitField2_ |= 0x00000008;
        return this;
      }
      public Builder setTimeoutWarningMessage(
          de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.Builder builderForValue) {
        timeoutWarningMessage_ = builderForValue.build();
        
        bitField2_ |= 0x00000008;
        return this;
      }
      public Builder mergeTimeoutWarningMessage(de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage value) {
        if (((bitField2_ & 0x00000008) == 0x00000008) &&
            timeoutWarningMessage_ != de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.getDefaultInstance()) {
          timeoutWarningMessage_ =
            de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.newBuilder(timeoutWarningMessage_).mergeFrom(value).buildPartial();
        } else {
          timeoutWarningMessage_ = value;
        }
        
        bitField2_ |= 0x00000008;
        return this;
      }
      public Builder clearTimeoutWarningMessage() {
        timeoutWarningMessage_ = de.pokerth.protocol.ProtoBuf.TimeoutWarningMessage.getDefaultInstance();
        
        bitField2_ = (bitField2_ & ~0x00000008);
        return this;
      }
      
      // optional .ResetTimeoutMessage resetTimeoutMessage = 69;
      private de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage resetTimeoutMessage_ = de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage.getDefaultInstance();
      public boolean hasResetTimeoutMessage() {
        return ((bitField2_ & 0x00000010) == 0x00000010);
      }
      public de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage getResetTimeoutMessage() {
        return resetTimeoutMessage_;
      }
      public Builder setResetTimeoutMessage(de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        resetTimeoutMessage_ = value;
        
        bitField2_ |= 0x00000010;
        return this;
      }
      public Builder setResetTimeoutMessage(
          de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage.Builder builderForValue) {
        resetTimeoutMessage_ = builderForValue.build();
        
        bitField2_ |= 0x00000010;
        return this;
      }
      public Builder mergeResetTimeoutMessage(de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage value) {
        if (((bitField2_ & 0x00000010) == 0x00000010) &&
            resetTimeoutMessage_ != de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage.getDefaultInstance()) {
          resetTimeoutMessage_ =
            de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage.newBuilder(resetTimeoutMessage_).mergeFrom(value).buildPartial();
        } else {
          resetTimeoutMessage_ = value;
        }
        
        bitField2_ |= 0x00000010;
        return this;
      }
      public Builder clearResetTimeoutMessage() {
        resetTimeoutMessage_ = de.pokerth.protocol.ProtoBuf.ResetTimeoutMessage.getDefaultInstance();
        
        bitField2_ = (bitField2_ & ~0x00000010);
        return this;
      }
      
      // optional .ReportAvatarMessage reportAvatarMessage = 70;
      private de.pokerth.protocol.ProtoBuf.ReportAvatarMessage reportAvatarMessage_ = de.pokerth.protocol.ProtoBuf.ReportAvatarMessage.getDefaultInstance();
      public boolean hasReportAvatarMessage() {
        return ((bitField2_ & 0x00000020) == 0x00000020);
      }
      public de.pokerth.protocol.ProtoBuf.ReportAvatarMessage getReportAvatarMessage() {
        return reportAvatarMessage_;
      }
      public Builder setReportAvatarMessage(de.pokerth.protocol.ProtoBuf.ReportAvatarMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        reportAvatarMessage_ = value;
        
        bitField2_ |= 0x00000020;
        return this;
      }
      public Builder setReportAvatarMessage(
          de.pokerth.protocol.ProtoBuf.ReportAvatarMessage.Builder builderForValue) {
        reportAvatarMessage_ = builderForValue.build();
        
        bitField2_ |= 0x00000020;
        return this;
      }
      public Builder mergeReportAvatarMessage(de.pokerth.protocol.ProtoBuf.ReportAvatarMessage value) {
        if (((bitField2_ & 0x00000020) == 0x00000020) &&
            reportAvatarMessage_ != de.pokerth.protocol.ProtoBuf.ReportAvatarMessage.getDefaultInstance()) {
          reportAvatarMessage_ =
            de.pokerth.protocol.ProtoBuf.ReportAvatarMessage.newBuilder(reportAvatarMessage_).mergeFrom(value).buildPartial();
        } else {
          reportAvatarMessage_ = value;
        }
        
        bitField2_ |= 0x00000020;
        return this;
      }
      public Builder clearReportAvatarMessage() {
        reportAvatarMessage_ = de.pokerth.protocol.ProtoBuf.ReportAvatarMessage.getDefaultInstance();
        
        bitField2_ = (bitField2_ & ~0x00000020);
        return this;
      }
      
      // optional .ReportAvatarAckMessage reportAvatarAckMessage = 71;
      private de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage reportAvatarAckMessage_ = de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.getDefaultInstance();
      public boolean hasReportAvatarAckMessage() {
        return ((bitField2_ & 0x00000040) == 0x00000040);
      }
      public de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage getReportAvatarAckMessage() {
        return reportAvatarAckMessage_;
      }
      public Builder setReportAvatarAckMessage(de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        reportAvatarAckMessage_ = value;
        
        bitField2_ |= 0x00000040;
        return this;
      }
      public Builder setReportAvatarAckMessage(
          de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.Builder builderForValue) {
        reportAvatarAckMessage_ = builderForValue.build();
        
        bitField2_ |= 0x00000040;
        return this;
      }
      public Builder mergeReportAvatarAckMessage(de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage value) {
        if (((bitField2_ & 0x00000040) == 0x00000040) &&
            reportAvatarAckMessage_ != de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.getDefaultInstance()) {
          reportAvatarAckMessage_ =
            de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.newBuilder(reportAvatarAckMessage_).mergeFrom(value).buildPartial();
        } else {
          reportAvatarAckMessage_ = value;
        }
        
        bitField2_ |= 0x00000040;
        return this;
      }
      public Builder clearReportAvatarAckMessage() {
        reportAvatarAckMessage_ = de.pokerth.protocol.ProtoBuf.ReportAvatarAckMessage.getDefaultInstance();
        
        bitField2_ = (bitField2_ & ~0x00000040);
        return this;
      }
      
      // optional .ReportGameMessage reportGameMessage = 72;
      private de.pokerth.protocol.ProtoBuf.ReportGameMessage reportGameMessage_ = de.pokerth.protocol.ProtoBuf.ReportGameMessage.getDefaultInstance();
      public boolean hasReportGameMessage() {
        return ((bitField2_ & 0x00000080) == 0x00000080);
      }
      public de.pokerth.protocol.ProtoBuf.ReportGameMessage getReportGameMessage() {
        return reportGameMessage_;
      }
      public Builder setReportGameMessage(de.pokerth.protocol.ProtoBuf.ReportGameMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        reportGameMessage_ = value;
        
        bitField2_ |= 0x00000080;
        return this;
      }
      public Builder setReportGameMessage(
          de.pokerth.protocol.ProtoBuf.ReportGameMessage.Builder builderForValue) {
        reportGameMessage_ = builderForValue.build();
        
        bitField2_ |= 0x00000080;
        return this;
      }
      public Builder mergeReportGameMessage(de.pokerth.protocol.ProtoBuf.ReportGameMessage value) {
        if (((bitField2_ & 0x00000080) == 0x00000080) &&
            reportGameMessage_ != de.pokerth.protocol.ProtoBuf.ReportGameMessage.getDefaultInstance()) {
          reportGameMessage_ =
            de.pokerth.protocol.ProtoBuf.ReportGameMessage.newBuilder(reportGameMessage_).mergeFrom(value).buildPartial();
        } else {
          reportGameMessage_ = value;
        }
        
        bitField2_ |= 0x00000080;
        return this;
      }
      public Builder clearReportGameMessage() {
        reportGameMessage_ = de.pokerth.protocol.ProtoBuf.ReportGameMessage.getDefaultInstance();
        
        bitField2_ = (bitField2_ & ~0x00000080);
        return this;
      }
      
      // optional .ReportGameAckMessage reportGameAckMessage = 73;
      private de.pokerth.protocol.ProtoBuf.ReportGameAckMessage reportGameAckMessage_ = de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.getDefaultInstance();
      public boolean hasReportGameAckMessage() {
        return ((bitField2_ & 0x00000100) == 0x00000100);
      }
      public de.pokerth.protocol.ProtoBuf.ReportGameAckMessage getReportGameAckMessage() {
        return reportGameAckMessage_;
      }
      public Builder setReportGameAckMessage(de.pokerth.protocol.ProtoBuf.ReportGameAckMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        reportGameAckMessage_ = value;
        
        bitField2_ |= 0x00000100;
        return this;
      }
      public Builder setReportGameAckMessage(
          de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.Builder builderForValue) {
        reportGameAckMessage_ = builderForValue.build();
        
        bitField2_ |= 0x00000100;
        return this;
      }
      public Builder mergeReportGameAckMessage(de.pokerth.protocol.ProtoBuf.ReportGameAckMessage value) {
        if (((bitField2_ & 0x00000100) == 0x00000100) &&
            reportGameAckMessage_ != de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.getDefaultInstance()) {
          reportGameAckMessage_ =
            de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.newBuilder(reportGameAckMessage_).mergeFrom(value).buildPartial();
        } else {
          reportGameAckMessage_ = value;
        }
        
        bitField2_ |= 0x00000100;
        return this;
      }
      public Builder clearReportGameAckMessage() {
        reportGameAckMessage_ = de.pokerth.protocol.ProtoBuf.ReportGameAckMessage.getDefaultInstance();
        
        bitField2_ = (bitField2_ & ~0x00000100);
        return this;
      }
      
      // optional .ErrorMessage errorMessage = 74;
      private de.pokerth.protocol.ProtoBuf.ErrorMessage errorMessage_ = de.pokerth.protocol.ProtoBuf.ErrorMessage.getDefaultInstance();
      public boolean hasErrorMessage() {
        return ((bitField2_ & 0x00000200) == 0x00000200);
      }
      public de.pokerth.protocol.ProtoBuf.ErrorMessage getErrorMessage() {
        return errorMessage_;
      }
      public Builder setErrorMessage(de.pokerth.protocol.ProtoBuf.ErrorMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        errorMessage_ = value;
        
        bitField2_ |= 0x00000200;
        return this;
      }
      public Builder setErrorMessage(
          de.pokerth.protocol.ProtoBuf.ErrorMessage.Builder builderForValue) {
        errorMessage_ = builderForValue.build();
        
        bitField2_ |= 0x00000200;
        return this;
      }
      public Builder mergeErrorMessage(de.pokerth.protocol.ProtoBuf.ErrorMessage value) {
        if (((bitField2_ & 0x00000200) == 0x00000200) &&
            errorMessage_ != de.pokerth.protocol.ProtoBuf.ErrorMessage.getDefaultInstance()) {
          errorMessage_ =
            de.pokerth.protocol.ProtoBuf.ErrorMessage.newBuilder(errorMessage_).mergeFrom(value).buildPartial();
        } else {
          errorMessage_ = value;
        }
        
        bitField2_ |= 0x00000200;
        return this;
      }
      public Builder clearErrorMessage() {
        errorMessage_ = de.pokerth.protocol.ProtoBuf.ErrorMessage.getDefaultInstance();
        
        bitField2_ = (bitField2_ & ~0x00000200);
        return this;
      }
      
      // optional .AdminRemoveGameMessage adminRemoveGameMessage = 75;
      private de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage adminRemoveGameMessage_ = de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage.getDefaultInstance();
      public boolean hasAdminRemoveGameMessage() {
        return ((bitField2_ & 0x00000400) == 0x00000400);
      }
      public de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage getAdminRemoveGameMessage() {
        return adminRemoveGameMessage_;
      }
      public Builder setAdminRemoveGameMessage(de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        adminRemoveGameMessage_ = value;
        
        bitField2_ |= 0x00000400;
        return this;
      }
      public Builder setAdminRemoveGameMessage(
          de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage.Builder builderForValue) {
        adminRemoveGameMessage_ = builderForValue.build();
        
        bitField2_ |= 0x00000400;
        return this;
      }
      public Builder mergeAdminRemoveGameMessage(de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage value) {
        if (((bitField2_ & 0x00000400) == 0x00000400) &&
            adminRemoveGameMessage_ != de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage.getDefaultInstance()) {
          adminRemoveGameMessage_ =
            de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage.newBuilder(adminRemoveGameMessage_).mergeFrom(value).buildPartial();
        } else {
          adminRemoveGameMessage_ = value;
        }
        
        bitField2_ |= 0x00000400;
        return this;
      }
      public Builder clearAdminRemoveGameMessage() {
        adminRemoveGameMessage_ = de.pokerth.protocol.ProtoBuf.AdminRemoveGameMessage.getDefaultInstance();
        
        bitField2_ = (bitField2_ & ~0x00000400);
        return this;
      }
      
      // optional .AdminRemoveGameAckMessage adminRemoveGameAckMessage = 76;
      private de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage adminRemoveGameAckMessage_ = de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.getDefaultInstance();
      public boolean hasAdminRemoveGameAckMessage() {
        return ((bitField2_ & 0x00000800) == 0x00000800);
      }
      public de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage getAdminRemoveGameAckMessage() {
        return adminRemoveGameAckMessage_;
      }
      public Builder setAdminRemoveGameAckMessage(de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        adminRemoveGameAckMessage_ = value;
        
        bitField2_ |= 0x00000800;
        return this;
      }
      public Builder setAdminRemoveGameAckMessage(
          de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.Builder builderForValue) {
        adminRemoveGameAckMessage_ = builderForValue.build();
        
        bitField2_ |= 0x00000800;
        return this;
      }
      public Builder mergeAdminRemoveGameAckMessage(de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage value) {
        if (((bitField2_ & 0x00000800) == 0x00000800) &&
            adminRemoveGameAckMessage_ != de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.getDefaultInstance()) {
          adminRemoveGameAckMessage_ =
            de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.newBuilder(adminRemoveGameAckMessage_).mergeFrom(value).buildPartial();
        } else {
          adminRemoveGameAckMessage_ = value;
        }
        
        bitField2_ |= 0x00000800;
        return this;
      }
      public Builder clearAdminRemoveGameAckMessage() {
        adminRemoveGameAckMessage_ = de.pokerth.protocol.ProtoBuf.AdminRemoveGameAckMessage.getDefaultInstance();
        
        bitField2_ = (bitField2_ & ~0x00000800);
        return this;
      }
      
      // optional .AdminBanPlayerMessage adminBanPlayerMessage = 77;
      private de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage adminBanPlayerMessage_ = de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage.getDefaultInstance();
      public boolean hasAdminBanPlayerMessage() {
        return ((bitField2_ & 0x00001000) == 0x00001000);
      }
      public de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage getAdminBanPlayerMessage() {
        return adminBanPlayerMessage_;
      }
      public Builder setAdminBanPlayerMessage(de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        adminBanPlayerMessage_ = value;
        
        bitField2_ |= 0x00001000;
        return this;
      }
      public Builder setAdminBanPlayerMessage(
          de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage.Builder builderForValue) {
        adminBanPlayerMessage_ = builderForValue.build();
        
        bitField2_ |= 0x00001000;
        return this;
      }
      public Builder mergeAdminBanPlayerMessage(de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage value) {
        if (((bitField2_ & 0x00001000) == 0x00001000) &&
            adminBanPlayerMessage_ != de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage.getDefaultInstance()) {
          adminBanPlayerMessage_ =
            de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage.newBuilder(adminBanPlayerMessage_).mergeFrom(value).buildPartial();
        } else {
          adminBanPlayerMessage_ = value;
        }
        
        bitField2_ |= 0x00001000;
        return this;
      }
      public Builder clearAdminBanPlayerMessage() {
        adminBanPlayerMessage_ = de.pokerth.protocol.ProtoBuf.AdminBanPlayerMessage.getDefaultInstance();
        
        bitField2_ = (bitField2_ & ~0x00001000);
        return this;
      }
      
      // optional .AdminBanPlayerAckMessage adminBanPlayerAckMessage = 78;
      private de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage adminBanPlayerAckMessage_ = de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.getDefaultInstance();
      public boolean hasAdminBanPlayerAckMessage() {
        return ((bitField2_ & 0x00002000) == 0x00002000);
      }
      public de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage getAdminBanPlayerAckMessage() {
        return adminBanPlayerAckMessage_;
      }
      public Builder setAdminBanPlayerAckMessage(de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        adminBanPlayerAckMessage_ = value;
        
        bitField2_ |= 0x00002000;
        return this;
      }
      public Builder setAdminBanPlayerAckMessage(
          de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.Builder builderForValue) {
        adminBanPlayerAckMessage_ = builderForValue.build();
        
        bitField2_ |= 0x00002000;
        return this;
      }
      public Builder mergeAdminBanPlayerAckMessage(de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage value) {
        if (((bitField2_ & 0x00002000) == 0x00002000) &&
            adminBanPlayerAckMessage_ != de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.getDefaultInstance()) {
          adminBanPlayerAckMessage_ =
            de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.newBuilder(adminBanPlayerAckMessage_).mergeFrom(value).buildPartial();
        } else {
          adminBanPlayerAckMessage_ = value;
        }
        
        bitField2_ |= 0x00002000;
        return this;
      }
      public Builder clearAdminBanPlayerAckMessage() {
        adminBanPlayerAckMessage_ = de.pokerth.protocol.ProtoBuf.AdminBanPlayerAckMessage.getDefaultInstance();
        
        bitField2_ = (bitField2_ & ~0x00002000);
        return this;
      }
      
      // optional .GameListSpectatorJoinedMessage gameListSpectatorJoinedMessage = 79;
      private de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage gameListSpectatorJoinedMessage_ = de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage.getDefaultInstance();
      public boolean hasGameListSpectatorJoinedMessage() {
        return ((bitField2_ & 0x00004000) == 0x00004000);
      }
      public de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage getGameListSpectatorJoinedMessage() {
        return gameListSpectatorJoinedMessage_;
      }
      public Builder setGameListSpectatorJoinedMessage(de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        gameListSpectatorJoinedMessage_ = value;
        
        bitField2_ |= 0x00004000;
        return this;
      }
      public Builder setGameListSpectatorJoinedMessage(
          de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage.Builder builderForValue) {
        gameListSpectatorJoinedMessage_ = builderForValue.build();
        
        bitField2_ |= 0x00004000;
        return this;
      }
      public Builder mergeGameListSpectatorJoinedMessage(de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage value) {
        if (((bitField2_ & 0x00004000) == 0x00004000) &&
            gameListSpectatorJoinedMessage_ != de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage.getDefaultInstance()) {
          gameListSpectatorJoinedMessage_ =
            de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage.newBuilder(gameListSpectatorJoinedMessage_).mergeFrom(value).buildPartial();
        } else {
          gameListSpectatorJoinedMessage_ = value;
        }
        
        bitField2_ |= 0x00004000;
        return this;
      }
      public Builder clearGameListSpectatorJoinedMessage() {
        gameListSpectatorJoinedMessage_ = de.pokerth.protocol.ProtoBuf.GameListSpectatorJoinedMessage.getDefaultInstance();
        
        bitField2_ = (bitField2_ & ~0x00004000);
        return this;
      }
      
      // optional .GameListSpectatorLeftMessage gameListSpectatorLeftMessage = 80;
      private de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage gameListSpectatorLeftMessage_ = de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage.getDefaultInstance();
      public boolean hasGameListSpectatorLeftMessage() {
        return ((bitField2_ & 0x00008000) == 0x00008000);
      }
      public de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage getGameListSpectatorLeftMessage() {
        return gameListSpectatorLeftMessage_;
      }
      public Builder setGameListSpectatorLeftMessage(de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        gameListSpectatorLeftMessage_ = value;
        
        bitField2_ |= 0x00008000;
        return this;
      }
      public Builder setGameListSpectatorLeftMessage(
          de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage.Builder builderForValue) {
        gameListSpectatorLeftMessage_ = builderForValue.build();
        
        bitField2_ |= 0x00008000;
        return this;
      }
      public Builder mergeGameListSpectatorLeftMessage(de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage value) {
        if (((bitField2_ & 0x00008000) == 0x00008000) &&
            gameListSpectatorLeftMessage_ != de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage.getDefaultInstance()) {
          gameListSpectatorLeftMessage_ =
            de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage.newBuilder(gameListSpectatorLeftMessage_).mergeFrom(value).buildPartial();
        } else {
          gameListSpectatorLeftMessage_ = value;
        }
        
        bitField2_ |= 0x00008000;
        return this;
      }
      public Builder clearGameListSpectatorLeftMessage() {
        gameListSpectatorLeftMessage_ = de.pokerth.protocol.ProtoBuf.GameListSpectatorLeftMessage.getDefaultInstance();
        
        bitField2_ = (bitField2_ & ~0x00008000);
        return this;
      }
      
      // optional .GameSpectatorJoinedMessage gameSpectatorJoinedMessage = 81;
      private de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage gameSpectatorJoinedMessage_ = de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage.getDefaultInstance();
      public boolean hasGameSpectatorJoinedMessage() {
        return ((bitField2_ & 0x00010000) == 0x00010000);
      }
      public de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage getGameSpectatorJoinedMessage() {
        return gameSpectatorJoinedMessage_;
      }
      public Builder setGameSpectatorJoinedMessage(de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        gameSpectatorJoinedMessage_ = value;
        
        bitField2_ |= 0x00010000;
        return this;
      }
      public Builder setGameSpectatorJoinedMessage(
          de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage.Builder builderForValue) {
        gameSpectatorJoinedMessage_ = builderForValue.build();
        
        bitField2_ |= 0x00010000;
        return this;
      }
      public Builder mergeGameSpectatorJoinedMessage(de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage value) {
        if (((bitField2_ & 0x00010000) == 0x00010000) &&
            gameSpectatorJoinedMessage_ != de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage.getDefaultInstance()) {
          gameSpectatorJoinedMessage_ =
            de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage.newBuilder(gameSpectatorJoinedMessage_).mergeFrom(value).buildPartial();
        } else {
          gameSpectatorJoinedMessage_ = value;
        }
        
        bitField2_ |= 0x00010000;
        return this;
      }
      public Builder clearGameSpectatorJoinedMessage() {
        gameSpectatorJoinedMessage_ = de.pokerth.protocol.ProtoBuf.GameSpectatorJoinedMessage.getDefaultInstance();
        
        bitField2_ = (bitField2_ & ~0x00010000);
        return this;
      }
      
      // optional .GameSpectatorLeftMessage gameSpectatorLeftMessage = 82;
      private de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage gameSpectatorLeftMessage_ = de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage.getDefaultInstance();
      public boolean hasGameSpectatorLeftMessage() {
        return ((bitField2_ & 0x00020000) == 0x00020000);
      }
      public de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage getGameSpectatorLeftMessage() {
        return gameSpectatorLeftMessage_;
      }
      public Builder setGameSpectatorLeftMessage(de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage value) {
        if (value == null) {
          throw new NullPointerException();
        }
        gameSpectatorLeftMessage_ = value;
        
        bitField2_ |= 0x00020000;
        return this;
      }
      public Builder setGameSpectatorLeftMessage(
          de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage.Builder builderForValue) {
        gameSpectatorLeftMessage_ = builderForValue.build();
        
        bitField2_ |= 0x00020000;
        return this;
      }
      public Builder mergeGameSpectatorLeftMessage(de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage value) {
        if (((bitField2_ & 0x00020000) == 0x00020000) &&
            gameSpectatorLeftMessage_ != de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage.getDefaultInstance()) {
          gameSpectatorLeftMessage_ =
            de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage.newBuilder(gameSpectatorLeftMessage_).mergeFrom(value).buildPartial();
        } else {
          gameSpectatorLeftMessage_ = value;
        }
        
        bitField2_ |= 0x00020000;
        return this;
      }
      public Builder clearGameSpectatorLeftMessage() {
        gameSpectatorLeftMessage_ = de.pokerth.protocol.ProtoBuf.GameSpectatorLeftMessage.getDefaultInstance();
        
        bitField2_ = (bitField2_ & ~0x00020000);
        return this;
      }
      
      // @@protoc_insertion_point(builder_scope:PokerTHMessage)
    }
    
    static {
      defaultInstance = new PokerTHMessage(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:PokerTHMessage)
  }
  
  
  static {
  }
  
  // @@protoc_insertion_point(outer_class_scope)
}
