context: // Generated by ProtoGen, Version=2.3.0.277, Culture=neutral, PublicKeyToken=17b3b1f090c3ea48.  DO NOT EDIT!
  #pragma warning disable 1591
  #region Designer generated code
  
  using pb = global::Google.ProtocolBuffers;
  using pbc = global::Google.ProtocolBuffers.Collections;
  using pbd = global::Google.ProtocolBuffers.Descriptors;
  using scg = global::System.Collections.Generic;
  namespace bnet.protocol.game_master {
    
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
    public static partial class GameMasterTypes {
    
      #region Extension registration
      public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {
      }
      #endregion
      #region Static variables
      internal static pbd::MessageDescriptor internal__static_bnet_protocol_game_master_Player__Descriptor;
      internal static pb::FieldAccess.FieldAccessorTable<global::bnet.protocol.game_master.Player, global::bnet.protocol.game_master.Player.Builder> internal__static_bnet_protocol_game_master_Player__FieldAccessorTable;
      internal static pbd::MessageDescriptor internal__static_bnet_protocol_game_master_ConnectInfo__Descriptor;
      internal static pb::FieldAccess.FieldAccessorTable<global::bnet.protocol.game_master.ConnectInfo, global::bnet.protocol.game_master.ConnectInfo.Builder> internal__static_bnet_protocol_game_master_ConnectInfo__FieldAccessorTable;
      internal static pbd::MessageDescriptor internal__static_bnet_protocol_game_master_GameStatsBucket__Descriptor;
      internal static pb::FieldAccess.FieldAccessorTable<global::bnet.protocol.game_master.GameStatsBucket, global::bnet.protocol.game_master.GameStatsBucket.Builder> internal__static_bnet_protocol_game_master_GameStatsBucket__FieldAccessorTable;
      internal static pbd::MessageDescriptor internal__static_bnet_protocol_game_master_GameFactoryDescription__Descriptor;
      internal static pb::FieldAccess.FieldAccessorTable<global::bnet.protocol.game_master.GameFactoryDescription, global::bnet.protocol.game_master.GameFactoryDescription.Builder> internal__static_bnet_protocol_game_master_GameFactoryDescription__FieldAccessorTable;
      internal static pbd::MessageDescriptor internal__static_bnet_protocol_game_master_GameHandle__Descriptor;
      internal static pb::FieldAccess.FieldAccessorTable<global::bnet.protocol.game_master.GameHandle, global::bnet.protocol.game_master.GameHandle.Builder> internal__static_bnet_protocol_game_master_GameHandle__FieldAccessorTable;
      #endregion
      #region Descriptor
      public static pbd::FileDescriptor Descriptor {
        get { return descriptor; }
      }
      private static pbd::FileDescriptor descriptor;
      
      static GameMasterTypes() {
        byte[] descriptorData = global::System.Convert.FromBase64String(
            "CitzZXJ2aWNlL2dhbWVfbWFzdGVyL2dhbWVfbWFzdGVyX3R5cGVzLnByb3Rv" + 
            "EhlibmV0LnByb3RvY29sLmdhbWVfbWFzdGVyGhxsaWIvcHJvdG9jb2wvYXR0" + 
            "cmlidXRlLnByb3RvGhlsaWIvcHJvdG9jb2wvZW50aXR5LnByb3RvIqkCCgZQ" + 
            "bGF5ZXISOgoEdHlwZRgBIAEoDjImLmJuZXQucHJvdG9jb2wuZ2FtZV9tYXN0" + 
            "ZXIuUGxheWVyLlR5cGU6BFRPT04SKAoHdG9vbl9pZBgCIAEoCzIXLmJuZXQu" + 
            "cHJvdG9jb2wuRW50aXR5SWQSMAoPZ2FtZV9hY2NvdW50X2lkGAMgASgLMhcu" + 
            "Ym5ldC5wcm90b2NvbC5FbnRpdHlJZBIwCg9ibmV0X2FjY291bnRfaWQYBCAB" + 
            "KAsyFy5ibmV0LnByb3RvY29sLkVudGl0eUlkEjUKCWF0dHJpYnV0ZRgFIAMo" + 
            "CzIiLmJuZXQucHJvdG9jb2wuYXR0cmlidXRlLkF0dHJpYnV0ZSIeCgRUeXBl" + 
            "EggKBFRPT04QABIMCghDT01QVVRFUhABIpkBCgtDb25uZWN0SW5mbxIoCgd0" + 
            "b29uX2lkGAEgAigLMhcuYm5ldC5wcm90b2NvbC5FbnRpdHlJZBIMCgRob3N0" + 
            "GAIgAigJEgwKBHBvcnQYAyACKAUSDQoFdG9rZW4YBCABKAwSNQoJYXR0cmli" + 
            "dXRlGAUgAygLMiIuYm5ldC5wcm90b2NvbC5hdHRyaWJ1dGUuQXR0cmlidXRl" + 
            "Iu8BCg9HYW1lU3RhdHNCdWNrZXQSFQoKYnVja2V0X21pbhgBIAEoAjoBMBIi" + 
            "CgpidWNrZXRfbWF4GAIgASgCOg40LjI5NDk2NzNlKzAwORIcChF3YWl0X21p" + 
            "bGxpc2Vjb25kcxgDIAEoDToBMBIZCg5nYW1lc19wZXJfaG91chgEIAEoDToB" + 
            "MBIXCgxhY3RpdmVfZ2FtZXMYBSABKA06ATASGQoOYWN0aXZlX3BsYXllcnMY" + 
            "BiABKA06ATASGAoNZm9ybWluZ19nYW1lcxgHIAEoDToBMBIaCg93YWl0aW5n" + 
            "X3BsYXllcnMYCCABKA06ATAiqwEKFkdhbWVGYWN0b3J5RGVzY3JpcHRpb24S" + 
            "CgoCaWQYASACKAYSDAoEbmFtZRgCIAEoCRI1CglhdHRyaWJ1dGUYAyADKAsy" + 
            "Ii5ibmV0LnByb3RvY29sLmF0dHJpYnV0ZS5BdHRyaWJ1dGUSQAoMc3RhdHNf" + 
            "YnVja2V0GAQgAygLMiouYm5ldC5wcm90b2NvbC5nYW1lX21hc3Rlci5HYW1l" + 
            "U3RhdHNCdWNrZXQiSgoKR2FtZUhhbmRsZRISCgpmYWN0b3J5X2lkGAEgAigG" + 
            "EigKB2dhbWVfaWQYAiACKAsyFy5ibmV0LnByb3RvY29sLkVudGl0eUlk");
        pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) {
          descriptor = root;
          internal__static_bnet_protocol_game_master_Player__Descriptor = Descriptor.MessageTypes[0];
          internal__static_bnet_protocol_game_master_Player__FieldAccessorTable = 
              new pb::FieldAccess.FieldAccessorTable<global::bnet.protocol.game_master.Player, global::bnet.protocol.game_master.Player.Builder>(internal__static_bnet_protocol_game_master_Player__Descriptor,
                  new string[] { "Type", "ToonId", "GameAccountId", "BnetAccountId", "Attribute", });
          internal__static_bnet_protocol_game_master_ConnectInfo__Descriptor = Descriptor.MessageTypes[1];
          internal__static_bnet_protocol_game_master_ConnectInfo__FieldAccessorTable = 
              new pb::FieldAccess.FieldAccessorTable<global::bnet.protocol.game_master.ConnectInfo, global::bnet.protocol.game_master.ConnectInfo.Builder>(internal__static_bnet_protocol_game_master_ConnectInfo__Descriptor,
                  new string[] { "ToonId", "Host", "Port", "Token", "Attribute", });
          internal__static_bnet_protocol_game_master_GameStatsBucket__Descriptor = Descriptor.MessageTypes[2];
          internal__static_bnet_protocol_game_master_GameStatsBucket__FieldAccessorTable = 
              new pb::FieldAccess.FieldAccessorTable<global::bnet.protocol.game_master.GameStatsBucket, global::bnet.protocol.game_master.GameStatsBucket.Builder>(internal__static_bnet_protocol_game_master_GameStatsBucket__Descriptor,
                  new string[] { "BucketMin", "BucketMax", "WaitMilliseconds", "GamesPerHour", "ActiveGames", "ActivePlayers", "FormingGames", "WaitingPlayers", });
          internal__static_bnet_protocol_game_master_GameFactoryDescription__Descriptor = Descriptor.MessageTypes[3];
          internal__static_bnet_protocol_game_master_GameFactoryDescription__FieldAccessorTable = 
              new pb::FieldAccess.FieldAccessorTable<global::bnet.protocol.game_master.GameFactoryDescription, global::bnet.protocol.game_master.GameFactoryDescription.Builder>(internal__static_bnet_protocol_game_master_GameFactoryDescription__Descriptor,
                  new string[] { "Id", "Name", "Attribute", "StatsBucket", });
          internal__static_bnet_protocol_game_master_GameHandle__Descriptor = Descriptor.MessageTypes[4];
          internal__static_bnet_protocol_game_master_GameHandle__FieldAccessorTable = 
              new pb::FieldAccess.FieldAccessorTable<global::bnet.protocol.game_master.GameHandle, global::bnet.protocol.game_master.GameHandle.Builder>(internal__static_bnet_protocol_game_master_GameHandle__Descriptor,
                  new string[] { "FactoryId", "GameId", });
          return null;
        };
        pbd::FileDescriptor.InternalBuildGeneratedFileFrom(descriptorData,
            new pbd::FileDescriptor[] {
            global::bnet.protocol.attribute.Proto.Attribute.Descriptor, 
            global::bnet.protocol.Entity.Descriptor, 
            }, assigner);
      }
      #endregion
      
    }
    #region Messages
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
    public sealed partial class Player : pb::GeneratedMessage<Player, Player.Builder> {
      private static readonly Player defaultInstance = new Builder().BuildPartial();
      private static readonly string[] _playerFieldNames = new string[] { "attribute", "bnet_account_id", "game_account_id", "toon_id", "type" };
      private static readonly uint[] _playerFieldTags = new uint[] { 42, 34, 26, 18, 8 };
      public static Player DefaultInstance {
        get { return defaultInstance; }
      }
      
      public override Player DefaultInstanceForType {
        get { return defaultInstance; }
      }
      
      protected override Player ThisMessage {
        get { return this; }
      }
      
      public static pbd::MessageDescriptor Descriptor {
        get { return global::bnet.protocol.game_master.GameMasterTypes.internal__static_bnet_protocol_game_master_Player__Descriptor; }
      }
      
      protected override pb::FieldAccess.FieldAccessorTable<Player, Player.Builder> InternalFieldAccessors {
        get { return global::bnet.protocol.game_master.GameMasterTypes.internal__static_bnet_protocol_game_master_Player__FieldAccessorTable; }
      }
      
      #region Nested types
      [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
      [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
      public static class Types {
        [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
        public enum Type {
          TOON = 0,
          COMPUTER = 1,
        }
        
      }
      #endregion
      
      public const int TypeFieldNumber = 1;
      private bool hasType;
      private global::bnet.protocol.game_master.Player.Types.Type type_ = global::bnet.protocol.game_master.Player.Types.Type.TOON;
      public bool HasType {
        get { return hasType; }
      }
      public global::bnet.protocol.game_master.Player.Types.Type Type {
        get { return type_; }
      }
      
      public const int ToonIdFieldNumber = 2;
      private bool hasToonId;
      private global::bnet.protocol.EntityId toonId_ = global::bnet.protocol.EntityId.DefaultInstance;
      public bool HasToonId {
        get { return hasToonId; }
      }
      public global::bnet.protocol.EntityId ToonId {
        get { return toonId_; }
      }
      
      public const int GameAccountIdFieldNumber = 3;
      private bool hasGameAccountId;
      private global::bnet.protocol.EntityId gameAccountId_ = global::bnet.protocol.EntityId.DefaultInstance;
      public bool HasGameAccountId {
        get { return hasGameAccountId; }
      }
      public global::bnet.protocol.EntityId GameAccountId {
        get { return gameAccountId_; }
      }
      
      public const int BnetAccountIdFieldNumber = 4;
      private bool hasBnetAccountId;
      private global::bnet.protocol.EntityId bnetAccountId_ = global::bnet.protocol.EntityId.DefaultInstance;
      public bool HasBnetAccountId {
        get { return hasBnetAccountId; }
      }
      public global::bnet.protocol.EntityId BnetAccountId {
        get { return bnetAccountId_; }
      }
      
      public const int AttributeFieldNumber = 5;
      private pbc::PopsicleList<global::bnet.protocol.attribute.Attribute> attribute_ = new pbc::PopsicleList<global::bnet.protocol.attribute.Attribute>();
      public scg::IList<global::bnet.protocol.attribute.Attribute> AttributeList {
        get { return attribute_; }
      }
      public int AttributeCount {
        get { return attribute_.Count; }
      }
      public global::bnet.protocol.attribute.Attribute GetAttribute(int index) {
        return attribute_[index];
      }
      
      public override bool IsInitialized {
        get {
          if (HasToonId) {
            if (!ToonId.IsInitialized) return false;
          }
          if (HasGameAccountId) {
            if (!GameAccountId.IsInitialized) return false;
          }
          if (HasBnetAccountId) {
            if (!BnetAccountId.IsInitialized) return false;
          }
          foreach (global::bnet.protocol.attribute.Attribute element in AttributeList) {
            if (!element.IsInitialized) return false;
          }
          return true;
        }
      }
      
      public override void WriteTo(pb::ICodedOutputStream output) {
        int size = SerializedSize;
        string[] field_names = _playerFieldNames;
        if (hasType) {
          output.WriteEnum(1, field_names[4], (int) Type, Type);
        }
        if (hasToonId) {
          output.WriteMessage(2, field_names[3], ToonId);
        }
        if (hasGameAccountId) {
          output.WriteMessage(3, field_names[2], GameAccountId);
        }
        if (hasBnetAccountId) {
          output.WriteMessage(4, field_names[1], BnetAccountId);
        }
        if (attribute_.Count > 0) {
          output.WriteMessageArray(5, field_names[0], attribute_);
        }
        UnknownFields.WriteTo(output);
      }
      
      private int memoizedSerializedSize = -1;
      public override int SerializedSize {
        get {
          int size = memoizedSerializedSize;
          if (size != -1) return size;
          
          size = 0;
          if (hasType) {
            size += pb::CodedOutputStream.ComputeEnumSize(1, (int) Type);
          }
          if (hasToonId) {
            size += pb::CodedOutputStream.ComputeMessageSize(2, ToonId);
          }
          if (hasGameAccountId) {
            size += pb::CodedOutputStream.ComputeMessageSize(3, GameAccountId);
          }
          if (hasBnetAccountId) {
            size += pb::CodedOutputStream.ComputeMessageSize(4, BnetAccountId);
          }
          foreach (global::bnet.protocol.attribute.Attribute element in AttributeList) {
            size += pb::CodedOutputStream.ComputeMessageSize(5, element);
          }
          size += UnknownFields.SerializedSize;
          memoizedSerializedSize = size;
          return size;
        }
      }
      
      public static Player ParseFrom(pb::ByteString data) {
        return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
      }
      public static Player ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
        return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
      }
      public static Player ParseFrom(byte[] data) {
        return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
      }
      public static Player ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
        return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
      }
      public static Player ParseFrom(global::System.IO.Stream input) {
        return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
      }
      public static Player ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
        return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
      }
      public static Player ParseDelimitedFrom(global::System.IO.Stream input) {
        return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
      }
      public static Player ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
        return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
      }
      public static Player ParseFrom(pb::ICodedInputStream input) {
        return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
      }
      public static Player ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
        return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
      }
      public static Builder CreateBuilder() { return new Builder(); }
      public override Builder ToBuilder() { return CreateBuilder(this); }
      public override Builder CreateBuilderForType() { return new Builder(); }
      public static Builder CreateBuilder(Player prototype) {
        return (Builder) new Builder().MergeFrom(prototype);
      }
      
      [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
      [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
      [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
      public sealed partial class Builder : pb::GeneratedBuilder<Player, Builder> {
        protected override Builder ThisBuilder {
          get { return this; }
        }
        public Builder() {}
        
        Player result = new Player();
        
        protected override Player MessageBeingBuilt {
          get { return result; }
        }
        
        public override Builder Clear() {
          result = new Player();
          return this;
        }
        
        public override Builder Clone() {
          return new Builder().MergeFrom(result);
        }
        
        public override pbd::MessageDescriptor DescriptorForType {
          get { return global::bnet.protocol.game_master.Player.Descriptor; }
        }
        
        public override Player DefaultInstanceForType {
          get { return global::bnet.protocol.game_master.Player.DefaultInstance; }
        }
        
        public override Player BuildPartial() {
          if (result == null) {
            throw new global::System.InvalidOperationException("build() has already been called on this Builder");
          }
          result.attribute_.MakeReadOnly();
          Player returnMe = result;
          result = null;
          return returnMe;
        }
        
        public override Builder MergeFrom(pb::IMessage other) {
          if (other is Player) {
            return MergeFrom((Player) other);
          } else {
            base.MergeFrom(other);
            return this;
          }
        }
        
        public override Builder MergeFrom(Player other) {
          if (other == global::bnet.protocol.game_master.Player.DefaultInstance) return this;
          if (other.HasType) {
            Type = other.Type;
          }
          if (other.HasToonId) {
            MergeToonId(other.ToonId);
          }
          if (other.HasGameAccountId) {
            MergeGameAccountId(other.GameAccountId);
          }
          if (other.HasBnetAccountId) {
            MergeBnetAccountId(other.BnetAccountId);
          }
          if (other.attribute_.Count != 0) {
            base.AddRange(other.attribute_, result.attribute_);
          }
          this.MergeUnknownFields(other.UnknownFields);
          return this;
        }
        
        public override Builder MergeFrom(pb::ICodedInputStream input) {
          return MergeFrom(input, pb::ExtensionRegistry.Empty);
        }
        
        public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
          pb::UnknownFieldSet.Builder unknownFields = null;
          uint tag;
          string field_name;
          while (input.ReadTag(out tag, out field_name)) {
            if(tag == 0 && field_name != null) {
              int field_ordinal = global::System.Array.BinarySearch(_playerFieldNames, field_name, global::System.StringComparer.Ordinal);
              if(field_ordinal >= 0)
                tag = _playerFieldTags[field_ordinal];
              else {
                if (unknownFields == null) {
                  unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
                }
                ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
                continue;
              }
            }
            switch (tag) {
              case 0: {
                throw pb::InvalidProtocolBufferException.InvalidTag();
              }
              default: {
                if (pb::WireFormat.IsEndGroupTag(tag)) {
                  if (unknownFields != null) {
                    this.UnknownFields = unknownFields.Build();
                  }
                  return this;
                }
                if (unknownFields == null) {
                  unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
                }
                ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
                break;
              }
              case 8: {
                object unknown;
                if(input.ReadEnum(ref result.type_, out unknown)) {
                  result.hasType = true;
                } else if(unknown is int) {
                  if (unknownFields == null) {
                    unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
                  }
                  unknownFields.MergeVarintField(1, (ulong)(int)unknown);
                }
                break;
              }
              case 18: {
                global::bnet.protocol.EntityId.Builder subBuilder = global::bnet.protocol.EntityId.CreateBuilder();
                if (result.hasToonId) {
                  subBuilder.MergeFrom(ToonId);
                }
                input.ReadMessage(subBuilder, extensionRegistry);
                ToonId = subBuilder.BuildPartial();
                break;
              }
              case 26: {
                global::bnet.protocol.EntityId.Builder subBuilder = global::bnet.protocol.EntityId.CreateBuilder();
                if (result.hasGameAccountId) {
                  subBuilder.MergeFrom(GameAccountId);
                }
                input.ReadMessage(subBuilder, extensionRegistry);
                GameAccountId = subBuilder.BuildPartial();
                break;
              }
              case 34: {
                global::bnet.protocol.EntityId.Builder subBuilder = global::bnet.protocol.EntityId.CreateBuilder();
                if (result.hasBnetAccountId) {
                  subBuilder.MergeFrom(BnetAccountId);
                }
                input.ReadMessage(subBuilder, extensionRegistry);
                BnetAccountId = subBuilder.BuildPartial();
                break;
              }
              case 42: {
                input.ReadMessageArray(tag, field_name, result.attribute_, global::bnet.protocol.attribute.Attribute.DefaultInstance, extensionRegistry);
                break;
              }
            }
          }
          
          if (unknownFields != null) {
            this.UnknownFields = unknownFields.Build();
          }
          return this;
        }
        
        
        public bool HasType {
         get { return result.hasType; }
        }
        public global::bnet.protocol.game_master.Player.Types.Type Type {
          get { return result.Type; }
          set { SetType(value); }
        }
        public Builder SetType(global::bnet.protocol.game_master.Player.Types.Type value) {
          result.hasType = true;
          result.type_ = value;
          return this;
        }
        public Builder ClearType() {
          result.hasType = false;
          result.type_ = global::bnet.protocol.game_master.Player.Types.Type.TOON;
          return this;
        }
        
        public bool HasToonId {
         get { return result.hasToonId; }
        }
        public global::bnet.protocol.EntityId ToonId {
          get { return result.ToonId; }
          set { SetToonId(value); }
        }
        public Builder SetToonId(global::bnet.protocol.EntityId value) {
          pb::ThrowHelper.ThrowIfNull(value, "value");
          result.hasToonId = true;
          result.toonId_ = value;
          return this;
        }
        public Builder SetToonId(global::bnet.protocol.EntityId.Builder builderForValue) {
          pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
          result.hasToonId = true;
          result.toonId_ = builderForValue.Build();
          return this;
        }
        public Builder MergeToonId(global::bnet.protocol.EntityId value) {
          pb::ThrowHelper.ThrowIfNull(value, "value");
          if (result.hasToonId &&
              result.toonId_ != global::bnet.protocol.EntityId.DefaultInstance) {
              result.toonId_ = global::bnet.protocol.EntityId.CreateBuilder(result.toonId_).MergeFrom(value).BuildPartial();
          } else {
            result.toonId_ = value;
          }
          result.hasToonId = true;
          return this;
        }
        public Builder ClearToonId() {
          result.hasToonId = false;
          result.toonId_ = global::bnet.protocol.EntityId.DefaultInstance;
          return this;
        }
        
        public bool HasGameAccountId {
         get { return result.hasGameAccountId; }
        }
        public global::bnet.protocol.EntityId GameAccountId {
          get { return result.GameAccountId; }
          set { SetGameAccountId(value); }
        }
        public Builder SetGameAccountId(global::bnet.protocol.EntityId value) {
          pb::ThrowHelper.ThrowIfNull(value, "value");
          result.hasGameAccountId = true;
          result.gameAccountId_ = value;
          return this;
        }
        public Builder SetGameAccountId(global::bnet.protocol.EntityId.Builder builderForValue) {
          pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
          result.hasGameAccountId = true;
          result.gameAccountId_ = builderForValue.Build();
          return this;
        }
        public Builder MergeGameAccountId(global::bnet.protocol.EntityId value) {
          pb::ThrowHelper.ThrowIfNull(value, "value");
          if (result.hasGameAccountId &&
              result.gameAccountId_ != global::bnet.protocol.EntityId.DefaultInstance) {
              result.gameAccountId_ = global::bnet.protocol.EntityId.CreateBuilder(result.gameAccountId_).MergeFrom(value).BuildPartial();
          } else {
            result.gameAccountId_ = value;
          }
          result.hasGameAccountId = true;
          return this;
        }
        public Builder ClearGameAccountId() {
          result.hasGameAccountId = false;
          result.gameAccountId_ = global::bnet.protocol.EntityId.DefaultInstance;
          return this;
        }
        
        public bool HasBnetAccountId {
         get { return result.hasBnetAccountId; }
        }
        public global::bnet.protocol.EntityId BnetAccountId {
          get { return result.BnetAccountId; }
          set { SetBnetAccountId(value); }
        }
        public Builder SetBnetAccountId(global::bnet.protocol.EntityId value) {
          pb::ThrowHelper.ThrowIfNull(value, "value");
          result.hasBnetAccountId = true;
          result.bnetAccountId_ = value;
          return this;
        }
        public Builder SetBnetAccountId(global::bnet.protocol.EntityId.Builder builderForValue) {
          pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
          result.hasBnetAccountId = true;
          result.bnetAccountId_ = builderForValue.Build();
          return this;
        }
        public Builder MergeBnetAccountId(global::bnet.protocol.EntityId value) {
          pb::ThrowHelper.ThrowIfNull(value, "value");
          if (result.hasBnetAccountId &&
              result.bnetAccountId_ != global::bnet.protocol.EntityId.DefaultInstance) {
              result.bnetAccountId_ = global::bnet.protocol.EntityId.CreateBuilder(result.bnetAccountId_).MergeFrom(value).BuildPartial();
          } else {
            result.bnetAccountId_ = value;
          }
          result.hasBnetAccountId = true;
          return this;
        }
        public Builder ClearBnetAccountId() {
          result.hasBnetAccountId = false;
          result.bnetAccountId_ = global::bnet.protocol.EntityId.DefaultInstance;
          return this;
        }
        
        public pbc::IPopsicleList<global::bnet.protocol.attribute.Attribute> AttributeList {
  
gt:         get { return result.attribute_; }