// source: proto/messages.proto
/**
 * @fileoverview
 * @enhanceable
 * @suppress {messageConventions} JS Compiler reports an error if a variable or
 *     field starts with 'MSG_' and isn't a translatable message.
 * @public
 */
// GENERATED CODE -- DO NOT EDIT!

var jspb = require('google-protobuf');
var goog = jspb;
var proto = {};

var google_protobuf_wrappers_pb = require('google-protobuf/google/protobuf/wrappers_pb.js');
goog.object.extend(proto, google_protobuf_wrappers_pb);
goog.exportSymbol(
  'game_protobuf_messages.proto.messages.AckCommand',
  null,
  proto
);
goog.exportSymbol('game_protobuf_messages.proto.messages.AppInfo', null, proto);
goog.exportSymbol(
  'game_protobuf_messages.proto.messages.AppStatistic',
  null,
  proto
);
goog.exportSymbol('game_protobuf_messages.proto.messages.Body', null, proto);
goog.exportSymbol(
  'game_protobuf_messages.proto.messages.Body.BodyCase',
  null,
  proto
);
goog.exportSymbol('game_protobuf_messages.proto.messages.Command', null, proto);
goog.exportSymbol(
  'game_protobuf_messages.proto.messages.CommandType',
  null,
  proto
);
goog.exportSymbol(
  'game_protobuf_messages.proto.messages.CreateRoomRequest',
  null,
  proto
);
goog.exportSymbol(
  'game_protobuf_messages.proto.messages.CreateRoomResponse',
  null,
  proto
);
goog.exportSymbol(
  'game_protobuf_messages.proto.messages.DirectCommand',
  null,
  proto
);
goog.exportSymbol(
  'game_protobuf_messages.proto.messages.ErrorCommand',
  null,
  proto
);
goog.exportSymbol(
  'game_protobuf_messages.proto.messages.ErrorInfo',
  null,
  proto
);
goog.exportSymbol(
  'game_protobuf_messages.proto.messages.EventsCommand',
  null,
  proto
);
goog.exportSymbol(
  'game_protobuf_messages.proto.messages.EventsRequest',
  null,
  proto
);
goog.exportSymbol(
  'game_protobuf_messages.proto.messages.IntValue',
  null,
  proto
);
goog.exportSymbol(
  'game_protobuf_messages.proto.messages.InterestGroups',
  null,
  proto
);
goog.exportSymbol(
  'game_protobuf_messages.proto.messages.JoinLobbyRequest',
  null,
  proto
);
goog.exportSymbol(
  'game_protobuf_messages.proto.messages.JoinRoomNotification',
  null,
  proto
);
goog.exportSymbol(
  'game_protobuf_messages.proto.messages.JoinRoomRequest',
  null,
  proto
);
goog.exportSymbol(
  'game_protobuf_messages.proto.messages.JoinRoomResponse',
  null,
  proto
);
goog.exportSymbol(
  'game_protobuf_messages.proto.messages.KickMemberRequest',
  null,
  proto
);
goog.exportSymbol(
  'game_protobuf_messages.proto.messages.KickMemberResponse',
  null,
  proto
);
goog.exportSymbol(
  'game_protobuf_messages.proto.messages.LeftRoomNotification',
  null,
  proto
);
goog.exportSymbol('game_protobuf_messages.proto.messages.OpType', null, proto);
goog.exportSymbol(
  'game_protobuf_messages.proto.messages.RequestMessage',
  null,
  proto
);
goog.exportSymbol(
  'game_protobuf_messages.proto.messages.RequestMessage.RequestCase',
  null,
  proto
);
goog.exportSymbol(
  'game_protobuf_messages.proto.messages.ResponseMessage',
  null,
  proto
);
goog.exportSymbol(
  'game_protobuf_messages.proto.messages.ResponseMessage.ResponseCase',
  null,
  proto
);
goog.exportSymbol(
  'game_protobuf_messages.proto.messages.RoomListCommand',
  null,
  proto
);
goog.exportSymbol(
  'game_protobuf_messages.proto.messages.RoomMember',
  null,
  proto
);
goog.exportSymbol(
  'game_protobuf_messages.proto.messages.RoomNotification',
  null,
  proto
);
goog.exportSymbol(
  'game_protobuf_messages.proto.messages.RoomNotification.NotificationCase',
  null,
  proto
);
goog.exportSymbol(
  'game_protobuf_messages.proto.messages.RoomOptions',
  null,
  proto
);
goog.exportSymbol(
  'game_protobuf_messages.proto.messages.RoomSystemProperty',
  null,
  proto
);
goog.exportSymbol(
  'game_protobuf_messages.proto.messages.SessionOpenRequest',
  null,
  proto
);
goog.exportSymbol(
  'game_protobuf_messages.proto.messages.StatisticCommand',
  null,
  proto
);
goog.exportSymbol(
  'game_protobuf_messages.proto.messages.UpdateMasterClientNotification',
  null,
  proto
);
goog.exportSymbol(
  'game_protobuf_messages.proto.messages.UpdateMasterClientRequest',
  null,
  proto
);
goog.exportSymbol(
  'game_protobuf_messages.proto.messages.UpdateMasterClientResponse',
  null,
  proto
);
goog.exportSymbol(
  'game_protobuf_messages.proto.messages.UpdatePropertyNotification',
  null,
  proto
);
goog.exportSymbol(
  'game_protobuf_messages.proto.messages.UpdatePropertyRequest',
  null,
  proto
);
goog.exportSymbol(
  'game_protobuf_messages.proto.messages.UpdatePropertyResponse',
  null,
  proto
);
goog.exportSymbol(
  'game_protobuf_messages.proto.messages.UpdateSysPropertyNotification',
  null,
  proto
);
goog.exportSymbol(
  'game_protobuf_messages.proto.messages.UpdateSysPropertyRequest',
  null,
  proto
);
goog.exportSymbol(
  'game_protobuf_messages.proto.messages.UpdateSysPropertyResponse',
  null,
  proto
);
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.game_protobuf_messages.proto.messages.IntValue = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(
  proto.game_protobuf_messages.proto.messages.IntValue,
  jspb.Message
);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.game_protobuf_messages.proto.messages.IntValue.displayName =
    'proto.game_protobuf_messages.proto.messages.IntValue';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.game_protobuf_messages.proto.messages.RoomSystemProperty = function(
  opt_data
) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(
  proto.game_protobuf_messages.proto.messages.RoomSystemProperty,
  jspb.Message
);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.game_protobuf_messages.proto.messages.RoomSystemProperty.displayName =
    'proto.game_protobuf_messages.proto.messages.RoomSystemProperty';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.game_protobuf_messages.proto.messages.RoomMember = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(
  proto.game_protobuf_messages.proto.messages.RoomMember,
  jspb.Message
);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.game_protobuf_messages.proto.messages.RoomMember.displayName =
    'proto.game_protobuf_messages.proto.messages.RoomMember';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.game_protobuf_messages.proto.messages.AppInfo = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(
  proto.game_protobuf_messages.proto.messages.AppInfo,
  jspb.Message
);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.game_protobuf_messages.proto.messages.AppInfo.displayName =
    'proto.game_protobuf_messages.proto.messages.AppInfo';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.game_protobuf_messages.proto.messages.ErrorInfo = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(
  proto.game_protobuf_messages.proto.messages.ErrorInfo,
  jspb.Message
);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.game_protobuf_messages.proto.messages.ErrorInfo.displayName =
    'proto.game_protobuf_messages.proto.messages.ErrorInfo';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.game_protobuf_messages.proto.messages.RoomOptions = function(opt_data) {
  jspb.Message.initialize(
    this,
    opt_data,
    0,
    -1,
    proto.game_protobuf_messages.proto.messages.RoomOptions.repeatedFields_,
    null
  );
};
goog.inherits(
  proto.game_protobuf_messages.proto.messages.RoomOptions,
  jspb.Message
);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.game_protobuf_messages.proto.messages.RoomOptions.displayName =
    'proto.game_protobuf_messages.proto.messages.RoomOptions';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.game_protobuf_messages.proto.messages.SessionOpenRequest = function(
  opt_data
) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(
  proto.game_protobuf_messages.proto.messages.SessionOpenRequest,
  jspb.Message
);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.game_protobuf_messages.proto.messages.SessionOpenRequest.displayName =
    'proto.game_protobuf_messages.proto.messages.SessionOpenRequest';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.game_protobuf_messages.proto.messages.CreateRoomRequest = function(
  opt_data
) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(
  proto.game_protobuf_messages.proto.messages.CreateRoomRequest,
  jspb.Message
);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.game_protobuf_messages.proto.messages.CreateRoomRequest.displayName =
    'proto.game_protobuf_messages.proto.messages.CreateRoomRequest';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.game_protobuf_messages.proto.messages.CreateRoomResponse = function(
  opt_data
) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(
  proto.game_protobuf_messages.proto.messages.CreateRoomResponse,
  jspb.Message
);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.game_protobuf_messages.proto.messages.CreateRoomResponse.displayName =
    'proto.game_protobuf_messages.proto.messages.CreateRoomResponse';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.game_protobuf_messages.proto.messages.JoinRoomRequest = function(
  opt_data
) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(
  proto.game_protobuf_messages.proto.messages.JoinRoomRequest,
  jspb.Message
);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.game_protobuf_messages.proto.messages.JoinRoomRequest.displayName =
    'proto.game_protobuf_messages.proto.messages.JoinRoomRequest';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.game_protobuf_messages.proto.messages.JoinRoomResponse = function(
  opt_data
) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(
  proto.game_protobuf_messages.proto.messages.JoinRoomResponse,
  jspb.Message
);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.game_protobuf_messages.proto.messages.JoinRoomResponse.displayName =
    'proto.game_protobuf_messages.proto.messages.JoinRoomResponse';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.game_protobuf_messages.proto.messages.JoinRoomNotification = function(
  opt_data
) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(
  proto.game_protobuf_messages.proto.messages.JoinRoomNotification,
  jspb.Message
);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.game_protobuf_messages.proto.messages.JoinRoomNotification.displayName =
    'proto.game_protobuf_messages.proto.messages.JoinRoomNotification';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.game_protobuf_messages.proto.messages.LeftRoomNotification = function(
  opt_data
) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(
  proto.game_protobuf_messages.proto.messages.LeftRoomNotification,
  jspb.Message
);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.game_protobuf_messages.proto.messages.LeftRoomNotification.displayName =
    'proto.game_protobuf_messages.proto.messages.LeftRoomNotification';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.game_protobuf_messages.proto.messages.KickMemberRequest = function(
  opt_data
) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(
  proto.game_protobuf_messages.proto.messages.KickMemberRequest,
  jspb.Message
);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.game_protobuf_messages.proto.messages.KickMemberRequest.displayName =
    'proto.game_protobuf_messages.proto.messages.KickMemberRequest';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.game_protobuf_messages.proto.messages.KickMemberResponse = function(
  opt_data
) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(
  proto.game_protobuf_messages.proto.messages.KickMemberResponse,
  jspb.Message
);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.game_protobuf_messages.proto.messages.KickMemberResponse.displayName =
    'proto.game_protobuf_messages.proto.messages.KickMemberResponse';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.game_protobuf_messages.proto.messages.UpdatePropertyRequest = function(
  opt_data
) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(
  proto.game_protobuf_messages.proto.messages.UpdatePropertyRequest,
  jspb.Message
);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.game_protobuf_messages.proto.messages.UpdatePropertyRequest.displayName =
    'proto.game_protobuf_messages.proto.messages.UpdatePropertyRequest';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.game_protobuf_messages.proto.messages.UpdatePropertyResponse = function(
  opt_data
) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(
  proto.game_protobuf_messages.proto.messages.UpdatePropertyResponse,
  jspb.Message
);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.game_protobuf_messages.proto.messages.UpdatePropertyResponse.displayName =
    'proto.game_protobuf_messages.proto.messages.UpdatePropertyResponse';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.game_protobuf_messages.proto.messages.UpdatePropertyNotification = function(
  opt_data
) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(
  proto.game_protobuf_messages.proto.messages.UpdatePropertyNotification,
  jspb.Message
);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.game_protobuf_messages.proto.messages.UpdatePropertyNotification.displayName =
    'proto.game_protobuf_messages.proto.messages.UpdatePropertyNotification';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.game_protobuf_messages.proto.messages.UpdateSysPropertyRequest = function(
  opt_data
) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(
  proto.game_protobuf_messages.proto.messages.UpdateSysPropertyRequest,
  jspb.Message
);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.game_protobuf_messages.proto.messages.UpdateSysPropertyRequest.displayName =
    'proto.game_protobuf_messages.proto.messages.UpdateSysPropertyRequest';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.game_protobuf_messages.proto.messages.UpdateSysPropertyResponse = function(
  opt_data
) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(
  proto.game_protobuf_messages.proto.messages.UpdateSysPropertyResponse,
  jspb.Message
);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.game_protobuf_messages.proto.messages.UpdateSysPropertyResponse.displayName =
    'proto.game_protobuf_messages.proto.messages.UpdateSysPropertyResponse';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.game_protobuf_messages.proto.messages.UpdateSysPropertyNotification = function(
  opt_data
) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(
  proto.game_protobuf_messages.proto.messages.UpdateSysPropertyNotification,
  jspb.Message
);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.game_protobuf_messages.proto.messages.UpdateSysPropertyNotification.displayName =
    'proto.game_protobuf_messages.proto.messages.UpdateSysPropertyNotification';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.game_protobuf_messages.proto.messages.UpdateMasterClientRequest = function(
  opt_data
) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(
  proto.game_protobuf_messages.proto.messages.UpdateMasterClientRequest,
  jspb.Message
);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.game_protobuf_messages.proto.messages.UpdateMasterClientRequest.displayName =
    'proto.game_protobuf_messages.proto.messages.UpdateMasterClientRequest';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.game_protobuf_messages.proto.messages.UpdateMasterClientResponse = function(
  opt_data
) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(
  proto.game_protobuf_messages.proto.messages.UpdateMasterClientResponse,
  jspb.Message
);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.game_protobuf_messages.proto.messages.UpdateMasterClientResponse.displayName =
    'proto.game_protobuf_messages.proto.messages.UpdateMasterClientResponse';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.game_protobuf_messages.proto.messages.UpdateMasterClientNotification = function(
  opt_data
) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(
  proto.game_protobuf_messages.proto.messages.UpdateMasterClientNotification,
  jspb.Message
);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.game_protobuf_messages.proto.messages.UpdateMasterClientNotification.displayName =
    'proto.game_protobuf_messages.proto.messages.UpdateMasterClientNotification';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.game_protobuf_messages.proto.messages.RoomNotification = function(
  opt_data
) {
  jspb.Message.initialize(
    this,
    opt_data,
    0,
    -1,
    null,
    proto.game_protobuf_messages.proto.messages.RoomNotification.oneofGroups_
  );
};
goog.inherits(
  proto.game_protobuf_messages.proto.messages.RoomNotification,
  jspb.Message
);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.game_protobuf_messages.proto.messages.RoomNotification.displayName =
    'proto.game_protobuf_messages.proto.messages.RoomNotification';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.game_protobuf_messages.proto.messages.DirectCommand = function(opt_data) {
  jspb.Message.initialize(
    this,
    opt_data,
    0,
    -1,
    proto.game_protobuf_messages.proto.messages.DirectCommand.repeatedFields_,
    null
  );
};
goog.inherits(
  proto.game_protobuf_messages.proto.messages.DirectCommand,
  jspb.Message
);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.game_protobuf_messages.proto.messages.DirectCommand.displayName =
    'proto.game_protobuf_messages.proto.messages.DirectCommand';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.game_protobuf_messages.proto.messages.AckCommand = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(
  proto.game_protobuf_messages.proto.messages.AckCommand,
  jspb.Message
);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.game_protobuf_messages.proto.messages.AckCommand.displayName =
    'proto.game_protobuf_messages.proto.messages.AckCommand';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.game_protobuf_messages.proto.messages.EventsRequest = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(
  proto.game_protobuf_messages.proto.messages.EventsRequest,
  jspb.Message
);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.game_protobuf_messages.proto.messages.EventsRequest.displayName =
    'proto.game_protobuf_messages.proto.messages.EventsRequest';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.game_protobuf_messages.proto.messages.EventsCommand = function(opt_data) {
  jspb.Message.initialize(
    this,
    opt_data,
    0,
    -1,
    proto.game_protobuf_messages.proto.messages.EventsCommand.repeatedFields_,
    null
  );
};
goog.inherits(
  proto.game_protobuf_messages.proto.messages.EventsCommand,
  jspb.Message
);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.game_protobuf_messages.proto.messages.EventsCommand.displayName =
    'proto.game_protobuf_messages.proto.messages.EventsCommand';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.game_protobuf_messages.proto.messages.InterestGroups = function(
  opt_data
) {
  jspb.Message.initialize(
    this,
    opt_data,
    0,
    -1,
    proto.game_protobuf_messages.proto.messages.InterestGroups.repeatedFields_,
    null
  );
};
goog.inherits(
  proto.game_protobuf_messages.proto.messages.InterestGroups,
  jspb.Message
);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.game_protobuf_messages.proto.messages.InterestGroups.displayName =
    'proto.game_protobuf_messages.proto.messages.InterestGroups';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.game_protobuf_messages.proto.messages.JoinLobbyRequest = function(
  opt_data
) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(
  proto.game_protobuf_messages.proto.messages.JoinLobbyRequest,
  jspb.Message
);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.game_protobuf_messages.proto.messages.JoinLobbyRequest.displayName =
    'proto.game_protobuf_messages.proto.messages.JoinLobbyRequest';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.game_protobuf_messages.proto.messages.RoomListCommand = function(
  opt_data
) {
  jspb.Message.initialize(
    this,
    opt_data,
    0,
    -1,
    proto.game_protobuf_messages.proto.messages.RoomListCommand.repeatedFields_,
    null
  );
};
goog.inherits(
  proto.game_protobuf_messages.proto.messages.RoomListCommand,
  jspb.Message
);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.game_protobuf_messages.proto.messages.RoomListCommand.displayName =
    'proto.game_protobuf_messages.proto.messages.RoomListCommand';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.game_protobuf_messages.proto.messages.AppStatistic = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(
  proto.game_protobuf_messages.proto.messages.AppStatistic,
  jspb.Message
);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.game_protobuf_messages.proto.messages.AppStatistic.displayName =
    'proto.game_protobuf_messages.proto.messages.AppStatistic';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.game_protobuf_messages.proto.messages.StatisticCommand = function(
  opt_data
) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(
  proto.game_protobuf_messages.proto.messages.StatisticCommand,
  jspb.Message
);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.game_protobuf_messages.proto.messages.StatisticCommand.displayName =
    'proto.game_protobuf_messages.proto.messages.StatisticCommand';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.game_protobuf_messages.proto.messages.ErrorCommand = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(
  proto.game_protobuf_messages.proto.messages.ErrorCommand,
  jspb.Message
);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.game_protobuf_messages.proto.messages.ErrorCommand.displayName =
    'proto.game_protobuf_messages.proto.messages.ErrorCommand';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.game_protobuf_messages.proto.messages.RequestMessage = function(
  opt_data
) {
  jspb.Message.initialize(
    this,
    opt_data,
    0,
    -1,
    null,
    proto.game_protobuf_messages.proto.messages.RequestMessage.oneofGroups_
  );
};
goog.inherits(
  proto.game_protobuf_messages.proto.messages.RequestMessage,
  jspb.Message
);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.game_protobuf_messages.proto.messages.RequestMessage.displayName =
    'proto.game_protobuf_messages.proto.messages.RequestMessage';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.game_protobuf_messages.proto.messages.ResponseMessage = function(
  opt_data
) {
  jspb.Message.initialize(
    this,
    opt_data,
    0,
    -1,
    null,
    proto.game_protobuf_messages.proto.messages.ResponseMessage.oneofGroups_
  );
};
goog.inherits(
  proto.game_protobuf_messages.proto.messages.ResponseMessage,
  jspb.Message
);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.game_protobuf_messages.proto.messages.ResponseMessage.displayName =
    'proto.game_protobuf_messages.proto.messages.ResponseMessage';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.game_protobuf_messages.proto.messages.Body = function(opt_data) {
  jspb.Message.initialize(
    this,
    opt_data,
    0,
    -1,
    null,
    proto.game_protobuf_messages.proto.messages.Body.oneofGroups_
  );
};
goog.inherits(proto.game_protobuf_messages.proto.messages.Body, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.game_protobuf_messages.proto.messages.Body.displayName =
    'proto.game_protobuf_messages.proto.messages.Body';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.game_protobuf_messages.proto.messages.Command = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(
  proto.game_protobuf_messages.proto.messages.Command,
  jspb.Message
);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.game_protobuf_messages.proto.messages.Command.displayName =
    'proto.game_protobuf_messages.proto.messages.Command';
}

if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game_protobuf_messages.proto.messages.IntValue.prototype.toObject = function(
    opt_includeInstance
  ) {
    return proto.game_protobuf_messages.proto.messages.IntValue.toObject(
      opt_includeInstance,
      this
    );
  };

  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game_protobuf_messages.proto.messages.IntValue} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.game_protobuf_messages.proto.messages.IntValue.toObject = function(
    includeInstance,
    msg
  ) {
    var f,
      obj = {
        val: jspb.Message.getFieldWithDefault(msg, 1, 0),
      };

    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
}

/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.game_protobuf_messages.proto.messages.IntValue}
 */
proto.game_protobuf_messages.proto.messages.IntValue.deserializeBinary = function(
  bytes
) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.game_protobuf_messages.proto.messages.IntValue();
  return proto.game_protobuf_messages.proto.messages.IntValue.deserializeBinaryFromReader(
    msg,
    reader
  );
};

/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.game_protobuf_messages.proto.messages.IntValue} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.game_protobuf_messages.proto.messages.IntValue}
 */
proto.game_protobuf_messages.proto.messages.IntValue.deserializeBinaryFromReader = function(
  msg,
  reader
) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
      case 1:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setVal(value);
        break;
      default:
        reader.skipField();
        break;
    }
  }
  return msg;
};

/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.game_protobuf_messages.proto.messages.IntValue.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.game_protobuf_messages.proto.messages.IntValue.serializeBinaryToWriter(
    this,
    writer
  );
  return writer.getResultBuffer();
};

/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.game_protobuf_messages.proto.messages.IntValue} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.game_protobuf_messages.proto.messages.IntValue.serializeBinaryToWriter = function(
  message,
  writer
) {
  var f = undefined;
  f = message.getVal();
  if (f !== 0) {
    writer.writeInt32(1, f);
  }
};

/**
 * optional int32 val = 1;
 * @return {number}
 */
proto.game_protobuf_messages.proto.messages.IntValue.prototype.getVal = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};

/**
 * @param {number} value
 * @return {!proto.game_protobuf_messages.proto.messages.IntValue} returns this
 */
proto.game_protobuf_messages.proto.messages.IntValue.prototype.setVal = function(
  value
) {
  return jspb.Message.setProto3IntField(this, 1, value);
};

if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game_protobuf_messages.proto.messages.RoomSystemProperty.prototype.toObject = function(
    opt_includeInstance
  ) {
    return proto.game_protobuf_messages.proto.messages.RoomSystemProperty.toObject(
      opt_includeInstance,
      this
    );
  };

  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game_protobuf_messages.proto.messages.RoomSystemProperty} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.game_protobuf_messages.proto.messages.RoomSystemProperty.toObject = function(
    includeInstance,
    msg
  ) {
    var f,
      obj = {
        open:
          (f = msg.getOpen()) &&
          google_protobuf_wrappers_pb.BoolValue.toObject(includeInstance, f),
        visible:
          (f = msg.getVisible()) &&
          google_protobuf_wrappers_pb.BoolValue.toObject(includeInstance, f),
        expectMembers: jspb.Message.getFieldWithDefault(msg, 3, ''),
        maxMembers: jspb.Message.getFieldWithDefault(msg, 4, 0),
      };

    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
}

/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.game_protobuf_messages.proto.messages.RoomSystemProperty}
 */
proto.game_protobuf_messages.proto.messages.RoomSystemProperty.deserializeBinary = function(
  bytes
) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.game_protobuf_messages.proto.messages.RoomSystemProperty();
  return proto.game_protobuf_messages.proto.messages.RoomSystemProperty.deserializeBinaryFromReader(
    msg,
    reader
  );
};

/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.game_protobuf_messages.proto.messages.RoomSystemProperty} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.game_protobuf_messages.proto.messages.RoomSystemProperty}
 */
proto.game_protobuf_messages.proto.messages.RoomSystemProperty.deserializeBinaryFromReader = function(
  msg,
  reader
) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
      case 1:
        var value = new google_protobuf_wrappers_pb.BoolValue();
        reader.readMessage(
          value,
          google_protobuf_wrappers_pb.BoolValue.deserializeBinaryFromReader
        );
        msg.setOpen(value);
        break;
      case 2:
        var value = new google_protobuf_wrappers_pb.BoolValue();
        reader.readMessage(
          value,
          google_protobuf_wrappers_pb.BoolValue.deserializeBinaryFromReader
        );
        msg.setVisible(value);
        break;
      case 3:
        var value = /** @type {string} */ (reader.readString());
        msg.setExpectMembers(value);
        break;
      case 4:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setMaxMembers(value);
        break;
      default:
        reader.skipField();
        break;
    }
  }
  return msg;
};

/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.game_protobuf_messages.proto.messages.RoomSystemProperty.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.game_protobuf_messages.proto.messages.RoomSystemProperty.serializeBinaryToWriter(
    this,
    writer
  );
  return writer.getResultBuffer();
};

/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.game_protobuf_messages.proto.messages.RoomSystemProperty} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.game_protobuf_messages.proto.messages.RoomSystemProperty.serializeBinaryToWriter = function(
  message,
  writer
) {
  var f = undefined;
  f = message.getOpen();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      google_protobuf_wrappers_pb.BoolValue.serializeBinaryToWriter
    );
  }
  f = message.getVisible();
  if (f != null) {
    writer.writeMessage(
      2,
      f,
      google_protobuf_wrappers_pb.BoolValue.serializeBinaryToWriter
    );
  }
  f = message.getExpectMembers();
  if (f.length > 0) {
    writer.writeString(3, f);
  }
  f = message.getMaxMembers();
  if (f !== 0) {
    writer.writeInt32(4, f);
  }
};

/**
 * optional google.protobuf.BoolValue open = 1;
 * @return {?proto.google.protobuf.BoolValue}
 */
proto.game_protobuf_messages.proto.messages.RoomSystemProperty.prototype.getOpen = function() {
  return /** @type{?proto.google.protobuf.BoolValue} */ (jspb.Message.getWrapperField(
    this,
    google_protobuf_wrappers_pb.BoolValue,
    1
  ));
};

/**
 * @param {?proto.google.protobuf.BoolValue|undefined} value
 * @return {!proto.game_protobuf_messages.proto.messages.RoomSystemProperty} returns this
 */
proto.game_protobuf_messages.proto.messages.RoomSystemProperty.prototype.setOpen = function(
  value
) {
  return jspb.Message.setWrapperField(this, 1, value);
};

/**
 * Clears the message field making it undefined.
 * @return {!proto.game_protobuf_messages.proto.messages.RoomSystemProperty} returns this
 */
proto.game_protobuf_messages.proto.messages.RoomSystemProperty.prototype.clearOpen = function() {
  return this.setOpen(undefined);
};

/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.game_protobuf_messages.proto.messages.RoomSystemProperty.prototype.hasOpen = function() {
  return jspb.Message.getField(this, 1) != null;
};

/**
 * optional google.protobuf.BoolValue visible = 2;
 * @return {?proto.google.protobuf.BoolValue}
 */
proto.game_protobuf_messages.proto.messages.RoomSystemProperty.prototype.getVisible = function() {
  return /** @type{?proto.google.protobuf.BoolValue} */ (jspb.Message.getWrapperField(
    this,
    google_protobuf_wrappers_pb.BoolValue,
    2
  ));
};

/**
 * @param {?proto.google.protobuf.BoolValue|undefined} value
 * @return {!proto.game_protobuf_messages.proto.messages.RoomSystemProperty} returns this
 */
proto.game_protobuf_messages.proto.messages.RoomSystemProperty.prototype.setVisible = function(
  value
) {
  return jspb.Message.setWrapperField(this, 2, value);
};

/**
 * Clears the message field making it undefined.
 * @return {!proto.game_protobuf_messages.proto.messages.RoomSystemProperty} returns this
 */
proto.game_protobuf_messages.proto.messages.RoomSystemProperty.prototype.clearVisible = function() {
  return this.setVisible(undefined);
};

/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.game_protobuf_messages.proto.messages.RoomSystemProperty.prototype.hasVisible = function() {
  return jspb.Message.getField(this, 2) != null;
};

/**
 * optional string expect_members = 3;
 * @return {string}
 */
proto.game_protobuf_messages.proto.messages.RoomSystemProperty.prototype.getExpectMembers = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ''));
};

/**
 * @param {string} value
 * @return {!proto.game_protobuf_messages.proto.messages.RoomSystemProperty} returns this
 */
proto.game_protobuf_messages.proto.messages.RoomSystemProperty.prototype.setExpectMembers = function(
  value
) {
  return jspb.Message.setProto3StringField(this, 3, value);
};

/**
 * optional int32 max_members = 4;
 * @return {number}
 */
proto.game_protobuf_messages.proto.messages.RoomSystemProperty.prototype.getMaxMembers = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));
};

/**
 * @param {number} value
 * @return {!proto.game_protobuf_messages.proto.messages.RoomSystemProperty} returns this
 */
proto.game_protobuf_messages.proto.messages.RoomSystemProperty.prototype.setMaxMembers = function(
  value
) {
  return jspb.Message.setProto3IntField(this, 4, value);
};

if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game_protobuf_messages.proto.messages.RoomMember.prototype.toObject = function(
    opt_includeInstance
  ) {
    return proto.game_protobuf_messages.proto.messages.RoomMember.toObject(
      opt_includeInstance,
      this
    );
  };

  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game_protobuf_messages.proto.messages.RoomMember} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.game_protobuf_messages.proto.messages.RoomMember.toObject = function(
    includeInstance,
    msg
  ) {
    var f,
      obj = {
        pid: jspb.Message.getFieldWithDefault(msg, 1, ''),
        actorId: jspb.Message.getFieldWithDefault(msg, 2, 0),
        attr: msg.getAttr_asB64(),
        inactive: jspb.Message.getBooleanFieldWithDefault(msg, 4, false),
      };

    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
}

/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.game_protobuf_messages.proto.messages.RoomMember}
 */
proto.game_protobuf_messages.proto.messages.RoomMember.deserializeBinary = function(
  bytes
) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.game_protobuf_messages.proto.messages.RoomMember();
  return proto.game_protobuf_messages.proto.messages.RoomMember.deserializeBinaryFromReader(
    msg,
    reader
  );
};

/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.game_protobuf_messages.proto.messages.RoomMember} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.game_protobuf_messages.proto.messages.RoomMember}
 */
proto.game_protobuf_messages.proto.messages.RoomMember.deserializeBinaryFromReader = function(
  msg,
  reader
) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
      case 1:
        var value = /** @type {string} */ (reader.readString());
        msg.setPid(value);
        break;
      case 2:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setActorId(value);
        break;
      case 3:
        var value = /** @type {!Uint8Array} */ (reader.readBytes());
        msg.setAttr(value);
        break;
      case 4:
        var value = /** @type {boolean} */ (reader.readBool());
        msg.setInactive(value);
        break;
      default:
        reader.skipField();
        break;
    }
  }
  return msg;
};

/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.game_protobuf_messages.proto.messages.RoomMember.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.game_protobuf_messages.proto.messages.RoomMember.serializeBinaryToWriter(
    this,
    writer
  );
  return writer.getResultBuffer();
};

/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.game_protobuf_messages.proto.messages.RoomMember} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.game_protobuf_messages.proto.messages.RoomMember.serializeBinaryToWriter = function(
  message,
  writer
) {
  var f = undefined;
  f = message.getPid();
  if (f.length > 0) {
    writer.writeString(1, f);
  }
  f = message.getActorId();
  if (f !== 0) {
    writer.writeInt32(2, f);
  }
  f = message.getAttr_asU8();
  if (f.length > 0) {
    writer.writeBytes(3, f);
  }
  f = message.getInactive();
  if (f) {
    writer.writeBool(4, f);
  }
};

/**
 * optional string pid = 1;
 * @return {string}
 */
proto.game_protobuf_messages.proto.messages.RoomMember.prototype.getPid = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ''));
};

/**
 * @param {string} value
 * @return {!proto.game_protobuf_messages.proto.messages.RoomMember} returns this
 */
proto.game_protobuf_messages.proto.messages.RoomMember.prototype.setPid = function(
  value
) {
  return jspb.Message.setProto3StringField(this, 1, value);
};

/**
 * optional int32 actor_id = 2;
 * @return {number}
 */
proto.game_protobuf_messages.proto.messages.RoomMember.prototype.getActorId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
};

/**
 * @param {number} value
 * @return {!proto.game_protobuf_messages.proto.messages.RoomMember} returns this
 */
proto.game_protobuf_messages.proto.messages.RoomMember.prototype.setActorId = function(
  value
) {
  return jspb.Message.setProto3IntField(this, 2, value);
};

/**
 * optional bytes attr = 3;
 * @return {!(string|Uint8Array)}
 */
proto.game_protobuf_messages.proto.messages.RoomMember.prototype.getAttr = function() {
  return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(
    this,
    3,
    ''
  ));
};

/**
 * optional bytes attr = 3;
 * This is a type-conversion wrapper around `getAttr()`
 * @return {string}
 */
proto.game_protobuf_messages.proto.messages.RoomMember.prototype.getAttr_asB64 = function() {
  return /** @type {string} */ (jspb.Message.bytesAsB64(this.getAttr()));
};

/**
 * optional bytes attr = 3;
 * Note that Uint8Array is not supported on all browsers.
 * @see http://caniuse.com/Uint8Array
 * This is a type-conversion wrapper around `getAttr()`
 * @return {!Uint8Array}
 */
proto.game_protobuf_messages.proto.messages.RoomMember.prototype.getAttr_asU8 = function() {
  return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getAttr()));
};

/**
 * @param {!(string|Uint8Array)} value
 * @return {!proto.game_protobuf_messages.proto.messages.RoomMember} returns this
 */
proto.game_protobuf_messages.proto.messages.RoomMember.prototype.setAttr = function(
  value
) {
  return jspb.Message.setProto3BytesField(this, 3, value);
};

/**
 * optional bool inactive = 4;
 * @return {boolean}
 */
proto.game_protobuf_messages.proto.messages.RoomMember.prototype.getInactive = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(
    this,
    4,
    false
  ));
};

/**
 * @param {boolean} value
 * @return {!proto.game_protobuf_messages.proto.messages.RoomMember} returns this
 */
proto.game_protobuf_messages.proto.messages.RoomMember.prototype.setInactive = function(
  value
) {
  return jspb.Message.setProto3BooleanField(this, 4, value);
};

if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game_protobuf_messages.proto.messages.AppInfo.prototype.toObject = function(
    opt_includeInstance
  ) {
    return proto.game_protobuf_messages.proto.messages.AppInfo.toObject(
      opt_includeInstance,
      this
    );
  };

  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game_protobuf_messages.proto.messages.AppInfo} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.game_protobuf_messages.proto.messages.AppInfo.toObject = function(
    includeInstance,
    msg
  ) {
    var f,
      obj = {
        appCode: jspb.Message.getFieldWithDefault(msg, 1, 0),
        appMsg: jspb.Message.getFieldWithDefault(msg, 2, ''),
      };

    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
}

/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.game_protobuf_messages.proto.messages.AppInfo}
 */
proto.game_protobuf_messages.proto.messages.AppInfo.deserializeBinary = function(
  bytes
) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.game_protobuf_messages.proto.messages.AppInfo();
  return proto.game_protobuf_messages.proto.messages.AppInfo.deserializeBinaryFromReader(
    msg,
    reader
  );
};

/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.game_protobuf_messages.proto.messages.AppInfo} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.game_protobuf_messages.proto.messages.AppInfo}
 */
proto.game_protobuf_messages.proto.messages.AppInfo.deserializeBinaryFromReader = function(
  msg,
  reader
) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
      case 1:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setAppCode(value);
        break;
      case 2:
        var value = /** @type {string} */ (reader.readString());
        msg.setAppMsg(value);
        break;
      default:
        reader.skipField();
        break;
    }
  }
  return msg;
};

/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.game_protobuf_messages.proto.messages.AppInfo.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.game_protobuf_messages.proto.messages.AppInfo.serializeBinaryToWriter(
    this,
    writer
  );
  return writer.getResultBuffer();
};

/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.game_protobuf_messages.proto.messages.AppInfo} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.game_protobuf_messages.proto.messages.AppInfo.serializeBinaryToWriter = function(
  message,
  writer
) {
  var f = undefined;
  f = message.getAppCode();
  if (f !== 0) {
    writer.writeInt32(1, f);
  }
  f = message.getAppMsg();
  if (f.length > 0) {
    writer.writeString(2, f);
  }
};

/**
 * optional int32 app_code = 1;
 * @return {number}
 */
proto.game_protobuf_messages.proto.messages.AppInfo.prototype.getAppCode = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};

/**
 * @param {number} value
 * @return {!proto.game_protobuf_messages.proto.messages.AppInfo} returns this
 */
proto.game_protobuf_messages.proto.messages.AppInfo.prototype.setAppCode = function(
  value
) {
  return jspb.Message.setProto3IntField(this, 1, value);
};

/**
 * optional string app_msg = 2;
 * @return {string}
 */
proto.game_protobuf_messages.proto.messages.AppInfo.prototype.getAppMsg = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ''));
};

/**
 * @param {string} value
 * @return {!proto.game_protobuf_messages.proto.messages.AppInfo} returns this
 */
proto.game_protobuf_messages.proto.messages.AppInfo.prototype.setAppMsg = function(
  value
) {
  return jspb.Message.setProto3StringField(this, 2, value);
};

if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game_protobuf_messages.proto.messages.ErrorInfo.prototype.toObject = function(
    opt_includeInstance
  ) {
    return proto.game_protobuf_messages.proto.messages.ErrorInfo.toObject(
      opt_includeInstance,
      this
    );
  };

  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game_protobuf_messages.proto.messages.ErrorInfo} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.game_protobuf_messages.proto.messages.ErrorInfo.toObject = function(
    includeInstance,
    msg
  ) {
    var f,
      obj = {
        reasonCode: jspb.Message.getFieldWithDefault(msg, 1, 0),
        detail: jspb.Message.getFieldWithDefault(msg, 2, ''),
        appInfo:
          (f = msg.getAppInfo()) &&
          proto.game_protobuf_messages.proto.messages.AppInfo.toObject(
            includeInstance,
            f
          ),
      };

    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
}

/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.game_protobuf_messages.proto.messages.ErrorInfo}
 */
proto.game_protobuf_messages.proto.messages.ErrorInfo.deserializeBinary = function(
  bytes
) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.game_protobuf_messages.proto.messages.ErrorInfo();
  return proto.game_protobuf_messages.proto.messages.ErrorInfo.deserializeBinaryFromReader(
    msg,
    reader
  );
};

/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.game_protobuf_messages.proto.messages.ErrorInfo} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.game_protobuf_messages.proto.messages.ErrorInfo}
 */
proto.game_protobuf_messages.proto.messages.ErrorInfo.deserializeBinaryFromReader = function(
  msg,
  reader
) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
      case 1:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setReasonCode(value);
        break;
      case 2:
        var value = /** @type {string} */ (reader.readString());
        msg.setDetail(value);
        break;
      case 3:
        var value = new proto.game_protobuf_messages.proto.messages.AppInfo();
        reader.readMessage(
          value,
          proto.game_protobuf_messages.proto.messages.AppInfo
            .deserializeBinaryFromReader
        );
        msg.setAppInfo(value);
        break;
      default:
        reader.skipField();
        break;
    }
  }
  return msg;
};

/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.game_protobuf_messages.proto.messages.ErrorInfo.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.game_protobuf_messages.proto.messages.ErrorInfo.serializeBinaryToWriter(
    this,
    writer
  );
  return writer.getResultBuffer();
};

/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.game_protobuf_messages.proto.messages.ErrorInfo} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.game_protobuf_messages.proto.messages.ErrorInfo.serializeBinaryToWriter = function(
  message,
  writer
) {
  var f = undefined;
  f = message.getReasonCode();
  if (f !== 0) {
    writer.writeInt32(1, f);
  }
  f = message.getDetail();
  if (f.length > 0) {
    writer.writeString(2, f);
  }
  f = message.getAppInfo();
  if (f != null) {
    writer.writeMessage(
      3,
      f,
      proto.game_protobuf_messages.proto.messages.AppInfo
        .serializeBinaryToWriter
    );
  }
};

/**
 * optional int32 reason_code = 1;
 * @return {number}
 */
proto.game_protobuf_messages.proto.messages.ErrorInfo.prototype.getReasonCode = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};

/**
 * @param {number} value
 * @return {!proto.game_protobuf_messages.proto.messages.ErrorInfo} returns this
 */
proto.game_protobuf_messages.proto.messages.ErrorInfo.prototype.setReasonCode = function(
  value
) {
  return jspb.Message.setProto3IntField(this, 1, value);
};

/**
 * optional string detail = 2;
 * @return {string}
 */
proto.game_protobuf_messages.proto.messages.ErrorInfo.prototype.getDetail = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ''));
};

/**
 * @param {string} value
 * @return {!proto.game_protobuf_messages.proto.messages.ErrorInfo} returns this
 */
proto.game_protobuf_messages.proto.messages.ErrorInfo.prototype.setDetail = function(
  value
) {
  return jspb.Message.setProto3StringField(this, 2, value);
};

/**
 * optional AppInfo app_info = 3;
 * @return {?proto.game_protobuf_messages.proto.messages.AppInfo}
 */
proto.game_protobuf_messages.proto.messages.ErrorInfo.prototype.getAppInfo = function() {
  return /** @type{?proto.game_protobuf_messages.proto.messages.AppInfo} */ (jspb.Message.getWrapperField(
    this,
    proto.game_protobuf_messages.proto.messages.AppInfo,
    3
  ));
};

/**
 * @param {?proto.game_protobuf_messages.proto.messages.AppInfo|undefined} value
 * @return {!proto.game_protobuf_messages.proto.messages.ErrorInfo} returns this
 */
proto.game_protobuf_messages.proto.messages.ErrorInfo.prototype.setAppInfo = function(
  value
) {
  return jspb.Message.setWrapperField(this, 3, value);
};

/**
 * Clears the message field making it undefined.
 * @return {!proto.game_protobuf_messages.proto.messages.ErrorInfo} returns this
 */
proto.game_protobuf_messages.proto.messages.ErrorInfo.prototype.clearAppInfo = function() {
  return this.setAppInfo(undefined);
};

/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.game_protobuf_messages.proto.messages.ErrorInfo.prototype.hasAppInfo = function() {
  return jspb.Message.getField(this, 3) != null;
};

/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.game_protobuf_messages.proto.messages.RoomOptions.repeatedFields_ = [
  10,
  11,
  12,
];

if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game_protobuf_messages.proto.messages.RoomOptions.prototype.toObject = function(
    opt_includeInstance
  ) {
    return proto.game_protobuf_messages.proto.messages.RoomOptions.toObject(
      opt_includeInstance,
      this
    );
  };

  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game_protobuf_messages.proto.messages.RoomOptions} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.game_protobuf_messages.proto.messages.RoomOptions.toObject = function(
    includeInstance,
    msg
  ) {
    var f,
      obj = {
        cid: jspb.Message.getFieldWithDefault(msg, 1, ''),
        visible:
          (f = msg.getVisible()) &&
          google_protobuf_wrappers_pb.BoolValue.toObject(includeInstance, f),
        open:
          (f = msg.getOpen()) &&
          google_protobuf_wrappers_pb.BoolValue.toObject(includeInstance, f),
        emptyRoomTtl: jspb.Message.getFieldWithDefault(msg, 4, 0),
        playerTtl: jspb.Message.getFieldWithDefault(msg, 5, 0),
        maxMembers: jspb.Message.getFieldWithDefault(msg, 6, 0),
        flag: jspb.Message.getFieldWithDefault(msg, 7, 0),
        pluginName: jspb.Message.getFieldWithDefault(msg, 8, ''),
        attr: msg.getAttr_asB64(),
        expectMembersList:
          (f = jspb.Message.getRepeatedField(msg, 10)) == null ? undefined : f,
        lobbyAttrKeysList:
          (f = jspb.Message.getRepeatedField(msg, 11)) == null ? undefined : f,
        membersList: jspb.Message.toObjectList(
          msg.getMembersList(),
          proto.game_protobuf_messages.proto.messages.RoomMember.toObject,
          includeInstance
        ),
        memberCount: jspb.Message.getFieldWithDefault(msg, 13, 0),
        masterActorId: jspb.Message.getFieldWithDefault(msg, 14, 0),
      };

    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
}

/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.game_protobuf_messages.proto.messages.RoomOptions}
 */
proto.game_protobuf_messages.proto.messages.RoomOptions.deserializeBinary = function(
  bytes
) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.game_protobuf_messages.proto.messages.RoomOptions();
  return proto.game_protobuf_messages.proto.messages.RoomOptions.deserializeBinaryFromReader(
    msg,
    reader
  );
};

/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.game_protobuf_messages.proto.messages.RoomOptions} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.game_protobuf_messages.proto.messages.RoomOptions}
 */
proto.game_protobuf_messages.proto.messages.RoomOptions.deserializeBinaryFromReader = function(
  msg,
  reader
) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
      case 1:
        var value = /** @type {string} */ (reader.readString());
        msg.setCid(value);
        break;
      case 2:
        var value = new google_protobuf_wrappers_pb.BoolValue();
        reader.readMessage(
          value,
          google_protobuf_wrappers_pb.BoolValue.deserializeBinaryFromReader
        );
        msg.setVisible(value);
        break;
      case 3:
        var value = new google_protobuf_wrappers_pb.BoolValue();
        reader.readMessage(
          value,
          google_protobuf_wrappers_pb.BoolValue.deserializeBinaryFromReader
        );
        msg.setOpen(value);
        break;
      case 4:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setEmptyRoomTtl(value);
        break;
      case 5:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setPlayerTtl(value);
        break;
      case 6:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setMaxMembers(value);
        break;
      case 7:
        var value = /** @type {number} */ (reader.readInt64());
        msg.setFlag(value);
        break;
      case 8:
        var value = /** @type {string} */ (reader.readString());
        msg.setPluginName(value);
        break;
      case 9:
        var value = /** @type {!Uint8Array} */ (reader.readBytes());
        msg.setAttr(value);
        break;
      case 10:
        var value = /** @type {string} */ (reader.readString());
        msg.addExpectMembers(value);
        break;
      case 11:
        var value = /** @type {string} */ (reader.readString());
        msg.addLobbyAttrKeys(value);
        break;
      case 12:
        var value = new proto.game_protobuf_messages.proto.messages.RoomMember();
        reader.readMessage(
          value,
          proto.game_protobuf_messages.proto.messages.RoomMember
            .deserializeBinaryFromReader
        );
        msg.addMembers(value);
        break;
      case 13:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setMemberCount(value);
        break;
      case 14:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setMasterActorId(value);
        break;
      default:
        reader.skipField();
        break;
    }
  }
  return msg;
};

/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.game_protobuf_messages.proto.messages.RoomOptions.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.game_protobuf_messages.proto.messages.RoomOptions.serializeBinaryToWriter(
    this,
    writer
  );
  return writer.getResultBuffer();
};

/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.game_protobuf_messages.proto.messages.RoomOptions} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.game_protobuf_messages.proto.messages.RoomOptions.serializeBinaryToWriter = function(
  message,
  writer
) {
  var f = undefined;
  f = message.getCid();
  if (f.length > 0) {
    writer.writeString(1, f);
  }
  f = message.getVisible();
  if (f != null) {
    writer.writeMessage(
      2,
      f,
      google_protobuf_wrappers_pb.BoolValue.serializeBinaryToWriter
    );
  }
  f = message.getOpen();
  if (f != null) {
    writer.writeMessage(
      3,
      f,
      google_protobuf_wrappers_pb.BoolValue.serializeBinaryToWriter
    );
  }
  f = message.getEmptyRoomTtl();
  if (f !== 0) {
    writer.writeInt32(4, f);
  }
  f = message.getPlayerTtl();
  if (f !== 0) {
    writer.writeInt32(5, f);
  }
  f = message.getMaxMembers();
  if (f !== 0) {
    writer.writeInt32(6, f);
  }
  f = message.getFlag();
  if (f !== 0) {
    writer.writeInt64(7, f);
  }
  f = message.getPluginName();
  if (f.length > 0) {
    writer.writeString(8, f);
  }
  f = message.getAttr_asU8();
  if (f.length > 0) {
    writer.writeBytes(9, f);
  }
  f = message.getExpectMembersList();
  if (f.length > 0) {
    writer.writeRepeatedString(10, f);
  }
  f = message.getLobbyAttrKeysList();
  if (f.length > 0) {
    writer.writeRepeatedString(11, f);
  }
  f = message.getMembersList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      12,
      f,
      proto.game_protobuf_messages.proto.messages.RoomMember
        .serializeBinaryToWriter
    );
  }
  f = message.getMemberCount();
  if (f !== 0) {
    writer.writeInt32(13, f);
  }
  f = message.getMasterActorId();
  if (f !== 0) {
    writer.writeInt32(14, f);
  }
};

/**
 * optional string cid = 1;
 * @return {string}
 */
proto.game_protobuf_messages.proto.messages.RoomOptions.prototype.getCid = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ''));
};

/**
 * @param {string} value
 * @return {!proto.game_protobuf_messages.proto.messages.RoomOptions} returns this
 */
proto.game_protobuf_messages.proto.messages.RoomOptions.prototype.setCid = function(
  value
) {
  return jspb.Message.setProto3StringField(this, 1, value);
};

/**
 * optional google.protobuf.BoolValue visible = 2;
 * @return {?proto.google.protobuf.BoolValue}
 */
proto.game_protobuf_messages.proto.messages.RoomOptions.prototype.getVisible = function() {
  return /** @type{?proto.google.protobuf.BoolValue} */ (jspb.Message.getWrapperField(
    this,
    google_protobuf_wrappers_pb.BoolValue,
    2
  ));
};

/**
 * @param {?proto.google.protobuf.BoolValue|undefined} value
 * @return {!proto.game_protobuf_messages.proto.messages.RoomOptions} returns this
 */
proto.game_protobuf_messages.proto.messages.RoomOptions.prototype.setVisible = function(
  value
) {
  return jspb.Message.setWrapperField(this, 2, value);
};

/**
 * Clears the message field making it undefined.
 * @return {!proto.game_protobuf_messages.proto.messages.RoomOptions} returns this
 */
proto.game_protobuf_messages.proto.messages.RoomOptions.prototype.clearVisible = function() {
  return this.setVisible(undefined);
};

/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.game_protobuf_messages.proto.messages.RoomOptions.prototype.hasVisible = function() {
  return jspb.Message.getField(this, 2) != null;
};

/**
 * optional google.protobuf.BoolValue open = 3;
 * @return {?proto.google.protobuf.BoolValue}
 */
proto.game_protobuf_messages.proto.messages.RoomOptions.prototype.getOpen = function() {
  return /** @type{?proto.google.protobuf.BoolValue} */ (jspb.Message.getWrapperField(
    this,
    google_protobuf_wrappers_pb.BoolValue,
    3
  ));
};

/**
 * @param {?proto.google.protobuf.BoolValue|undefined} value
 * @return {!proto.game_protobuf_messages.proto.messages.RoomOptions} returns this
 */
proto.game_protobuf_messages.proto.messages.RoomOptions.prototype.setOpen = function(
  value
) {
  return jspb.Message.setWrapperField(this, 3, value);
};

/**
 * Clears the message field making it undefined.
 * @return {!proto.game_protobuf_messages.proto.messages.RoomOptions} returns this
 */
proto.game_protobuf_messages.proto.messages.RoomOptions.prototype.clearOpen = function() {
  return this.setOpen(undefined);
};

/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.game_protobuf_messages.proto.messages.RoomOptions.prototype.hasOpen = function() {
  return jspb.Message.getField(this, 3) != null;
};

/**
 * optional int32 empty_room_ttl = 4;
 * @return {number}
 */
proto.game_protobuf_messages.proto.messages.RoomOptions.prototype.getEmptyRoomTtl = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));
};

/**
 * @param {number} value
 * @return {!proto.game_protobuf_messages.proto.messages.RoomOptions} returns this
 */
proto.game_protobuf_messages.proto.messages.RoomOptions.prototype.setEmptyRoomTtl = function(
  value
) {
  return jspb.Message.setProto3IntField(this, 4, value);
};

/**
 * optional int32 player_ttl = 5;
 * @return {number}
 */
proto.game_protobuf_messages.proto.messages.RoomOptions.prototype.getPlayerTtl = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0));
};

/**
 * @param {number} value
 * @return {!proto.game_protobuf_messages.proto.messages.RoomOptions} returns this
 */
proto.game_protobuf_messages.proto.messages.RoomOptions.prototype.setPlayerTtl = function(
  value
) {
  return jspb.Message.setProto3IntField(this, 5, value);
};

/**
 * optional int32 max_members = 6;
 * @return {number}
 */
proto.game_protobuf_messages.proto.messages.RoomOptions.prototype.getMaxMembers = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0));
};

/**
 * @param {number} value
 * @return {!proto.game_protobuf_messages.proto.messages.RoomOptions} returns this
 */
proto.game_protobuf_messages.proto.messages.RoomOptions.prototype.setMaxMembers = function(
  value
) {
  return jspb.Message.setProto3IntField(this, 6, value);
};

/**
 * optional int64 flag = 7;
 * @return {number}
 */
proto.game_protobuf_messages.proto.messages.RoomOptions.prototype.getFlag = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 7, 0));
};

/**
 * @param {number} value
 * @return {!proto.game_protobuf_messages.proto.messages.RoomOptions} returns this
 */
proto.game_protobuf_messages.proto.messages.RoomOptions.prototype.setFlag = function(
  value
) {
  return jspb.Message.setProto3IntField(this, 7, value);
};

/**
 * optional string plugin_name = 8;
 * @return {string}
 */
proto.game_protobuf_messages.proto.messages.RoomOptions.prototype.getPluginName = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, ''));
};

/**
 * @param {string} value
 * @return {!proto.game_protobuf_messages.proto.messages.RoomOptions} returns this
 */
proto.game_protobuf_messages.proto.messages.RoomOptions.prototype.setPluginName = function(
  value
) {
  return jspb.Message.setProto3StringField(this, 8, value);
};

/**
 * optional bytes attr = 9;
 * @return {!(string|Uint8Array)}
 */
proto.game_protobuf_messages.proto.messages.RoomOptions.prototype.getAttr = function() {
  return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(
    this,
    9,
    ''
  ));
};

/**
 * optional bytes attr = 9;
 * This is a type-conversion wrapper around `getAttr()`
 * @return {string}
 */
proto.game_protobuf_messages.proto.messages.RoomOptions.prototype.getAttr_asB64 = function() {
  return /** @type {string} */ (jspb.Message.bytesAsB64(this.getAttr()));
};

/**
 * optional bytes attr = 9;
 * Note that Uint8Array is not supported on all browsers.
 * @see http://caniuse.com/Uint8Array
 * This is a type-conversion wrapper around `getAttr()`
 * @return {!Uint8Array}
 */
proto.game_protobuf_messages.proto.messages.RoomOptions.prototype.getAttr_asU8 = function() {
  return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getAttr()));
};

/**
 * @param {!(string|Uint8Array)} value
 * @return {!proto.game_protobuf_messages.proto.messages.RoomOptions} returns this
 */
proto.game_protobuf_messages.proto.messages.RoomOptions.prototype.setAttr = function(
  value
) {
  return jspb.Message.setProto3BytesField(this, 9, value);
};

/**
 * repeated string expect_members = 10;
 * @return {!Array<string>}
 */
proto.game_protobuf_messages.proto.messages.RoomOptions.prototype.getExpectMembersList = function() {
  return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(
    this,
    10
  ));
};

/**
 * @param {!Array<string>} value
 * @return {!proto.game_protobuf_messages.proto.messages.RoomOptions} returns this
 */
proto.game_protobuf_messages.proto.messages.RoomOptions.prototype.setExpectMembersList = function(
  value
) {
  return jspb.Message.setField(this, 10, value || []);
};

/**
 * @param {string} value
 * @param {number=} opt_index
 * @return {!proto.game_protobuf_messages.proto.messages.RoomOptions} returns this
 */
proto.game_protobuf_messages.proto.messages.RoomOptions.prototype.addExpectMembers = function(
  value,
  opt_index
) {
  return jspb.Message.addToRepeatedField(this, 10, value, opt_index);
};

/**
 * Clears the list making it empty but non-null.
 * @return {!proto.game_protobuf_messages.proto.messages.RoomOptions} returns this
 */
proto.game_protobuf_messages.proto.messages.RoomOptions.prototype.clearExpectMembersList = function() {
  return this.setExpectMembersList([]);
};

/**
 * repeated string lobby_attr_keys = 11;
 * @return {!Array<string>}
 */
proto.game_protobuf_messages.proto.messages.RoomOptions.prototype.getLobbyAttrKeysList = function() {
  return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(
    this,
    11
  ));
};

/**
 * @param {!Array<string>} value
 * @return {!proto.game_protobuf_messages.proto.messages.RoomOptions} returns this
 */
proto.game_protobuf_messages.proto.messages.RoomOptions.prototype.setLobbyAttrKeysList = function(
  value
) {
  return jspb.Message.setField(this, 11, value || []);
};

/**
 * @param {string} value
 * @param {number=} opt_index
 * @return {!proto.game_protobuf_messages.proto.messages.RoomOptions} returns this
 */
proto.game_protobuf_messages.proto.messages.RoomOptions.prototype.addLobbyAttrKeys = function(
  value,
  opt_index
) {
  return jspb.Message.addToRepeatedField(this, 11, value, opt_index);
};

/**
 * Clears the list making it empty but non-null.
 * @return {!proto.game_protobuf_messages.proto.messages.RoomOptions} returns this
 */
proto.game_protobuf_messages.proto.messages.RoomOptions.prototype.clearLobbyAttrKeysList = function() {
  return this.setLobbyAttrKeysList([]);
};

/**
 * repeated RoomMember members = 12;
 * @return {!Array<!proto.game_protobuf_messages.proto.messages.RoomMember>}
 */
proto.game_protobuf_messages.proto.messages.RoomOptions.prototype.getMembersList = function() {
  return /** @type{!Array<!proto.game_protobuf_messages.proto.messages.RoomMember>} */ (jspb.Message.getRepeatedWrapperField(
    this,
    proto.game_protobuf_messages.proto.messages.RoomMember,
    12
  ));
};

/**
 * @param {!Array<!proto.game_protobuf_messages.proto.messages.RoomMember>} value
 * @return {!proto.game_protobuf_messages.proto.messages.RoomOptions} returns this
 */
proto.game_protobuf_messages.proto.messages.RoomOptions.prototype.setMembersList = function(
  value
) {
  return jspb.Message.setRepeatedWrapperField(this, 12, value);
};

/**
 * @param {!proto.game_protobuf_messages.proto.messages.RoomMember=} opt_value
 * @param {number=} opt_index
 * @return {!proto.game_protobuf_messages.proto.messages.RoomMember}
 */
proto.game_protobuf_messages.proto.messages.RoomOptions.prototype.addMembers = function(
  opt_value,
  opt_index
) {
  return jspb.Message.addToRepeatedWrapperField(
    this,
    12,
    opt_value,
    proto.game_protobuf_messages.proto.messages.RoomMember,
    opt_index
  );
};

/**
 * Clears the list making it empty but non-null.
 * @return {!proto.game_protobuf_messages.proto.messages.RoomOptions} returns this
 */
proto.game_protobuf_messages.proto.messages.RoomOptions.prototype.clearMembersList = function() {
  return this.setMembersList([]);
};

/**
 * optional int32 member_count = 13;
 * @return {number}
 */
proto.game_protobuf_messages.proto.messages.RoomOptions.prototype.getMemberCount = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 13, 0));
};

/**
 * @param {number} value
 * @return {!proto.game_protobuf_messages.proto.messages.RoomOptions} returns this
 */
proto.game_protobuf_messages.proto.messages.RoomOptions.prototype.setMemberCount = function(
  value
) {
  return jspb.Message.setProto3IntField(this, 13, value);
};

/**
 * optional int32 master_actor_id = 14;
 * @return {number}
 */
proto.game_protobuf_messages.proto.messages.RoomOptions.prototype.getMasterActorId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 14, 0));
};

/**
 * @param {number} value
 * @return {!proto.game_protobuf_messages.proto.messages.RoomOptions} returns this
 */
proto.game_protobuf_messages.proto.messages.RoomOptions.prototype.setMasterActorId = function(
  value
) {
  return jspb.Message.setProto3IntField(this, 14, value);
};

if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game_protobuf_messages.proto.messages.SessionOpenRequest.prototype.toObject = function(
    opt_includeInstance
  ) {
    return proto.game_protobuf_messages.proto.messages.SessionOpenRequest.toObject(
      opt_includeInstance,
      this
    );
  };

  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game_protobuf_messages.proto.messages.SessionOpenRequest} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.game_protobuf_messages.proto.messages.SessionOpenRequest.toObject = function(
    includeInstance,
    msg
  ) {
    var f,
      obj = {
        appId: jspb.Message.getFieldWithDefault(msg, 1, ''),
        peerId: jspb.Message.getFieldWithDefault(msg, 2, ''),
        gameVersion: jspb.Message.getFieldWithDefault(msg, 3, ''),
        sdkVersion: jspb.Message.getFieldWithDefault(msg, 4, ''),
        protocolVersion: jspb.Message.getFieldWithDefault(msg, 5, ''),
        t: jspb.Message.getFieldWithDefault(msg, 6, 0),
        n: jspb.Message.getFieldWithDefault(msg, 7, ''),
        s: jspb.Message.getFieldWithDefault(msg, 8, ''),
        configBitmap: jspb.Message.getFieldWithDefault(msg, 9, 0),
        sessionToken: jspb.Message.getFieldWithDefault(msg, 10, ''),
      };

    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
}

/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.game_protobuf_messages.proto.messages.SessionOpenRequest}
 */
proto.game_protobuf_messages.proto.messages.SessionOpenRequest.deserializeBinary = function(
  bytes
) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.game_protobuf_messages.proto.messages.SessionOpenRequest();
  return proto.game_protobuf_messages.proto.messages.SessionOpenRequest.deserializeBinaryFromReader(
    msg,
    reader
  );
};

/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.game_protobuf_messages.proto.messages.SessionOpenRequest} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.game_protobuf_messages.proto.messages.SessionOpenRequest}
 */
proto.game_protobuf_messages.proto.messages.SessionOpenRequest.deserializeBinaryFromReader = function(
  msg,
  reader
) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
      case 1:
        var value = /** @type {string} */ (reader.readString());
        msg.setAppId(value);
        break;
      case 2:
        var value = /** @type {string} */ (reader.readString());
        msg.setPeerId(value);
        break;
      case 3:
        var value = /** @type {string} */ (reader.readString());
        msg.setGameVersion(value);
        break;
      case 4:
        var value = /** @type {string} */ (reader.readString());
        msg.setSdkVersion(value);
        break;
      case 5:
        var value = /** @type {string} */ (reader.readString());
        msg.setProtocolVersion(value);
        break;
      case 6:
        var value = /** @type {number} */ (reader.readInt64());
        msg.setT(value);
        break;
      case 7:
        var value = /** @type {string} */ (reader.readString());
        msg.setN(value);
        break;
      case 8:
        var value = /** @type {string} */ (reader.readString());
        msg.setS(value);
        break;
      case 9:
        var value = /** @type {number} */ (reader.readInt64());
        msg.setConfigBitmap(value);
        break;
      case 10:
        var value = /** @type {string} */ (reader.readString());
        msg.setSessionToken(value);
        break;
      default:
        reader.skipField();
        break;
    }
  }
  return msg;
};

/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.game_protobuf_messages.proto.messages.SessionOpenRequest.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.game_protobuf_messages.proto.messages.SessionOpenRequest.serializeBinaryToWriter(
    this,
    writer
  );
  return writer.getResultBuffer();
};

/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.game_protobuf_messages.proto.messages.SessionOpenRequest} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.game_protobuf_messages.proto.messages.SessionOpenRequest.serializeBinaryToWriter = function(
  message,
  writer
) {
  var f = undefined;
  f = message.getAppId();
  if (f.length > 0) {
    writer.writeString(1, f);
  }
  f = message.getPeerId();
  if (f.length > 0) {
    writer.writeString(2, f);
  }
  f = message.getGameVersion();
  if (f.length > 0) {
    writer.writeString(3, f);
  }
  f = message.getSdkVersion();
  if (f.length > 0) {
    writer.writeString(4, f);
  }
  f = message.getProtocolVersion();
  if (f.length > 0) {
    writer.writeString(5, f);
  }
  f = message.getT();
  if (f !== 0) {
    writer.writeInt64(6, f);
  }
  f = message.getN();
  if (f.length > 0) {
    writer.writeString(7, f);
  }
  f = message.getS();
  if (f.length > 0) {
    writer.writeString(8, f);
  }
  f = message.getConfigBitmap();
  if (f !== 0) {
    writer.writeInt64(9, f);
  }
  f = message.getSessionToken();
  if (f.length > 0) {
    writer.writeString(10, f);
  }
};

/**
 * optional string app_id = 1;
 * @return {string}
 */
proto.game_protobuf_messages.proto.messages.SessionOpenRequest.prototype.getAppId = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ''));
};

/**
 * @param {string} value
 * @return {!proto.game_protobuf_messages.proto.messages.SessionOpenRequest} returns this
 */
proto.game_protobuf_messages.proto.messages.SessionOpenRequest.prototype.setAppId = function(
  value
) {
  return jspb.Message.setProto3StringField(this, 1, value);
};

/**
 * optional string peer_id = 2;
 * @return {string}
 */
proto.game_protobuf_messages.proto.messages.SessionOpenRequest.prototype.getPeerId = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ''));
};

/**
 * @param {string} value
 * @return {!proto.game_protobuf_messages.proto.messages.SessionOpenRequest} returns this
 */
proto.game_protobuf_messages.proto.messages.SessionOpenRequest.prototype.setPeerId = function(
  value
) {
  return jspb.Message.setProto3StringField(this, 2, value);
};

/**
 * optional string game_version = 3;
 * @return {string}
 */
proto.game_protobuf_messages.proto.messages.SessionOpenRequest.prototype.getGameVersion = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ''));
};

/**
 * @param {string} value
 * @return {!proto.game_protobuf_messages.proto.messages.SessionOpenRequest} returns this
 */
proto.game_protobuf_messages.proto.messages.SessionOpenRequest.prototype.setGameVersion = function(
  value
) {
  return jspb.Message.setProto3StringField(this, 3, value);
};

/**
 * optional string sdk_version = 4;
 * @return {string}
 */
proto.game_protobuf_messages.proto.messages.SessionOpenRequest.prototype.getSdkVersion = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ''));
};

/**
 * @param {string} value
 * @return {!proto.game_protobuf_messages.proto.messages.SessionOpenRequest} returns this
 */
proto.game_protobuf_messages.proto.messages.SessionOpenRequest.prototype.setSdkVersion = function(
  value
) {
  return jspb.Message.setProto3StringField(this, 4, value);
};

/**
 * optional string protocol_version = 5;
 * @return {string}
 */
proto.game_protobuf_messages.proto.messages.SessionOpenRequest.prototype.getProtocolVersion = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, ''));
};

/**
 * @param {string} value
 * @return {!proto.game_protobuf_messages.proto.messages.SessionOpenRequest} returns this
 */
proto.game_protobuf_messages.proto.messages.SessionOpenRequest.prototype.setProtocolVersion = function(
  value
) {
  return jspb.Message.setProto3StringField(this, 5, value);
};

/**
 * optional int64 t = 6;
 * @return {number}
 */
proto.game_protobuf_messages.proto.messages.SessionOpenRequest.prototype.getT = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0));
};

/**
 * @param {number} value
 * @return {!proto.game_protobuf_messages.proto.messages.SessionOpenRequest} returns this
 */
proto.game_protobuf_messages.proto.messages.SessionOpenRequest.prototype.setT = function(
  value
) {
  return jspb.Message.setProto3IntField(this, 6, value);
};

/**
 * optional string n = 7;
 * @return {string}
 */
proto.game_protobuf_messages.proto.messages.SessionOpenRequest.prototype.getN = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, ''));
};

/**
 * @param {string} value
 * @return {!proto.game_protobuf_messages.proto.messages.SessionOpenRequest} returns this
 */
proto.game_protobuf_messages.proto.messages.SessionOpenRequest.prototype.setN = function(
  value
) {
  return jspb.Message.setProto3StringField(this, 7, value);
};

/**
 * optional string s = 8;
 * @return {string}
 */
proto.game_protobuf_messages.proto.messages.SessionOpenRequest.prototype.getS = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, ''));
};

/**
 * @param {string} value
 * @return {!proto.game_protobuf_messages.proto.messages.SessionOpenRequest} returns this
 */
proto.game_protobuf_messages.proto.messages.SessionOpenRequest.prototype.setS = function(
  value
) {
  return jspb.Message.setProto3StringField(this, 8, value);
};

/**
 * optional int64 config_bitmap = 9;
 * @return {number}
 */
proto.game_protobuf_messages.proto.messages.SessionOpenRequest.prototype.getConfigBitmap = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 9, 0));
};

/**
 * @param {number} value
 * @return {!proto.game_protobuf_messages.proto.messages.SessionOpenRequest} returns this
 */
proto.game_protobuf_messages.proto.messages.SessionOpenRequest.prototype.setConfigBitmap = function(
  value
) {
  return jspb.Message.setProto3IntField(this, 9, value);
};

/**
 * optional string session_token = 10;
 * @return {string}
 */
proto.game_protobuf_messages.proto.messages.SessionOpenRequest.prototype.getSessionToken = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 10, ''));
};

/**
 * @param {string} value
 * @return {!proto.game_protobuf_messages.proto.messages.SessionOpenRequest} returns this
 */
proto.game_protobuf_messages.proto.messages.SessionOpenRequest.prototype.setSessionToken = function(
  value
) {
  return jspb.Message.setProto3StringField(this, 10, value);
};

if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game_protobuf_messages.proto.messages.CreateRoomRequest.prototype.toObject = function(
    opt_includeInstance
  ) {
    return proto.game_protobuf_messages.proto.messages.CreateRoomRequest.toObject(
      opt_includeInstance,
      this
    );
  };

  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game_protobuf_messages.proto.messages.CreateRoomRequest} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.game_protobuf_messages.proto.messages.CreateRoomRequest.toObject = function(
    includeInstance,
    msg
  ) {
    var f,
      obj = {
        roomOptions:
          (f = msg.getRoomOptions()) &&
          proto.game_protobuf_messages.proto.messages.RoomOptions.toObject(
            includeInstance,
            f
          ),
      };

    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
}

/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.game_protobuf_messages.proto.messages.CreateRoomRequest}
 */
proto.game_protobuf_messages.proto.messages.CreateRoomRequest.deserializeBinary = function(
  bytes
) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.game_protobuf_messages.proto.messages.CreateRoomRequest();
  return proto.game_protobuf_messages.proto.messages.CreateRoomRequest.deserializeBinaryFromReader(
    msg,
    reader
  );
};

/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.game_protobuf_messages.proto.messages.CreateRoomRequest} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.game_protobuf_messages.proto.messages.CreateRoomRequest}
 */
proto.game_protobuf_messages.proto.messages.CreateRoomRequest.deserializeBinaryFromReader = function(
  msg,
  reader
) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
      case 1:
        var value = new proto.game_protobuf_messages.proto.messages.RoomOptions();
        reader.readMessage(
          value,
          proto.game_protobuf_messages.proto.messages.RoomOptions
            .deserializeBinaryFromReader
        );
        msg.setRoomOptions(value);
        break;
      default:
        reader.skipField();
        break;
    }
  }
  return msg;
};

/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.game_protobuf_messages.proto.messages.CreateRoomRequest.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.game_protobuf_messages.proto.messages.CreateRoomRequest.serializeBinaryToWriter(
    this,
    writer
  );
  return writer.getResultBuffer();
};

/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.game_protobuf_messages.proto.messages.CreateRoomRequest} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.game_protobuf_messages.proto.messages.CreateRoomRequest.serializeBinaryToWriter = function(
  message,
  writer
) {
  var f = undefined;
  f = message.getRoomOptions();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      proto.game_protobuf_messages.proto.messages.RoomOptions
        .serializeBinaryToWriter
    );
  }
};

/**
 * optional RoomOptions room_options = 1;
 * @return {?proto.game_protobuf_messages.proto.messages.RoomOptions}
 */
proto.game_protobuf_messages.proto.messages.CreateRoomRequest.prototype.getRoomOptions = function() {
  return /** @type{?proto.game_protobuf_messages.proto.messages.RoomOptions} */ (jspb.Message.getWrapperField(
    this,
    proto.game_protobuf_messages.proto.messages.RoomOptions,
    1
  ));
};

/**
 * @param {?proto.game_protobuf_messages.proto.messages.RoomOptions|undefined} value
 * @return {!proto.game_protobuf_messages.proto.messages.CreateRoomRequest} returns this
 */
proto.game_protobuf_messages.proto.messages.CreateRoomRequest.prototype.setRoomOptions = function(
  value
) {
  return jspb.Message.setWrapperField(this, 1, value);
};

/**
 * Clears the message field making it undefined.
 * @return {!proto.game_protobuf_messages.proto.messages.CreateRoomRequest} returns this
 */
proto.game_protobuf_messages.proto.messages.CreateRoomRequest.prototype.clearRoomOptions = function() {
  return this.setRoomOptions(undefined);
};

/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.game_protobuf_messages.proto.messages.CreateRoomRequest.prototype.hasRoomOptions = function() {
  return jspb.Message.getField(this, 1) != null;
};

if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game_protobuf_messages.proto.messages.CreateRoomResponse.prototype.toObject = function(
    opt_includeInstance
  ) {
    return proto.game_protobuf_messages.proto.messages.CreateRoomResponse.toObject(
      opt_includeInstance,
      this
    );
  };

  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game_protobuf_messages.proto.messages.CreateRoomResponse} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.game_protobuf_messages.proto.messages.CreateRoomResponse.toObject = function(
    includeInstance,
    msg
  ) {
    var f,
      obj = {
        roomOptions:
          (f = msg.getRoomOptions()) &&
          proto.game_protobuf_messages.proto.messages.RoomOptions.toObject(
            includeInstance,
            f
          ),
        addr: jspb.Message.getFieldWithDefault(msg, 2, ''),
        roomCreated: jspb.Message.getBooleanFieldWithDefault(msg, 3, false),
      };

    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
}

/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.game_protobuf_messages.proto.messages.CreateRoomResponse}
 */
proto.game_protobuf_messages.proto.messages.CreateRoomResponse.deserializeBinary = function(
  bytes
) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.game_protobuf_messages.proto.messages.CreateRoomResponse();
  return proto.game_protobuf_messages.proto.messages.CreateRoomResponse.deserializeBinaryFromReader(
    msg,
    reader
  );
};

/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.game_protobuf_messages.proto.messages.CreateRoomResponse} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.game_protobuf_messages.proto.messages.CreateRoomResponse}
 */
proto.game_protobuf_messages.proto.messages.CreateRoomResponse.deserializeBinaryFromReader = function(
  msg,
  reader
) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
      case 1:
        var value = new proto.game_protobuf_messages.proto.messages.RoomOptions();
        reader.readMessage(
          value,
          proto.game_protobuf_messages.proto.messages.RoomOptions
            .deserializeBinaryFromReader
        );
        msg.setRoomOptions(value);
        break;
      case 2:
        var value = /** @type {string} */ (reader.readString());
        msg.setAddr(value);
        break;
      case 3:
        var value = /** @type {boolean} */ (reader.readBool());
        msg.setRoomCreated(value);
        break;
      default:
        reader.skipField();
        break;
    }
  }
  return msg;
};

/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.game_protobuf_messages.proto.messages.CreateRoomResponse.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.game_protobuf_messages.proto.messages.CreateRoomResponse.serializeBinaryToWriter(
    this,
    writer
  );
  return writer.getResultBuffer();
};

/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.game_protobuf_messages.proto.messages.CreateRoomResponse} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.game_protobuf_messages.proto.messages.CreateRoomResponse.serializeBinaryToWriter = function(
  message,
  writer
) {
  var f = undefined;
  f = message.getRoomOptions();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      proto.game_protobuf_messages.proto.messages.RoomOptions
        .serializeBinaryToWriter
    );
  }
  f = message.getAddr();
  if (f.length > 0) {
    writer.writeString(2, f);
  }
  f = message.getRoomCreated();
  if (f) {
    writer.writeBool(3, f);
  }
};

/**
 * optional RoomOptions room_options = 1;
 * @return {?proto.game_protobuf_messages.proto.messages.RoomOptions}
 */
proto.game_protobuf_messages.proto.messages.CreateRoomResponse.prototype.getRoomOptions = function() {
  return /** @type{?proto.game_protobuf_messages.proto.messages.RoomOptions} */ (jspb.Message.getWrapperField(
    this,
    proto.game_protobuf_messages.proto.messages.RoomOptions,
    1
  ));
};

/**
 * @param {?proto.game_protobuf_messages.proto.messages.RoomOptions|undefined} value
 * @return {!proto.game_protobuf_messages.proto.messages.CreateRoomResponse} returns this
 */
proto.game_protobuf_messages.proto.messages.CreateRoomResponse.prototype.setRoomOptions = function(
  value
) {
  return jspb.Message.setWrapperField(this, 1, value);
};

/**
 * Clears the message field making it undefined.
 * @return {!proto.game_protobuf_messages.proto.messages.CreateRoomResponse} returns this
 */
proto.game_protobuf_messages.proto.messages.CreateRoomResponse.prototype.clearRoomOptions = function() {
  return this.setRoomOptions(undefined);
};

/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.game_protobuf_messages.proto.messages.CreateRoomResponse.prototype.hasRoomOptions = function() {
  return jspb.Message.getField(this, 1) != null;
};

/**
 * optional string addr = 2;
 * @return {string}
 */
proto.game_protobuf_messages.proto.messages.CreateRoomResponse.prototype.getAddr = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ''));
};

/**
 * @param {string} value
 * @return {!proto.game_protobuf_messages.proto.messages.CreateRoomResponse} returns this
 */
proto.game_protobuf_messages.proto.messages.CreateRoomResponse.prototype.setAddr = function(
  value
) {
  return jspb.Message.setProto3StringField(this, 2, value);
};

/**
 * optional bool room_created = 3;
 * @return {boolean}
 */
proto.game_protobuf_messages.proto.messages.CreateRoomResponse.prototype.getRoomCreated = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(
    this,
    3,
    false
  ));
};

/**
 * @param {boolean} value
 * @return {!proto.game_protobuf_messages.proto.messages.CreateRoomResponse} returns this
 */
proto.game_protobuf_messages.proto.messages.CreateRoomResponse.prototype.setRoomCreated = function(
  value
) {
  return jspb.Message.setProto3BooleanField(this, 3, value);
};

if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game_protobuf_messages.proto.messages.JoinRoomRequest.prototype.toObject = function(
    opt_includeInstance
  ) {
    return proto.game_protobuf_messages.proto.messages.JoinRoomRequest.toObject(
      opt_includeInstance,
      this
    );
  };

  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game_protobuf_messages.proto.messages.JoinRoomRequest} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.game_protobuf_messages.proto.messages.JoinRoomRequest.toObject = function(
    includeInstance,
    msg
  ) {
    var f,
      obj = {
        rejoin: jspb.Message.getBooleanFieldWithDefault(msg, 1, false),
        roomOptions:
          (f = msg.getRoomOptions()) &&
          proto.game_protobuf_messages.proto.messages.RoomOptions.toObject(
            includeInstance,
            f
          ),
        expectAttr: msg.getExpectAttr_asB64(),
        piggybackPeerId: jspb.Message.getFieldWithDefault(msg, 4, ''),
        createOnNotFound: jspb.Message.getBooleanFieldWithDefault(
          msg,
          5,
          false
        ),
      };

    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
}

/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.game_protobuf_messages.proto.messages.JoinRoomRequest}
 */
proto.game_protobuf_messages.proto.messages.JoinRoomRequest.deserializeBinary = function(
  bytes
) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.game_protobuf_messages.proto.messages.JoinRoomRequest();
  return proto.game_protobuf_messages.proto.messages.JoinRoomRequest.deserializeBinaryFromReader(
    msg,
    reader
  );
};

/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.game_protobuf_messages.proto.messages.JoinRoomRequest} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.game_protobuf_messages.proto.messages.JoinRoomRequest}
 */
proto.game_protobuf_messages.proto.messages.JoinRoomRequest.deserializeBinaryFromReader = function(
  msg,
  reader
) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
      case 1:
        var value = /** @type {boolean} */ (reader.readBool());
        msg.setRejoin(value);
        break;
      case 2:
        var value = new proto.game_protobuf_messages.proto.messages.RoomOptions();
        reader.readMessage(
          value,
          proto.game_protobuf_messages.proto.messages.RoomOptions
            .deserializeBinaryFromReader
        );
        msg.setRoomOptions(value);
        break;
      case 3:
        var value = /** @type {!Uint8Array} */ (reader.readBytes());
        msg.setExpectAttr(value);
        break;
      case 4:
        var value = /** @type {string} */ (reader.readString());
        msg.setPiggybackPeerId(value);
        break;
      case 5:
        var value = /** @type {boolean} */ (reader.readBool());
        msg.setCreateOnNotFound(value);
        break;
      default:
        reader.skipField();
        break;
    }
  }
  return msg;
};

/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.game_protobuf_messages.proto.messages.JoinRoomRequest.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.game_protobuf_messages.proto.messages.JoinRoomRequest.serializeBinaryToWriter(
    this,
    writer
  );
  return writer.getResultBuffer();
};

/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.game_protobuf_messages.proto.messages.JoinRoomRequest} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.game_protobuf_messages.proto.messages.JoinRoomRequest.serializeBinaryToWriter = function(
  message,
  writer
) {
  var f = undefined;
  f = message.getRejoin();
  if (f) {
    writer.writeBool(1, f);
  }
  f = message.getRoomOptions();
  if (f != null) {
    writer.writeMessage(
      2,
      f,
      proto.game_protobuf_messages.proto.messages.RoomOptions
        .serializeBinaryToWriter
    );
  }
  f = message.getExpectAttr_asU8();
  if (f.length > 0) {
    writer.writeBytes(3, f);
  }
  f = message.getPiggybackPeerId();
  if (f.length > 0) {
    writer.writeString(4, f);
  }
  f = message.getCreateOnNotFound();
  if (f) {
    writer.writeBool(5, f);
  }
};

/**
 * optional bool rejoin = 1;
 * @return {boolean}
 */
proto.game_protobuf_messages.proto.messages.JoinRoomRequest.prototype.getRejoin = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(
    this,
    1,
    false
  ));
};

/**
 * @param {boolean} value
 * @return {!proto.game_protobuf_messages.proto.messages.JoinRoomRequest} returns this
 */
proto.game_protobuf_messages.proto.messages.JoinRoomRequest.prototype.setRejoin = function(
  value
) {
  return jspb.Message.setProto3BooleanField(this, 1, value);
};

/**
 * optional RoomOptions room_options = 2;
 * @return {?proto.game_protobuf_messages.proto.messages.RoomOptions}
 */
proto.game_protobuf_messages.proto.messages.JoinRoomRequest.prototype.getRoomOptions = function() {
  return /** @type{?proto.game_protobuf_messages.proto.messages.RoomOptions} */ (jspb.Message.getWrapperField(
    this,
    proto.game_protobuf_messages.proto.messages.RoomOptions,
    2
  ));
};

/**
 * @param {?proto.game_protobuf_messages.proto.messages.RoomOptions|undefined} value
 * @return {!proto.game_protobuf_messages.proto.messages.JoinRoomRequest} returns this
 */
proto.game_protobuf_messages.proto.messages.JoinRoomRequest.prototype.setRoomOptions = function(
  value
) {
  return jspb.Message.setWrapperField(this, 2, value);
};

/**
 * Clears the message field making it undefined.
 * @return {!proto.game_protobuf_messages.proto.messages.JoinRoomRequest} returns this
 */
proto.game_protobuf_messages.proto.messages.JoinRoomRequest.prototype.clearRoomOptions = function() {
  return this.setRoomOptions(undefined);
};

/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.game_protobuf_messages.proto.messages.JoinRoomRequest.prototype.hasRoomOptions = function() {
  return jspb.Message.getField(this, 2) != null;
};

/**
 * optional bytes expect_attr = 3;
 * @return {!(string|Uint8Array)}
 */
proto.game_protobuf_messages.proto.messages.JoinRoomRequest.prototype.getExpectAttr = function() {
  return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(
    this,
    3,
    ''
  ));
};

/**
 * optional bytes expect_attr = 3;
 * This is a type-conversion wrapper around `getExpectAttr()`
 * @return {string}
 */
proto.game_protobuf_messages.proto.messages.JoinRoomRequest.prototype.getExpectAttr_asB64 = function() {
  return /** @type {string} */ (jspb.Message.bytesAsB64(this.getExpectAttr()));
};

/**
 * optional bytes expect_attr = 3;
 * Note that Uint8Array is not supported on all browsers.
 * @see http://caniuse.com/Uint8Array
 * This is a type-conversion wrapper around `getExpectAttr()`
 * @return {!Uint8Array}
 */
proto.game_protobuf_messages.proto.messages.JoinRoomRequest.prototype.getExpectAttr_asU8 = function() {
  return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(
    this.getExpectAttr()
  ));
};

/**
 * @param {!(string|Uint8Array)} value
 * @return {!proto.game_protobuf_messages.proto.messages.JoinRoomRequest} returns this
 */
proto.game_protobuf_messages.proto.messages.JoinRoomRequest.prototype.setExpectAttr = function(
  value
) {
  return jspb.Message.setProto3BytesField(this, 3, value);
};

/**
 * optional string piggyback_peer_id = 4;
 * @return {string}
 */
proto.game_protobuf_messages.proto.messages.JoinRoomRequest.prototype.getPiggybackPeerId = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ''));
};

/**
 * @param {string} value
 * @return {!proto.game_protobuf_messages.proto.messages.JoinRoomRequest} returns this
 */
proto.game_protobuf_messages.proto.messages.JoinRoomRequest.prototype.setPiggybackPeerId = function(
  value
) {
  return jspb.Message.setProto3StringField(this, 4, value);
};

/**
 * optional bool create_on_not_found = 5;
 * @return {boolean}
 */
proto.game_protobuf_messages.proto.messages.JoinRoomRequest.prototype.getCreateOnNotFound = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(
    this,
    5,
    false
  ));
};

/**
 * @param {boolean} value
 * @return {!proto.game_protobuf_messages.proto.messages.JoinRoomRequest} returns this
 */
proto.game_protobuf_messages.proto.messages.JoinRoomRequest.prototype.setCreateOnNotFound = function(
  value
) {
  return jspb.Message.setProto3BooleanField(this, 5, value);
};

if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game_protobuf_messages.proto.messages.JoinRoomResponse.prototype.toObject = function(
    opt_includeInstance
  ) {
    return proto.game_protobuf_messages.proto.messages.JoinRoomResponse.toObject(
      opt_includeInstance,
      this
    );
  };

  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game_protobuf_messages.proto.messages.JoinRoomResponse} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.game_protobuf_messages.proto.messages.JoinRoomResponse.toObject = function(
    includeInstance,
    msg
  ) {
    var f,
      obj = {
        roomOptions:
          (f = msg.getRoomOptions()) &&
          proto.game_protobuf_messages.proto.messages.RoomOptions.toObject(
            includeInstance,
            f
          ),
        addr: jspb.Message.getFieldWithDefault(msg, 2, ''),
      };

    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
}

/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.game_protobuf_messages.proto.messages.JoinRoomResponse}
 */
proto.game_protobuf_messages.proto.messages.JoinRoomResponse.deserializeBinary = function(
  bytes
) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.game_protobuf_messages.proto.messages.JoinRoomResponse();
  return proto.game_protobuf_messages.proto.messages.JoinRoomResponse.deserializeBinaryFromReader(
    msg,
    reader
  );
};

/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.game_protobuf_messages.proto.messages.JoinRoomResponse} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.game_protobuf_messages.proto.messages.JoinRoomResponse}
 */
proto.game_protobuf_messages.proto.messages.JoinRoomResponse.deserializeBinaryFromReader = function(
  msg,
  reader
) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
      case 1:
        var value = new proto.game_protobuf_messages.proto.messages.RoomOptions();
        reader.readMessage(
          value,
          proto.game_protobuf_messages.proto.messages.RoomOptions
            .deserializeBinaryFromReader
        );
        msg.setRoomOptions(value);
        break;
      case 2:
        var value = /** @type {string} */ (reader.readString());
        msg.setAddr(value);
        break;
      default:
        reader.skipField();
        break;
    }
  }
  return msg;
};

/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.game_protobuf_messages.proto.messages.JoinRoomResponse.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.game_protobuf_messages.proto.messages.JoinRoomResponse.serializeBinaryToWriter(
    this,
    writer
  );
  return writer.getResultBuffer();
};

/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.game_protobuf_messages.proto.messages.JoinRoomResponse} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.game_protobuf_messages.proto.messages.JoinRoomResponse.serializeBinaryToWriter = function(
  message,
  writer
) {
  var f = undefined;
  f = message.getRoomOptions();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      proto.game_protobuf_messages.proto.messages.RoomOptions
        .serializeBinaryToWriter
    );
  }
  f = message.getAddr();
  if (f.length > 0) {
    writer.writeString(2, f);
  }
};

/**
 * optional RoomOptions room_options = 1;
 * @return {?proto.game_protobuf_messages.proto.messages.RoomOptions}
 */
proto.game_protobuf_messages.proto.messages.JoinRoomResponse.prototype.getRoomOptions = function() {
  return /** @type{?proto.game_protobuf_messages.proto.messages.RoomOptions} */ (jspb.Message.getWrapperField(
    this,
    proto.game_protobuf_messages.proto.messages.RoomOptions,
    1
  ));
};

/**
 * @param {?proto.game_protobuf_messages.proto.messages.RoomOptions|undefined} value
 * @return {!proto.game_protobuf_messages.proto.messages.JoinRoomResponse} returns this
 */
proto.game_protobuf_messages.proto.messages.JoinRoomResponse.prototype.setRoomOptions = function(
  value
) {
  return jspb.Message.setWrapperField(this, 1, value);
};

/**
 * Clears the message field making it undefined.
 * @return {!proto.game_protobuf_messages.proto.messages.JoinRoomResponse} returns this
 */
proto.game_protobuf_messages.proto.messages.JoinRoomResponse.prototype.clearRoomOptions = function() {
  return this.setRoomOptions(undefined);
};

/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.game_protobuf_messages.proto.messages.JoinRoomResponse.prototype.hasRoomOptions = function() {
  return jspb.Message.getField(this, 1) != null;
};

/**
 * optional string addr = 2;
 * @return {string}
 */
proto.game_protobuf_messages.proto.messages.JoinRoomResponse.prototype.getAddr = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ''));
};

/**
 * @param {string} value
 * @return {!proto.game_protobuf_messages.proto.messages.JoinRoomResponse} returns this
 */
proto.game_protobuf_messages.proto.messages.JoinRoomResponse.prototype.setAddr = function(
  value
) {
  return jspb.Message.setProto3StringField(this, 2, value);
};

if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game_protobuf_messages.proto.messages.JoinRoomNotification.prototype.toObject = function(
    opt_includeInstance
  ) {
    return proto.game_protobuf_messages.proto.messages.JoinRoomNotification.toObject(
      opt_includeInstance,
      this
    );
  };

  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game_protobuf_messages.proto.messages.JoinRoomNotification} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.game_protobuf_messages.proto.messages.JoinRoomNotification.toObject = function(
    includeInstance,
    msg
  ) {
    var f,
      obj = {
        member:
          (f = msg.getMember()) &&
          proto.game_protobuf_messages.proto.messages.RoomMember.toObject(
            includeInstance,
            f
          ),
      };

    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
}

/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.game_protobuf_messages.proto.messages.JoinRoomNotification}
 */
proto.game_protobuf_messages.proto.messages.JoinRoomNotification.deserializeBinary = function(
  bytes
) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.game_protobuf_messages.proto.messages.JoinRoomNotification();
  return proto.game_protobuf_messages.proto.messages.JoinRoomNotification.deserializeBinaryFromReader(
    msg,
    reader
  );
};

/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.game_protobuf_messages.proto.messages.JoinRoomNotification} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.game_protobuf_messages.proto.messages.JoinRoomNotification}
 */
proto.game_protobuf_messages.proto.messages.JoinRoomNotification.deserializeBinaryFromReader = function(
  msg,
  reader
) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
      case 1:
        var value = new proto.game_protobuf_messages.proto.messages.RoomMember();
        reader.readMessage(
          value,
          proto.game_protobuf_messages.proto.messages.RoomMember
            .deserializeBinaryFromReader
        );
        msg.setMember(value);
        break;
      default:
        reader.skipField();
        break;
    }
  }
  return msg;
};

/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.game_protobuf_messages.proto.messages.JoinRoomNotification.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.game_protobuf_messages.proto.messages.JoinRoomNotification.serializeBinaryToWriter(
    this,
    writer
  );
  return writer.getResultBuffer();
};

/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.game_protobuf_messages.proto.messages.JoinRoomNotification} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.game_protobuf_messages.proto.messages.JoinRoomNotification.serializeBinaryToWriter = function(
  message,
  writer
) {
  var f = undefined;
  f = message.getMember();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      proto.game_protobuf_messages.proto.messages.RoomMember
        .serializeBinaryToWriter
    );
  }
};

/**
 * optional RoomMember member = 1;
 * @return {?proto.game_protobuf_messages.proto.messages.RoomMember}
 */
proto.game_protobuf_messages.proto.messages.JoinRoomNotification.prototype.getMember = function() {
  return /** @type{?proto.game_protobuf_messages.proto.messages.RoomMember} */ (jspb.Message.getWrapperField(
    this,
    proto.game_protobuf_messages.proto.messages.RoomMember,
    1
  ));
};

/**
 * @param {?proto.game_protobuf_messages.proto.messages.RoomMember|undefined} value
 * @return {!proto.game_protobuf_messages.proto.messages.JoinRoomNotification} returns this
 */
proto.game_protobuf_messages.proto.messages.JoinRoomNotification.prototype.setMember = function(
  value
) {
  return jspb.Message.setWrapperField(this, 1, value);
};

/**
 * Clears the message field making it undefined.
 * @return {!proto.game_protobuf_messages.proto.messages.JoinRoomNotification} returns this
 */
proto.game_protobuf_messages.proto.messages.JoinRoomNotification.prototype.clearMember = function() {
  return this.setMember(undefined);
};

/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.game_protobuf_messages.proto.messages.JoinRoomNotification.prototype.hasMember = function() {
  return jspb.Message.getField(this, 1) != null;
};

if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game_protobuf_messages.proto.messages.LeftRoomNotification.prototype.toObject = function(
    opt_includeInstance
  ) {
    return proto.game_protobuf_messages.proto.messages.LeftRoomNotification.toObject(
      opt_includeInstance,
      this
    );
  };

  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game_protobuf_messages.proto.messages.LeftRoomNotification} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.game_protobuf_messages.proto.messages.LeftRoomNotification.toObject = function(
    includeInstance,
    msg
  ) {
    var f,
      obj = {
        actorId: jspb.Message.getFieldWithDefault(msg, 1, 0),
      };

    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
}

/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.game_protobuf_messages.proto.messages.LeftRoomNotification}
 */
proto.game_protobuf_messages.proto.messages.LeftRoomNotification.deserializeBinary = function(
  bytes
) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.game_protobuf_messages.proto.messages.LeftRoomNotification();
  return proto.game_protobuf_messages.proto.messages.LeftRoomNotification.deserializeBinaryFromReader(
    msg,
    reader
  );
};

/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.game_protobuf_messages.proto.messages.LeftRoomNotification} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.game_protobuf_messages.proto.messages.LeftRoomNotification}
 */
proto.game_protobuf_messages.proto.messages.LeftRoomNotification.deserializeBinaryFromReader = function(
  msg,
  reader
) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
      case 1:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setActorId(value);
        break;
      default:
        reader.skipField();
        break;
    }
  }
  return msg;
};

/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.game_protobuf_messages.proto.messages.LeftRoomNotification.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.game_protobuf_messages.proto.messages.LeftRoomNotification.serializeBinaryToWriter(
    this,
    writer
  );
  return writer.getResultBuffer();
};

/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.game_protobuf_messages.proto.messages.LeftRoomNotification} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.game_protobuf_messages.proto.messages.LeftRoomNotification.serializeBinaryToWriter = function(
  message,
  writer
) {
  var f = undefined;
  f = message.getActorId();
  if (f !== 0) {
    writer.writeInt32(1, f);
  }
};

/**
 * optional int32 actor_id = 1;
 * @return {number}
 */
proto.game_protobuf_messages.proto.messages.LeftRoomNotification.prototype.getActorId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};

/**
 * @param {number} value
 * @return {!proto.game_protobuf_messages.proto.messages.LeftRoomNotification} returns this
 */
proto.game_protobuf_messages.proto.messages.LeftRoomNotification.prototype.setActorId = function(
  value
) {
  return jspb.Message.setProto3IntField(this, 1, value);
};

if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game_protobuf_messages.proto.messages.KickMemberRequest.prototype.toObject = function(
    opt_includeInstance
  ) {
    return proto.game_protobuf_messages.proto.messages.KickMemberRequest.toObject(
      opt_includeInstance,
      this
    );
  };

  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game_protobuf_messages.proto.messages.KickMemberRequest} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.game_protobuf_messages.proto.messages.KickMemberRequest.toObject = function(
    includeInstance,
    msg
  ) {
    var f,
      obj = {
        targetActorId: jspb.Message.getFieldWithDefault(msg, 1, 0),
        appInfo:
          (f = msg.getAppInfo()) &&
          proto.game_protobuf_messages.proto.messages.AppInfo.toObject(
            includeInstance,
            f
          ),
      };

    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
}

/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.game_protobuf_messages.proto.messages.KickMemberRequest}
 */
proto.game_protobuf_messages.proto.messages.KickMemberRequest.deserializeBinary = function(
  bytes
) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.game_protobuf_messages.proto.messages.KickMemberRequest();
  return proto.game_protobuf_messages.proto.messages.KickMemberRequest.deserializeBinaryFromReader(
    msg,
    reader
  );
};

/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.game_protobuf_messages.proto.messages.KickMemberRequest} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.game_protobuf_messages.proto.messages.KickMemberRequest}
 */
proto.game_protobuf_messages.proto.messages.KickMemberRequest.deserializeBinaryFromReader = function(
  msg,
  reader
) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
      case 1:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setTargetActorId(value);
        break;
      case 2:
        var value = new proto.game_protobuf_messages.proto.messages.AppInfo();
        reader.readMessage(
          value,
          proto.game_protobuf_messages.proto.messages.AppInfo
            .deserializeBinaryFromReader
        );
        msg.setAppInfo(value);
        break;
      default:
        reader.skipField();
        break;
    }
  }
  return msg;
};

/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.game_protobuf_messages.proto.messages.KickMemberRequest.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.game_protobuf_messages.proto.messages.KickMemberRequest.serializeBinaryToWriter(
    this,
    writer
  );
  return writer.getResultBuffer();
};

/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.game_protobuf_messages.proto.messages.KickMemberRequest} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.game_protobuf_messages.proto.messages.KickMemberRequest.serializeBinaryToWriter = function(
  message,
  writer
) {
  var f = undefined;
  f = message.getTargetActorId();
  if (f !== 0) {
    writer.writeInt32(1, f);
  }
  f = message.getAppInfo();
  if (f != null) {
    writer.writeMessage(
      2,
      f,
      proto.game_protobuf_messages.proto.messages.AppInfo
        .serializeBinaryToWriter
    );
  }
};

/**
 * optional int32 target_actor_id = 1;
 * @return {number}
 */
proto.game_protobuf_messages.proto.messages.KickMemberRequest.prototype.getTargetActorId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};

/**
 * @param {number} value
 * @return {!proto.game_protobuf_messages.proto.messages.KickMemberRequest} returns this
 */
proto.game_protobuf_messages.proto.messages.KickMemberRequest.prototype.setTargetActorId = function(
  value
) {
  return jspb.Message.setProto3IntField(this, 1, value);
};

/**
 * optional AppInfo app_info = 2;
 * @return {?proto.game_protobuf_messages.proto.messages.AppInfo}
 */
proto.game_protobuf_messages.proto.messages.KickMemberRequest.prototype.getAppInfo = function() {
  return /** @type{?proto.game_protobuf_messages.proto.messages.AppInfo} */ (jspb.Message.getWrapperField(
    this,
    proto.game_protobuf_messages.proto.messages.AppInfo,
    2
  ));
};

/**
 * @param {?proto.game_protobuf_messages.proto.messages.AppInfo|undefined} value
 * @return {!proto.game_protobuf_messages.proto.messages.KickMemberRequest} returns this
 */
proto.game_protobuf_messages.proto.messages.KickMemberRequest.prototype.setAppInfo = function(
  value
) {
  return jspb.Message.setWrapperField(this, 2, value);
};

/**
 * Clears the message field making it undefined.
 * @return {!proto.game_protobuf_messages.proto.messages.KickMemberRequest} returns this
 */
proto.game_protobuf_messages.proto.messages.KickMemberRequest.prototype.clearAppInfo = function() {
  return this.setAppInfo(undefined);
};

/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.game_protobuf_messages.proto.messages.KickMemberRequest.prototype.hasAppInfo = function() {
  return jspb.Message.getField(this, 2) != null;
};

if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game_protobuf_messages.proto.messages.KickMemberResponse.prototype.toObject = function(
    opt_includeInstance
  ) {
    return proto.game_protobuf_messages.proto.messages.KickMemberResponse.toObject(
      opt_includeInstance,
      this
    );
  };

  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game_protobuf_messages.proto.messages.KickMemberResponse} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.game_protobuf_messages.proto.messages.KickMemberResponse.toObject = function(
    includeInstance,
    msg
  ) {
    var f,
      obj = {
        targetActorId: jspb.Message.getFieldWithDefault(msg, 1, 0),
      };

    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
}

/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.game_protobuf_messages.proto.messages.KickMemberResponse}
 */
proto.game_protobuf_messages.proto.messages.KickMemberResponse.deserializeBinary = function(
  bytes
) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.game_protobuf_messages.proto.messages.KickMemberResponse();
  return proto.game_protobuf_messages.proto.messages.KickMemberResponse.deserializeBinaryFromReader(
    msg,
    reader
  );
};

/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.game_protobuf_messages.proto.messages.KickMemberResponse} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.game_protobuf_messages.proto.messages.KickMemberResponse}
 */
proto.game_protobuf_messages.proto.messages.KickMemberResponse.deserializeBinaryFromReader = function(
  msg,
  reader
) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
      case 1:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setTargetActorId(value);
        break;
      default:
        reader.skipField();
        break;
    }
  }
  return msg;
};

/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.game_protobuf_messages.proto.messages.KickMemberResponse.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.game_protobuf_messages.proto.messages.KickMemberResponse.serializeBinaryToWriter(
    this,
    writer
  );
  return writer.getResultBuffer();
};

/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.game_protobuf_messages.proto.messages.KickMemberResponse} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.game_protobuf_messages.proto.messages.KickMemberResponse.serializeBinaryToWriter = function(
  message,
  writer
) {
  var f = undefined;
  f = message.getTargetActorId();
  if (f !== 0) {
    writer.writeInt32(1, f);
  }
};

/**
 * optional int32 target_actor_id = 1;
 * @return {number}
 */
proto.game_protobuf_messages.proto.messages.KickMemberResponse.prototype.getTargetActorId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};

/**
 * @param {number} value
 * @return {!proto.game_protobuf_messages.proto.messages.KickMemberResponse} returns this
 */
proto.game_protobuf_messages.proto.messages.KickMemberResponse.prototype.setTargetActorId = function(
  value
) {
  return jspb.Message.setProto3IntField(this, 1, value);
};

if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game_protobuf_messages.proto.messages.UpdatePropertyRequest.prototype.toObject = function(
    opt_includeInstance
  ) {
    return proto.game_protobuf_messages.proto.messages.UpdatePropertyRequest.toObject(
      opt_includeInstance,
      this
    );
  };

  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game_protobuf_messages.proto.messages.UpdatePropertyRequest} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.game_protobuf_messages.proto.messages.UpdatePropertyRequest.toObject = function(
    includeInstance,
    msg
  ) {
    var f,
      obj = {
        targetActorId: jspb.Message.getFieldWithDefault(msg, 1, 0),
        expectAttr: msg.getExpectAttr_asB64(),
        attr: msg.getAttr_asB64(),
      };

    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
}

/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.game_protobuf_messages.proto.messages.UpdatePropertyRequest}
 */
proto.game_protobuf_messages.proto.messages.UpdatePropertyRequest.deserializeBinary = function(
  bytes
) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.game_protobuf_messages.proto.messages.UpdatePropertyRequest();
  return proto.game_protobuf_messages.proto.messages.UpdatePropertyRequest.deserializeBinaryFromReader(
    msg,
    reader
  );
};

/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.game_protobuf_messages.proto.messages.UpdatePropertyRequest} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.game_protobuf_messages.proto.messages.UpdatePropertyRequest}
 */
proto.game_protobuf_messages.proto.messages.UpdatePropertyRequest.deserializeBinaryFromReader = function(
  msg,
  reader
) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
      case 1:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setTargetActorId(value);
        break;
      case 2:
        var value = /** @type {!Uint8Array} */ (reader.readBytes());
        msg.setExpectAttr(value);
        break;
      case 3:
        var value = /** @type {!Uint8Array} */ (reader.readBytes());
        msg.setAttr(value);
        break;
      default:
        reader.skipField();
        break;
    }
  }
  return msg;
};

/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.game_protobuf_messages.proto.messages.UpdatePropertyRequest.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.game_protobuf_messages.proto.messages.UpdatePropertyRequest.serializeBinaryToWriter(
    this,
    writer
  );
  return writer.getResultBuffer();
};

/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.game_protobuf_messages.proto.messages.UpdatePropertyRequest} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.game_protobuf_messages.proto.messages.UpdatePropertyRequest.serializeBinaryToWriter = function(
  message,
  writer
) {
  var f = undefined;
  f = message.getTargetActorId();
  if (f !== 0) {
    writer.writeInt32(1, f);
  }
  f = message.getExpectAttr_asU8();
  if (f.length > 0) {
    writer.writeBytes(2, f);
  }
  f = message.getAttr_asU8();
  if (f.length > 0) {
    writer.writeBytes(3, f);
  }
};

/**
 * optional int32 target_actor_id = 1;
 * @return {number}
 */
proto.game_protobuf_messages.proto.messages.UpdatePropertyRequest.prototype.getTargetActorId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};

/**
 * @param {number} value
 * @return {!proto.game_protobuf_messages.proto.messages.UpdatePropertyRequest} returns this
 */
proto.game_protobuf_messages.proto.messages.UpdatePropertyRequest.prototype.setTargetActorId = function(
  value
) {
  return jspb.Message.setProto3IntField(this, 1, value);
};

/**
 * optional bytes expect_attr = 2;
 * @return {!(string|Uint8Array)}
 */
proto.game_protobuf_messages.proto.messages.UpdatePropertyRequest.prototype.getExpectAttr = function() {
  return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(
    this,
    2,
    ''
  ));
};

/**
 * optional bytes expect_attr = 2;
 * This is a type-conversion wrapper around `getExpectAttr()`
 * @return {string}
 */
proto.game_protobuf_messages.proto.messages.UpdatePropertyRequest.prototype.getExpectAttr_asB64 = function() {
  return /** @type {string} */ (jspb.Message.bytesAsB64(this.getExpectAttr()));
};

/**
 * optional bytes expect_attr = 2;
 * Note that Uint8Array is not supported on all browsers.
 * @see http://caniuse.com/Uint8Array
 * This is a type-conversion wrapper around `getExpectAttr()`
 * @return {!Uint8Array}
 */
proto.game_protobuf_messages.proto.messages.UpdatePropertyRequest.prototype.getExpectAttr_asU8 = function() {
  return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(
    this.getExpectAttr()
  ));
};

/**
 * @param {!(string|Uint8Array)} value
 * @return {!proto.game_protobuf_messages.proto.messages.UpdatePropertyRequest} returns this
 */
proto.game_protobuf_messages.proto.messages.UpdatePropertyRequest.prototype.setExpectAttr = function(
  value
) {
  return jspb.Message.setProto3BytesField(this, 2, value);
};

/**
 * optional bytes attr = 3;
 * @return {!(string|Uint8Array)}
 */
proto.game_protobuf_messages.proto.messages.UpdatePropertyRequest.prototype.getAttr = function() {
  return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(
    this,
    3,
    ''
  ));
};

/**
 * optional bytes attr = 3;
 * This is a type-conversion wrapper around `getAttr()`
 * @return {string}
 */
proto.game_protobuf_messages.proto.messages.UpdatePropertyRequest.prototype.getAttr_asB64 = function() {
  return /** @type {string} */ (jspb.Message.bytesAsB64(this.getAttr()));
};

/**
 * optional bytes attr = 3;
 * Note that Uint8Array is not supported on all browsers.
 * @see http://caniuse.com/Uint8Array
 * This is a type-conversion wrapper around `getAttr()`
 * @return {!Uint8Array}
 */
proto.game_protobuf_messages.proto.messages.UpdatePropertyRequest.prototype.getAttr_asU8 = function() {
  return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getAttr()));
};

/**
 * @param {!(string|Uint8Array)} value
 * @return {!proto.game_protobuf_messages.proto.messages.UpdatePropertyRequest} returns this
 */
proto.game_protobuf_messages.proto.messages.UpdatePropertyRequest.prototype.setAttr = function(
  value
) {
  return jspb.Message.setProto3BytesField(this, 3, value);
};

if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game_protobuf_messages.proto.messages.UpdatePropertyResponse.prototype.toObject = function(
    opt_includeInstance
  ) {
    return proto.game_protobuf_messages.proto.messages.UpdatePropertyResponse.toObject(
      opt_includeInstance,
      this
    );
  };

  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game_protobuf_messages.proto.messages.UpdatePropertyResponse} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.game_protobuf_messages.proto.messages.UpdatePropertyResponse.toObject = function(
    includeInstance,
    msg
  ) {
    var f,
      obj = {
        attr: msg.getAttr_asB64(),
        actorId: jspb.Message.getFieldWithDefault(msg, 2, 0),
      };

    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
}

/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.game_protobuf_messages.proto.messages.UpdatePropertyResponse}
 */
proto.game_protobuf_messages.proto.messages.UpdatePropertyResponse.deserializeBinary = function(
  bytes
) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.game_protobuf_messages.proto.messages.UpdatePropertyResponse();
  return proto.game_protobuf_messages.proto.messages.UpdatePropertyResponse.deserializeBinaryFromReader(
    msg,
    reader
  );
};

/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.game_protobuf_messages.proto.messages.UpdatePropertyResponse} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.game_protobuf_messages.proto.messages.UpdatePropertyResponse}
 */
proto.game_protobuf_messages.proto.messages.UpdatePropertyResponse.deserializeBinaryFromReader = function(
  msg,
  reader
) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
      case 1:
        var value = /** @type {!Uint8Array} */ (reader.readBytes());
        msg.setAttr(value);
        break;
      case 2:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setActorId(value);
        break;
      default:
        reader.skipField();
        break;
    }
  }
  return msg;
};

/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.game_protobuf_messages.proto.messages.UpdatePropertyResponse.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.game_protobuf_messages.proto.messages.UpdatePropertyResponse.serializeBinaryToWriter(
    this,
    writer
  );
  return writer.getResultBuffer();
};

/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.game_protobuf_messages.proto.messages.UpdatePropertyResponse} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.game_protobuf_messages.proto.messages.UpdatePropertyResponse.serializeBinaryToWriter = function(
  message,
  writer
) {
  var f = undefined;
  f = message.getAttr_asU8();
  if (f.length > 0) {
    writer.writeBytes(1, f);
  }
  f = message.getActorId();
  if (f !== 0) {
    writer.writeInt32(2, f);
  }
};

/**
 * optional bytes attr = 1;
 * @return {!(string|Uint8Array)}
 */
proto.game_protobuf_messages.proto.messages.UpdatePropertyResponse.prototype.getAttr = function() {
  return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(
    this,
    1,
    ''
  ));
};

/**
 * optional bytes attr = 1;
 * This is a type-conversion wrapper around `getAttr()`
 * @return {string}
 */
proto.game_protobuf_messages.proto.messages.UpdatePropertyResponse.prototype.getAttr_asB64 = function() {
  return /** @type {string} */ (jspb.Message.bytesAsB64(this.getAttr()));
};

/**
 * optional bytes attr = 1;
 * Note that Uint8Array is not supported on all browsers.
 * @see http://caniuse.com/Uint8Array
 * This is a type-conversion wrapper around `getAttr()`
 * @return {!Uint8Array}
 */
proto.game_protobuf_messages.proto.messages.UpdatePropertyResponse.prototype.getAttr_asU8 = function() {
  return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getAttr()));
};

/**
 * @param {!(string|Uint8Array)} value
 * @return {!proto.game_protobuf_messages.proto.messages.UpdatePropertyResponse} returns this
 */
proto.game_protobuf_messages.proto.messages.UpdatePropertyResponse.prototype.setAttr = function(
  value
) {
  return jspb.Message.setProto3BytesField(this, 1, value);
};

/**
 * optional int32 actor_id = 2;
 * @return {number}
 */
proto.game_protobuf_messages.proto.messages.UpdatePropertyResponse.prototype.getActorId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
};

/**
 * @param {number} value
 * @return {!proto.game_protobuf_messages.proto.messages.UpdatePropertyResponse} returns this
 */
proto.game_protobuf_messages.proto.messages.UpdatePropertyResponse.prototype.setActorId = function(
  value
) {
  return jspb.Message.setProto3IntField(this, 2, value);
};

if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game_protobuf_messages.proto.messages.UpdatePropertyNotification.prototype.toObject = function(
    opt_includeInstance
  ) {
    return proto.game_protobuf_messages.proto.messages.UpdatePropertyNotification.toObject(
      opt_includeInstance,
      this
    );
  };

  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game_protobuf_messages.proto.messages.UpdatePropertyNotification} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.game_protobuf_messages.proto.messages.UpdatePropertyNotification.toObject = function(
    includeInstance,
    msg
  ) {
    var f,
      obj = {
        attr: msg.getAttr_asB64(),
        actorId: jspb.Message.getFieldWithDefault(msg, 2, 0),
      };

    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
}

/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.game_protobuf_messages.proto.messages.UpdatePropertyNotification}
 */
proto.game_protobuf_messages.proto.messages.UpdatePropertyNotification.deserializeBinary = function(
  bytes
) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.game_protobuf_messages.proto.messages.UpdatePropertyNotification();
  return proto.game_protobuf_messages.proto.messages.UpdatePropertyNotification.deserializeBinaryFromReader(
    msg,
    reader
  );
};

/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.game_protobuf_messages.proto.messages.UpdatePropertyNotification} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.game_protobuf_messages.proto.messages.UpdatePropertyNotification}
 */
proto.game_protobuf_messages.proto.messages.UpdatePropertyNotification.deserializeBinaryFromReader = function(
  msg,
  reader
) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
      case 1:
        var value = /** @type {!Uint8Array} */ (reader.readBytes());
        msg.setAttr(value);
        break;
      case 2:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setActorId(value);
        break;
      default:
        reader.skipField();
        break;
    }
  }
  return msg;
};

/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.game_protobuf_messages.proto.messages.UpdatePropertyNotification.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.game_protobuf_messages.proto.messages.UpdatePropertyNotification.serializeBinaryToWriter(
    this,
    writer
  );
  return writer.getResultBuffer();
};

/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.game_protobuf_messages.proto.messages.UpdatePropertyNotification} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.game_protobuf_messages.proto.messages.UpdatePropertyNotification.serializeBinaryToWriter = function(
  message,
  writer
) {
  var f = undefined;
  f = message.getAttr_asU8();
  if (f.length > 0) {
    writer.writeBytes(1, f);
  }
  f = message.getActorId();
  if (f !== 0) {
    writer.writeInt32(2, f);
  }
};

/**
 * optional bytes attr = 1;
 * @return {!(string|Uint8Array)}
 */
proto.game_protobuf_messages.proto.messages.UpdatePropertyNotification.prototype.getAttr = function() {
  return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(
    this,
    1,
    ''
  ));
};

/**
 * optional bytes attr = 1;
 * This is a type-conversion wrapper around `getAttr()`
 * @return {string}
 */
proto.game_protobuf_messages.proto.messages.UpdatePropertyNotification.prototype.getAttr_asB64 = function() {
  return /** @type {string} */ (jspb.Message.bytesAsB64(this.getAttr()));
};

/**
 * optional bytes attr = 1;
 * Note that Uint8Array is not supported on all browsers.
 * @see http://caniuse.com/Uint8Array
 * This is a type-conversion wrapper around `getAttr()`
 * @return {!Uint8Array}
 */
proto.game_protobuf_messages.proto.messages.UpdatePropertyNotification.prototype.getAttr_asU8 = function() {
  return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getAttr()));
};

/**
 * @param {!(string|Uint8Array)} value
 * @return {!proto.game_protobuf_messages.proto.messages.UpdatePropertyNotification} returns this
 */
proto.game_protobuf_messages.proto.messages.UpdatePropertyNotification.prototype.setAttr = function(
  value
) {
  return jspb.Message.setProto3BytesField(this, 1, value);
};

/**
 * optional int32 actor_id = 2;
 * @return {number}
 */
proto.game_protobuf_messages.proto.messages.UpdatePropertyNotification.prototype.getActorId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
};

/**
 * @param {number} value
 * @return {!proto.game_protobuf_messages.proto.messages.UpdatePropertyNotification} returns this
 */
proto.game_protobuf_messages.proto.messages.UpdatePropertyNotification.prototype.setActorId = function(
  value
) {
  return jspb.Message.setProto3IntField(this, 2, value);
};

if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game_protobuf_messages.proto.messages.UpdateSysPropertyRequest.prototype.toObject = function(
    opt_includeInstance
  ) {
    return proto.game_protobuf_messages.proto.messages.UpdateSysPropertyRequest.toObject(
      opt_includeInstance,
      this
    );
  };

  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game_protobuf_messages.proto.messages.UpdateSysPropertyRequest} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.game_protobuf_messages.proto.messages.UpdateSysPropertyRequest.toObject = function(
    includeInstance,
    msg
  ) {
    var f,
      obj = {
        expectSysAttr:
          (f = msg.getExpectSysAttr()) &&
          proto.game_protobuf_messages.proto.messages.RoomSystemProperty.toObject(
            includeInstance,
            f
          ),
        sysAttr:
          (f = msg.getSysAttr()) &&
          proto.game_protobuf_messages.proto.messages.RoomSystemProperty.toObject(
            includeInstance,
            f
          ),
      };

    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
}

/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.game_protobuf_messages.proto.messages.UpdateSysPropertyRequest}
 */
proto.game_protobuf_messages.proto.messages.UpdateSysPropertyRequest.deserializeBinary = function(
  bytes
) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.game_protobuf_messages.proto.messages.UpdateSysPropertyRequest();
  return proto.game_protobuf_messages.proto.messages.UpdateSysPropertyRequest.deserializeBinaryFromReader(
    msg,
    reader
  );
};

/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.game_protobuf_messages.proto.messages.UpdateSysPropertyRequest} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.game_protobuf_messages.proto.messages.UpdateSysPropertyRequest}
 */
proto.game_protobuf_messages.proto.messages.UpdateSysPropertyRequest.deserializeBinaryFromReader = function(
  msg,
  reader
) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
      case 1:
        var value = new proto.game_protobuf_messages.proto.messages.RoomSystemProperty();
        reader.readMessage(
          value,
          proto.game_protobuf_messages.proto.messages.RoomSystemProperty
            .deserializeBinaryFromReader
        );
        msg.setExpectSysAttr(value);
        break;
      case 2:
        var value = new proto.game_protobuf_messages.proto.messages.RoomSystemProperty();
        reader.readMessage(
          value,
          proto.game_protobuf_messages.proto.messages.RoomSystemProperty
            .deserializeBinaryFromReader
        );
        msg.setSysAttr(value);
        break;
      default:
        reader.skipField();
        break;
    }
  }
  return msg;
};

/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.game_protobuf_messages.proto.messages.UpdateSysPropertyRequest.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.game_protobuf_messages.proto.messages.UpdateSysPropertyRequest.serializeBinaryToWriter(
    this,
    writer
  );
  return writer.getResultBuffer();
};

/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.game_protobuf_messages.proto.messages.UpdateSysPropertyRequest} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.game_protobuf_messages.proto.messages.UpdateSysPropertyRequest.serializeBinaryToWriter = function(
  message,
  writer
) {
  var f = undefined;
  f = message.getExpectSysAttr();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      proto.game_protobuf_messages.proto.messages.RoomSystemProperty
        .serializeBinaryToWriter
    );
  }
  f = message.getSysAttr();
  if (f != null) {
    writer.writeMessage(
      2,
      f,
      proto.game_protobuf_messages.proto.messages.RoomSystemProperty
        .serializeBinaryToWriter
    );
  }
};

/**
 * optional RoomSystemProperty expect_sys_attr = 1;
 * @return {?proto.game_protobuf_messages.proto.messages.RoomSystemProperty}
 */
proto.game_protobuf_messages.proto.messages.UpdateSysPropertyRequest.prototype.getExpectSysAttr = function() {
  return /** @type{?proto.game_protobuf_messages.proto.messages.RoomSystemProperty} */ (jspb.Message.getWrapperField(
    this,
    proto.game_protobuf_messages.proto.messages.RoomSystemProperty,
    1
  ));
};

/**
 * @param {?proto.game_protobuf_messages.proto.messages.RoomSystemProperty|undefined} value
 * @return {!proto.game_protobuf_messages.proto.messages.UpdateSysPropertyRequest} returns this
 */
proto.game_protobuf_messages.proto.messages.UpdateSysPropertyRequest.prototype.setExpectSysAttr = function(
  value
) {
  return jspb.Message.setWrapperField(this, 1, value);
};

/**
 * Clears the message field making it undefined.
 * @return {!proto.game_protobuf_messages.proto.messages.UpdateSysPropertyRequest} returns this
 */
proto.game_protobuf_messages.proto.messages.UpdateSysPropertyRequest.prototype.clearExpectSysAttr = function() {
  return this.setExpectSysAttr(undefined);
};

/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.game_protobuf_messages.proto.messages.UpdateSysPropertyRequest.prototype.hasExpectSysAttr = function() {
  return jspb.Message.getField(this, 1) != null;
};

/**
 * optional RoomSystemProperty sys_attr = 2;
 * @return {?proto.game_protobuf_messages.proto.messages.RoomSystemProperty}
 */
proto.game_protobuf_messages.proto.messages.UpdateSysPropertyRequest.prototype.getSysAttr = function() {
  return /** @type{?proto.game_protobuf_messages.proto.messages.RoomSystemProperty} */ (jspb.Message.getWrapperField(
    this,
    proto.game_protobuf_messages.proto.messages.RoomSystemProperty,
    2
  ));
};

/**
 * @param {?proto.game_protobuf_messages.proto.messages.RoomSystemProperty|undefined} value
 * @return {!proto.game_protobuf_messages.proto.messages.UpdateSysPropertyRequest} returns this
 */
proto.game_protobuf_messages.proto.messages.UpdateSysPropertyRequest.prototype.setSysAttr = function(
  value
) {
  return jspb.Message.setWrapperField(this, 2, value);
};

/**
 * Clears the message field making it undefined.
 * @return {!proto.game_protobuf_messages.proto.messages.UpdateSysPropertyRequest} returns this
 */
proto.game_protobuf_messages.proto.messages.UpdateSysPropertyRequest.prototype.clearSysAttr = function() {
  return this.setSysAttr(undefined);
};

/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.game_protobuf_messages.proto.messages.UpdateSysPropertyRequest.prototype.hasSysAttr = function() {
  return jspb.Message.getField(this, 2) != null;
};

if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game_protobuf_messages.proto.messages.UpdateSysPropertyResponse.prototype.toObject = function(
    opt_includeInstance
  ) {
    return proto.game_protobuf_messages.proto.messages.UpdateSysPropertyResponse.toObject(
      opt_includeInstance,
      this
    );
  };

  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game_protobuf_messages.proto.messages.UpdateSysPropertyResponse} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.game_protobuf_messages.proto.messages.UpdateSysPropertyResponse.toObject = function(
    includeInstance,
    msg
  ) {
    var f,
      obj = {
        sysAttr:
          (f = msg.getSysAttr()) &&
          proto.game_protobuf_messages.proto.messages.RoomSystemProperty.toObject(
            includeInstance,
            f
          ),
      };

    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
}

/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.game_protobuf_messages.proto.messages.UpdateSysPropertyResponse}
 */
proto.game_protobuf_messages.proto.messages.UpdateSysPropertyResponse.deserializeBinary = function(
  bytes
) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.game_protobuf_messages.proto.messages.UpdateSysPropertyResponse();
  return proto.game_protobuf_messages.proto.messages.UpdateSysPropertyResponse.deserializeBinaryFromReader(
    msg,
    reader
  );
};

/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.game_protobuf_messages.proto.messages.UpdateSysPropertyResponse} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.game_protobuf_messages.proto.messages.UpdateSysPropertyResponse}
 */
proto.game_protobuf_messages.proto.messages.UpdateSysPropertyResponse.deserializeBinaryFromReader = function(
  msg,
  reader
) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
      case 1:
        var value = new proto.game_protobuf_messages.proto.messages.RoomSystemProperty();
        reader.readMessage(
          value,
          proto.game_protobuf_messages.proto.messages.RoomSystemProperty
            .deserializeBinaryFromReader
        );
        msg.setSysAttr(value);
        break;
      default:
        reader.skipField();
        break;
    }
  }
  return msg;
};

/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.game_protobuf_messages.proto.messages.UpdateSysPropertyResponse.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.game_protobuf_messages.proto.messages.UpdateSysPropertyResponse.serializeBinaryToWriter(
    this,
    writer
  );
  return writer.getResultBuffer();
};

/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.game_protobuf_messages.proto.messages.UpdateSysPropertyResponse} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.game_protobuf_messages.proto.messages.UpdateSysPropertyResponse.serializeBinaryToWriter = function(
  message,
  writer
) {
  var f = undefined;
  f = message.getSysAttr();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      proto.game_protobuf_messages.proto.messages.RoomSystemProperty
        .serializeBinaryToWriter
    );
  }
};

/**
 * optional RoomSystemProperty sys_attr = 1;
 * @return {?proto.game_protobuf_messages.proto.messages.RoomSystemProperty}
 */
proto.game_protobuf_messages.proto.messages.UpdateSysPropertyResponse.prototype.getSysAttr = function() {
  return /** @type{?proto.game_protobuf_messages.proto.messages.RoomSystemProperty} */ (jspb.Message.getWrapperField(
    this,
    proto.game_protobuf_messages.proto.messages.RoomSystemProperty,
    1
  ));
};

/**
 * @param {?proto.game_protobuf_messages.proto.messages.RoomSystemProperty|undefined} value
 * @return {!proto.game_protobuf_messages.proto.messages.UpdateSysPropertyResponse} returns this
 */
proto.game_protobuf_messages.proto.messages.UpdateSysPropertyResponse.prototype.setSysAttr = function(
  value
) {
  return jspb.Message.setWrapperField(this, 1, value);
};

/**
 * Clears the message field making it undefined.
 * @return {!proto.game_protobuf_messages.proto.messages.UpdateSysPropertyResponse} returns this
 */
proto.game_protobuf_messages.proto.messages.UpdateSysPropertyResponse.prototype.clearSysAttr = function() {
  return this.setSysAttr(undefined);
};

/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.game_protobuf_messages.proto.messages.UpdateSysPropertyResponse.prototype.hasSysAttr = function() {
  return jspb.Message.getField(this, 1) != null;
};

if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game_protobuf_messages.proto.messages.UpdateSysPropertyNotification.prototype.toObject = function(
    opt_includeInstance
  ) {
    return proto.game_protobuf_messages.proto.messages.UpdateSysPropertyNotification.toObject(
      opt_includeInstance,
      this
    );
  };

  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game_protobuf_messages.proto.messages.UpdateSysPropertyNotification} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.game_protobuf_messages.proto.messages.UpdateSysPropertyNotification.toObject = function(
    includeInstance,
    msg
  ) {
    var f,
      obj = {
        sysAttr:
          (f = msg.getSysAttr()) &&
          proto.game_protobuf_messages.proto.messages.RoomSystemProperty.toObject(
            includeInstance,
            f
          ),
      };

    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
}

/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.game_protobuf_messages.proto.messages.UpdateSysPropertyNotification}
 */
proto.game_protobuf_messages.proto.messages.UpdateSysPropertyNotification.deserializeBinary = function(
  bytes
) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.game_protobuf_messages.proto.messages.UpdateSysPropertyNotification();
  return proto.game_protobuf_messages.proto.messages.UpdateSysPropertyNotification.deserializeBinaryFromReader(
    msg,
    reader
  );
};

/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.game_protobuf_messages.proto.messages.UpdateSysPropertyNotification} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.game_protobuf_messages.proto.messages.UpdateSysPropertyNotification}
 */
proto.game_protobuf_messages.proto.messages.UpdateSysPropertyNotification.deserializeBinaryFromReader = function(
  msg,
  reader
) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
      case 1:
        var value = new proto.game_protobuf_messages.proto.messages.RoomSystemProperty();
        reader.readMessage(
          value,
          proto.game_protobuf_messages.proto.messages.RoomSystemProperty
            .deserializeBinaryFromReader
        );
        msg.setSysAttr(value);
        break;
      default:
        reader.skipField();
        break;
    }
  }
  return msg;
};

/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.game_protobuf_messages.proto.messages.UpdateSysPropertyNotification.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.game_protobuf_messages.proto.messages.UpdateSysPropertyNotification.serializeBinaryToWriter(
    this,
    writer
  );
  return writer.getResultBuffer();
};

/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.game_protobuf_messages.proto.messages.UpdateSysPropertyNotification} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.game_protobuf_messages.proto.messages.UpdateSysPropertyNotification.serializeBinaryToWriter = function(
  message,
  writer
) {
  var f = undefined;
  f = message.getSysAttr();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      proto.game_protobuf_messages.proto.messages.RoomSystemProperty
        .serializeBinaryToWriter
    );
  }
};

/**
 * optional RoomSystemProperty sys_attr = 1;
 * @return {?proto.game_protobuf_messages.proto.messages.RoomSystemProperty}
 */
proto.game_protobuf_messages.proto.messages.UpdateSysPropertyNotification.prototype.getSysAttr = function() {
  return /** @type{?proto.game_protobuf_messages.proto.messages.RoomSystemProperty} */ (jspb.Message.getWrapperField(
    this,
    proto.game_protobuf_messages.proto.messages.RoomSystemProperty,
    1
  ));
};

/**
 * @param {?proto.game_protobuf_messages.proto.messages.RoomSystemProperty|undefined} value
 * @return {!proto.game_protobuf_messages.proto.messages.UpdateSysPropertyNotification} returns this
 */
proto.game_protobuf_messages.proto.messages.UpdateSysPropertyNotification.prototype.setSysAttr = function(
  value
) {
  return jspb.Message.setWrapperField(this, 1, value);
};

/**
 * Clears the message field making it undefined.
 * @return {!proto.game_protobuf_messages.proto.messages.UpdateSysPropertyNotification} returns this
 */
proto.game_protobuf_messages.proto.messages.UpdateSysPropertyNotification.prototype.clearSysAttr = function() {
  return this.setSysAttr(undefined);
};

/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.game_protobuf_messages.proto.messages.UpdateSysPropertyNotification.prototype.hasSysAttr = function() {
  return jspb.Message.getField(this, 1) != null;
};

if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game_protobuf_messages.proto.messages.UpdateMasterClientRequest.prototype.toObject = function(
    opt_includeInstance
  ) {
    return proto.game_protobuf_messages.proto.messages.UpdateMasterClientRequest.toObject(
      opt_includeInstance,
      this
    );
  };

  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game_protobuf_messages.proto.messages.UpdateMasterClientRequest} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.game_protobuf_messages.proto.messages.UpdateMasterClientRequest.toObject = function(
    includeInstance,
    msg
  ) {
    var f,
      obj = {
        masterActorId: jspb.Message.getFieldWithDefault(msg, 1, 0),
      };

    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
}

/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.game_protobuf_messages.proto.messages.UpdateMasterClientRequest}
 */
proto.game_protobuf_messages.proto.messages.UpdateMasterClientRequest.deserializeBinary = function(
  bytes
) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.game_protobuf_messages.proto.messages.UpdateMasterClientRequest();
  return proto.game_protobuf_messages.proto.messages.UpdateMasterClientRequest.deserializeBinaryFromReader(
    msg,
    reader
  );
};

/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.game_protobuf_messages.proto.messages.UpdateMasterClientRequest} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.game_protobuf_messages.proto.messages.UpdateMasterClientRequest}
 */
proto.game_protobuf_messages.proto.messages.UpdateMasterClientRequest.deserializeBinaryFromReader = function(
  msg,
  reader
) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
      case 1:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setMasterActorId(value);
        break;
      default:
        reader.skipField();
        break;
    }
  }
  return msg;
};

/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.game_protobuf_messages.proto.messages.UpdateMasterClientRequest.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.game_protobuf_messages.proto.messages.UpdateMasterClientRequest.serializeBinaryToWriter(
    this,
    writer
  );
  return writer.getResultBuffer();
};

/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.game_protobuf_messages.proto.messages.UpdateMasterClientRequest} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.game_protobuf_messages.proto.messages.UpdateMasterClientRequest.serializeBinaryToWriter = function(
  message,
  writer
) {
  var f = undefined;
  f = message.getMasterActorId();
  if (f !== 0) {
    writer.writeInt32(1, f);
  }
};

/**
 * optional int32 master_actor_id = 1;
 * @return {number}
 */
proto.game_protobuf_messages.proto.messages.UpdateMasterClientRequest.prototype.getMasterActorId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};

/**
 * @param {number} value
 * @return {!proto.game_protobuf_messages.proto.messages.UpdateMasterClientRequest} returns this
 */
proto.game_protobuf_messages.proto.messages.UpdateMasterClientRequest.prototype.setMasterActorId = function(
  value
) {
  return jspb.Message.setProto3IntField(this, 1, value);
};

if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game_protobuf_messages.proto.messages.UpdateMasterClientResponse.prototype.toObject = function(
    opt_includeInstance
  ) {
    return proto.game_protobuf_messages.proto.messages.UpdateMasterClientResponse.toObject(
      opt_includeInstance,
      this
    );
  };

  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game_protobuf_messages.proto.messages.UpdateMasterClientResponse} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.game_protobuf_messages.proto.messages.UpdateMasterClientResponse.toObject = function(
    includeInstance,
    msg
  ) {
    var f,
      obj = {
        masterActorId: jspb.Message.getFieldWithDefault(msg, 1, 0),
      };

    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
}

/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.game_protobuf_messages.proto.messages.UpdateMasterClientResponse}
 */
proto.game_protobuf_messages.proto.messages.UpdateMasterClientResponse.deserializeBinary = function(
  bytes
) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.game_protobuf_messages.proto.messages.UpdateMasterClientResponse();
  return proto.game_protobuf_messages.proto.messages.UpdateMasterClientResponse.deserializeBinaryFromReader(
    msg,
    reader
  );
};

/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.game_protobuf_messages.proto.messages.UpdateMasterClientResponse} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.game_protobuf_messages.proto.messages.UpdateMasterClientResponse}
 */
proto.game_protobuf_messages.proto.messages.UpdateMasterClientResponse.deserializeBinaryFromReader = function(
  msg,
  reader
) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
      case 1:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setMasterActorId(value);
        break;
      default:
        reader.skipField();
        break;
    }
  }
  return msg;
};

/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.game_protobuf_messages.proto.messages.UpdateMasterClientResponse.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.game_protobuf_messages.proto.messages.UpdateMasterClientResponse.serializeBinaryToWriter(
    this,
    writer
  );
  return writer.getResultBuffer();
};

/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.game_protobuf_messages.proto.messages.UpdateMasterClientResponse} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.game_protobuf_messages.proto.messages.UpdateMasterClientResponse.serializeBinaryToWriter = function(
  message,
  writer
) {
  var f = undefined;
  f = message.getMasterActorId();
  if (f !== 0) {
    writer.writeInt32(1, f);
  }
};

/**
 * optional int32 master_actor_id = 1;
 * @return {number}
 */
proto.game_protobuf_messages.proto.messages.UpdateMasterClientResponse.prototype.getMasterActorId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};

/**
 * @param {number} value
 * @return {!proto.game_protobuf_messages.proto.messages.UpdateMasterClientResponse} returns this
 */
proto.game_protobuf_messages.proto.messages.UpdateMasterClientResponse.prototype.setMasterActorId = function(
  value
) {
  return jspb.Message.setProto3IntField(this, 1, value);
};

if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game_protobuf_messages.proto.messages.UpdateMasterClientNotification.prototype.toObject = function(
    opt_includeInstance
  ) {
    return proto.game_protobuf_messages.proto.messages.UpdateMasterClientNotification.toObject(
      opt_includeInstance,
      this
    );
  };

  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game_protobuf_messages.proto.messages.UpdateMasterClientNotification} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.game_protobuf_messages.proto.messages.UpdateMasterClientNotification.toObject = function(
    includeInstance,
    msg
  ) {
    var f,
      obj = {
        masterActorId: jspb.Message.getFieldWithDefault(msg, 1, 0),
      };

    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
}

/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.game_protobuf_messages.proto.messages.UpdateMasterClientNotification}
 */
proto.game_protobuf_messages.proto.messages.UpdateMasterClientNotification.deserializeBinary = function(
  bytes
) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.game_protobuf_messages.proto.messages.UpdateMasterClientNotification();
  return proto.game_protobuf_messages.proto.messages.UpdateMasterClientNotification.deserializeBinaryFromReader(
    msg,
    reader
  );
};

/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.game_protobuf_messages.proto.messages.UpdateMasterClientNotification} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.game_protobuf_messages.proto.messages.UpdateMasterClientNotification}
 */
proto.game_protobuf_messages.proto.messages.UpdateMasterClientNotification.deserializeBinaryFromReader = function(
  msg,
  reader
) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
      case 1:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setMasterActorId(value);
        break;
      default:
        reader.skipField();
        break;
    }
  }
  return msg;
};

/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.game_protobuf_messages.proto.messages.UpdateMasterClientNotification.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.game_protobuf_messages.proto.messages.UpdateMasterClientNotification.serializeBinaryToWriter(
    this,
    writer
  );
  return writer.getResultBuffer();
};

/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.game_protobuf_messages.proto.messages.UpdateMasterClientNotification} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.game_protobuf_messages.proto.messages.UpdateMasterClientNotification.serializeBinaryToWriter = function(
  message,
  writer
) {
  var f = undefined;
  f = message.getMasterActorId();
  if (f !== 0) {
    writer.writeInt32(1, f);
  }
};

/**
 * optional int32 master_actor_id = 1;
 * @return {number}
 */
proto.game_protobuf_messages.proto.messages.UpdateMasterClientNotification.prototype.getMasterActorId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};

/**
 * @param {number} value
 * @return {!proto.game_protobuf_messages.proto.messages.UpdateMasterClientNotification} returns this
 */
proto.game_protobuf_messages.proto.messages.UpdateMasterClientNotification.prototype.setMasterActorId = function(
  value
) {
  return jspb.Message.setProto3IntField(this, 1, value);
};

/**
 * Oneof group definitions for this message. Each group defines the field
 * numbers belonging to that group. When of these fields' value is set, all
 * other fields in the group are cleared. During deserialization, if multiple
 * fields are encountered for a group, only the last value seen will be kept.
 * @private {!Array<!Array<number>>}
 * @const
 */
proto.game_protobuf_messages.proto.messages.RoomNotification.oneofGroups_ = [
  [20, 21, 22, 23, 24],
];

/**
 * @enum {number}
 */
proto.game_protobuf_messages.proto.messages.RoomNotification.NotificationCase = {
  NOTIFICATION_NOT_SET: 0,
  JOIN_ROOM: 20,
  UPDATE_PROPERTY: 21,
  UPDATE_SYS_PROPERTY: 22,
  UPDATE_MASTER_CLIENT: 23,
  LEFT_ROOM: 24,
};

/**
 * @return {proto.game_protobuf_messages.proto.messages.RoomNotification.NotificationCase}
 */
proto.game_protobuf_messages.proto.messages.RoomNotification.prototype.getNotificationCase = function() {
  return /** @type {proto.game_protobuf_messages.proto.messages.RoomNotification.NotificationCase} */ (jspb.Message.computeOneofCase(
    this,
    proto.game_protobuf_messages.proto.messages.RoomNotification.oneofGroups_[0]
  ));
};

if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game_protobuf_messages.proto.messages.RoomNotification.prototype.toObject = function(
    opt_includeInstance
  ) {
    return proto.game_protobuf_messages.proto.messages.RoomNotification.toObject(
      opt_includeInstance,
      this
    );
  };

  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game_protobuf_messages.proto.messages.RoomNotification} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.game_protobuf_messages.proto.messages.RoomNotification.toObject = function(
    includeInstance,
    msg
  ) {
    var f,
      obj = {
        initByActor: jspb.Message.getFieldWithDefault(msg, 1, 0),
        appInfo:
          (f = msg.getAppInfo()) &&
          proto.game_protobuf_messages.proto.messages.AppInfo.toObject(
            includeInstance,
            f
          ),
        byMaster: jspb.Message.getBooleanFieldWithDefault(msg, 4, false),
        joinRoom:
          (f = msg.getJoinRoom()) &&
          proto.game_protobuf_messages.proto.messages.JoinRoomNotification.toObject(
            includeInstance,
            f
          ),
        updateProperty:
          (f = msg.getUpdateProperty()) &&
          proto.game_protobuf_messages.proto.messages.UpdatePropertyNotification.toObject(
            includeInstance,
            f
          ),
        updateSysProperty:
          (f = msg.getUpdateSysProperty()) &&
          proto.game_protobuf_messages.proto.messages.UpdateSysPropertyNotification.toObject(
            includeInstance,
            f
          ),
        updateMasterClient:
          (f = msg.getUpdateMasterClient()) &&
          proto.game_protobuf_messages.proto.messages.UpdateMasterClientNotification.toObject(
            includeInstance,
            f
          ),
        leftRoom:
          (f = msg.getLeftRoom()) &&
          proto.game_protobuf_messages.proto.messages.LeftRoomNotification.toObject(
            includeInstance,
            f
          ),
      };

    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
}

/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.game_protobuf_messages.proto.messages.RoomNotification}
 */
proto.game_protobuf_messages.proto.messages.RoomNotification.deserializeBinary = function(
  bytes
) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.game_protobuf_messages.proto.messages.RoomNotification();
  return proto.game_protobuf_messages.proto.messages.RoomNotification.deserializeBinaryFromReader(
    msg,
    reader
  );
};

/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.game_protobuf_messages.proto.messages.RoomNotification} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.game_protobuf_messages.proto.messages.RoomNotification}
 */
proto.game_protobuf_messages.proto.messages.RoomNotification.deserializeBinaryFromReader = function(
  msg,
  reader
) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
      case 1:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setInitByActor(value);
        break;
      case 3:
        var value = new proto.game_protobuf_messages.proto.messages.AppInfo();
        reader.readMessage(
          value,
          proto.game_protobuf_messages.proto.messages.AppInfo
            .deserializeBinaryFromReader
        );
        msg.setAppInfo(value);
        break;
      case 4:
        var value = /** @type {boolean} */ (reader.readBool());
        msg.setByMaster(value);
        break;
      case 20:
        var value = new proto.game_protobuf_messages.proto.messages.JoinRoomNotification();
        reader.readMessage(
          value,
          proto.game_protobuf_messages.proto.messages.JoinRoomNotification
            .deserializeBinaryFromReader
        );
        msg.setJoinRoom(value);
        break;
      case 21:
        var value = new proto.game_protobuf_messages.proto.messages.UpdatePropertyNotification();
        reader.readMessage(
          value,
          proto.game_protobuf_messages.proto.messages.UpdatePropertyNotification
            .deserializeBinaryFromReader
        );
        msg.setUpdateProperty(value);
        break;
      case 22:
        var value = new proto.game_protobuf_messages.proto.messages.UpdateSysPropertyNotification();
        reader.readMessage(
          value,
          proto.game_protobuf_messages.proto.messages
            .UpdateSysPropertyNotification.deserializeBinaryFromReader
        );
        msg.setUpdateSysProperty(value);
        break;
      case 23:
        var value = new proto.game_protobuf_messages.proto.messages.UpdateMasterClientNotification();
        reader.readMessage(
          value,
          proto.game_protobuf_messages.proto.messages
            .UpdateMasterClientNotification.deserializeBinaryFromReader
        );
        msg.setUpdateMasterClient(value);
        break;
      case 24:
        var value = new proto.game_protobuf_messages.proto.messages.LeftRoomNotification();
        reader.readMessage(
          value,
          proto.game_protobuf_messages.proto.messages.LeftRoomNotification
            .deserializeBinaryFromReader
        );
        msg.setLeftRoom(value);
        break;
      default:
        reader.skipField();
        break;
    }
  }
  return msg;
};

/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.game_protobuf_messages.proto.messages.RoomNotification.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.game_protobuf_messages.proto.messages.RoomNotification.serializeBinaryToWriter(
    this,
    writer
  );
  return writer.getResultBuffer();
};

/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.game_protobuf_messages.proto.messages.RoomNotification} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.game_protobuf_messages.proto.messages.RoomNotification.serializeBinaryToWriter = function(
  message,
  writer
) {
  var f = undefined;
  f = message.getInitByActor();
  if (f !== 0) {
    writer.writeInt32(1, f);
  }
  f = message.getAppInfo();
  if (f != null) {
    writer.writeMessage(
      3,
      f,
      proto.game_protobuf_messages.proto.messages.AppInfo
        .serializeBinaryToWriter
    );
  }
  f = message.getByMaster();
  if (f) {
    writer.writeBool(4, f);
  }
  f = message.getJoinRoom();
  if (f != null) {
    writer.writeMessage(
      20,
      f,
      proto.game_protobuf_messages.proto.messages.JoinRoomNotification
        .serializeBinaryToWriter
    );
  }
  f = message.getUpdateProperty();
  if (f != null) {
    writer.writeMessage(
      21,
      f,
      proto.game_protobuf_messages.proto.messages.UpdatePropertyNotification
        .serializeBinaryToWriter
    );
  }
  f = message.getUpdateSysProperty();
  if (f != null) {
    writer.writeMessage(
      22,
      f,
      proto.game_protobuf_messages.proto.messages.UpdateSysPropertyNotification
        .serializeBinaryToWriter
    );
  }
  f = message.getUpdateMasterClient();
  if (f != null) {
    writer.writeMessage(
      23,
      f,
      proto.game_protobuf_messages.proto.messages.UpdateMasterClientNotification
        .serializeBinaryToWriter
    );
  }
  f = message.getLeftRoom();
  if (f != null) {
    writer.writeMessage(
      24,
      f,
      proto.game_protobuf_messages.proto.messages.LeftRoomNotification
        .serializeBinaryToWriter
    );
  }
};

/**
 * optional int32 init_by_actor = 1;
 * @return {number}
 */
proto.game_protobuf_messages.proto.messages.RoomNotification.prototype.getInitByActor = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};

/**
 * @param {number} value
 * @return {!proto.game_protobuf_messages.proto.messages.RoomNotification} returns this
 */
proto.game_protobuf_messages.proto.messages.RoomNotification.prototype.setInitByActor = function(
  value
) {
  return jspb.Message.setProto3IntField(this, 1, value);
};

/**
 * optional AppInfo app_info = 3;
 * @return {?proto.game_protobuf_messages.proto.messages.AppInfo}
 */
proto.game_protobuf_messages.proto.messages.RoomNotification.prototype.getAppInfo = function() {
  return /** @type{?proto.game_protobuf_messages.proto.messages.AppInfo} */ (jspb.Message.getWrapperField(
    this,
    proto.game_protobuf_messages.proto.messages.AppInfo,
    3
  ));
};

/**
 * @param {?proto.game_protobuf_messages.proto.messages.AppInfo|undefined} value
 * @return {!proto.game_protobuf_messages.proto.messages.RoomNotification} returns this
 */
proto.game_protobuf_messages.proto.messages.RoomNotification.prototype.setAppInfo = function(
  value
) {
  return jspb.Message.setWrapperField(this, 3, value);
};

/**
 * Clears the message field making it undefined.
 * @return {!proto.game_protobuf_messages.proto.messages.RoomNotification} returns this
 */
proto.game_protobuf_messages.proto.messages.RoomNotification.prototype.clearAppInfo = function() {
  return this.setAppInfo(undefined);
};

/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.game_protobuf_messages.proto.messages.RoomNotification.prototype.hasAppInfo = function() {
  return jspb.Message.getField(this, 3) != null;
};

/**
 * optional bool by_master = 4;
 * @return {boolean}
 */
proto.game_protobuf_messages.proto.messages.RoomNotification.prototype.getByMaster = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(
    this,
    4,
    false
  ));
};

/**
 * @param {boolean} value
 * @return {!proto.game_protobuf_messages.proto.messages.RoomNotification} returns this
 */
proto.game_protobuf_messages.proto.messages.RoomNotification.prototype.setByMaster = function(
  value
) {
  return jspb.Message.setProto3BooleanField(this, 4, value);
};

/**
 * optional JoinRoomNotification join_room = 20;
 * @return {?proto.game_protobuf_messages.proto.messages.JoinRoomNotification}
 */
proto.game_protobuf_messages.proto.messages.RoomNotification.prototype.getJoinRoom = function() {
  return /** @type{?proto.game_protobuf_messages.proto.messages.JoinRoomNotification} */ (jspb.Message.getWrapperField(
    this,
    proto.game_protobuf_messages.proto.messages.JoinRoomNotification,
    20
  ));
};

/**
 * @param {?proto.game_protobuf_messages.proto.messages.JoinRoomNotification|undefined} value
 * @return {!proto.game_protobuf_messages.proto.messages.RoomNotification} returns this
 */
proto.game_protobuf_messages.proto.messages.RoomNotification.prototype.setJoinRoom = function(
  value
) {
  return jspb.Message.setOneofWrapperField(
    this,
    20,
    proto.game_protobuf_messages.proto.messages.RoomNotification
      .oneofGroups_[0],
    value
  );
};

/**
 * Clears the message field making it undefined.
 * @return {!proto.game_protobuf_messages.proto.messages.RoomNotification} returns this
 */
proto.game_protobuf_messages.proto.messages.RoomNotification.prototype.clearJoinRoom = function() {
  return this.setJoinRoom(undefined);
};

/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.game_protobuf_messages.proto.messages.RoomNotification.prototype.hasJoinRoom = function() {
  return jspb.Message.getField(this, 20) != null;
};

/**
 * optional UpdatePropertyNotification update_property = 21;
 * @return {?proto.game_protobuf_messages.proto.messages.UpdatePropertyNotification}
 */
proto.game_protobuf_messages.proto.messages.RoomNotification.prototype.getUpdateProperty = function() {
  return /** @type{?proto.game_protobuf_messages.proto.messages.UpdatePropertyNotification} */ (jspb.Message.getWrapperField(
    this,
    proto.game_protobuf_messages.proto.messages.UpdatePropertyNotification,
    21
  ));
};

/**
 * @param {?proto.game_protobuf_messages.proto.messages.UpdatePropertyNotification|undefined} value
 * @return {!proto.game_protobuf_messages.proto.messages.RoomNotification} returns this
 */
proto.game_protobuf_messages.proto.messages.RoomNotification.prototype.setUpdateProperty = function(
  value
) {
  return jspb.Message.setOneofWrapperField(
    this,
    21,
    proto.game_protobuf_messages.proto.messages.RoomNotification
      .oneofGroups_[0],
    value
  );
};

/**
 * Clears the message field making it undefined.
 * @return {!proto.game_protobuf_messages.proto.messages.RoomNotification} returns this
 */
proto.game_protobuf_messages.proto.messages.RoomNotification.prototype.clearUpdateProperty = function() {
  return this.setUpdateProperty(undefined);
};

/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.game_protobuf_messages.proto.messages.RoomNotification.prototype.hasUpdateProperty = function() {
  return jspb.Message.getField(this, 21) != null;
};

/**
 * optional UpdateSysPropertyNotification update_sys_property = 22;
 * @return {?proto.game_protobuf_messages.proto.messages.UpdateSysPropertyNotification}
 */
proto.game_protobuf_messages.proto.messages.RoomNotification.prototype.getUpdateSysProperty = function() {
  return /** @type{?proto.game_protobuf_messages.proto.messages.UpdateSysPropertyNotification} */ (jspb.Message.getWrapperField(
    this,
    proto.game_protobuf_messages.proto.messages.UpdateSysPropertyNotification,
    22
  ));
};

/**
 * @param {?proto.game_protobuf_messages.proto.messages.UpdateSysPropertyNotification|undefined} value
 * @return {!proto.game_protobuf_messages.proto.messages.RoomNotification} returns this
 */
proto.game_protobuf_messages.proto.messages.RoomNotification.prototype.setUpdateSysProperty = function(
  value
) {
  return jspb.Message.setOneofWrapperField(
    this,
    22,
    proto.game_protobuf_messages.proto.messages.RoomNotification
      .oneofGroups_[0],
    value
  );
};

/**
 * Clears the message field making it undefined.
 * @return {!proto.game_protobuf_messages.proto.messages.RoomNotification} returns this
 */
proto.game_protobuf_messages.proto.messages.RoomNotification.prototype.clearUpdateSysProperty = function() {
  return this.setUpdateSysProperty(undefined);
};

/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.game_protobuf_messages.proto.messages.RoomNotification.prototype.hasUpdateSysProperty = function() {
  return jspb.Message.getField(this, 22) != null;
};

/**
 * optional UpdateMasterClientNotification update_master_client = 23;
 * @return {?proto.game_protobuf_messages.proto.messages.UpdateMasterClientNotification}
 */
proto.game_protobuf_messages.proto.messages.RoomNotification.prototype.getUpdateMasterClient = function() {
  return /** @type{?proto.game_protobuf_messages.proto.messages.UpdateMasterClientNotification} */ (jspb.Message.getWrapperField(
    this,
    proto.game_protobuf_messages.proto.messages.UpdateMasterClientNotification,
    23
  ));
};

/**
 * @param {?proto.game_protobuf_messages.proto.messages.UpdateMasterClientNotification|undefined} value
 * @return {!proto.game_protobuf_messages.proto.messages.RoomNotification} returns this
 */
proto.game_protobuf_messages.proto.messages.RoomNotification.prototype.setUpdateMasterClient = function(
  value
) {
  return jspb.Message.setOneofWrapperField(
    this,
    23,
    proto.game_protobuf_messages.proto.messages.RoomNotification
      .oneofGroups_[0],
    value
  );
};

/**
 * Clears the message field making it undefined.
 * @return {!proto.game_protobuf_messages.proto.messages.RoomNotification} returns this
 */
proto.game_protobuf_messages.proto.messages.RoomNotification.prototype.clearUpdateMasterClient = function() {
  return this.setUpdateMasterClient(undefined);
};

/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.game_protobuf_messages.proto.messages.RoomNotification.prototype.hasUpdateMasterClient = function() {
  return jspb.Message.getField(this, 23) != null;
};

/**
 * optional LeftRoomNotification left_room = 24;
 * @return {?proto.game_protobuf_messages.proto.messages.LeftRoomNotification}
 */
proto.game_protobuf_messages.proto.messages.RoomNotification.prototype.getLeftRoom = function() {
  return /** @type{?proto.game_protobuf_messages.proto.messages.LeftRoomNotification} */ (jspb.Message.getWrapperField(
    this,
    proto.game_protobuf_messages.proto.messages.LeftRoomNotification,
    24
  ));
};

/**
 * @param {?proto.game_protobuf_messages.proto.messages.LeftRoomNotification|undefined} value
 * @return {!proto.game_protobuf_messages.proto.messages.RoomNotification} returns this
 */
proto.game_protobuf_messages.proto.messages.RoomNotification.prototype.setLeftRoom = function(
  value
) {
  return jspb.Message.setOneofWrapperField(
    this,
    24,
    proto.game_protobuf_messages.proto.messages.RoomNotification
      .oneofGroups_[0],
    value
  );
};

/**
 * Clears the message field making it undefined.
 * @return {!proto.game_protobuf_messages.proto.messages.RoomNotification} returns this
 */
proto.game_protobuf_messages.proto.messages.RoomNotification.prototype.clearLeftRoom = function() {
  return this.setLeftRoom(undefined);
};

/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.game_protobuf_messages.proto.messages.RoomNotification.prototype.hasLeftRoom = function() {
  return jspb.Message.getField(this, 24) != null;
};

/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.game_protobuf_messages.proto.messages.DirectCommand.repeatedFields_ = [6];

if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game_protobuf_messages.proto.messages.DirectCommand.prototype.toObject = function(
    opt_includeInstance
  ) {
    return proto.game_protobuf_messages.proto.messages.DirectCommand.toObject(
      opt_includeInstance,
      this
    );
  };

  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game_protobuf_messages.proto.messages.DirectCommand} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.game_protobuf_messages.proto.messages.DirectCommand.toObject = function(
    includeInstance,
    msg
  ) {
    var f,
      obj = {
        cached: jspb.Message.getBooleanFieldWithDefault(msg, 1, false),
        eventId: jspb.Message.getFieldWithDefault(msg, 2, 0),
        receiverGroup: jspb.Message.getFieldWithDefault(msg, 3, 0),
        cachingOption: jspb.Message.getFieldWithDefault(msg, 4, 0),
        eventOptions: jspb.Message.getFieldWithDefault(msg, 5, 0),
        toActorIdsList:
          (f = jspb.Message.getRepeatedField(msg, 6)) == null ? undefined : f,
        msg: msg.getMsg_asB64(),
        timestamp: jspb.Message.getFieldWithDefault(msg, 8, 0),
        fromActorId: jspb.Message.getFieldWithDefault(msg, 9, 0),
        i: jspb.Message.getFieldWithDefault(msg, 10, 0),
        interestGroup: jspb.Message.getFieldWithDefault(msg, 11, 0),
      };

    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
}

/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.game_protobuf_messages.proto.messages.DirectCommand}
 */
proto.game_protobuf_messages.proto.messages.DirectCommand.deserializeBinary = function(
  bytes
) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.game_protobuf_messages.proto.messages.DirectCommand();
  return proto.game_protobuf_messages.proto.messages.DirectCommand.deserializeBinaryFromReader(
    msg,
    reader
  );
};

/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.game_protobuf_messages.proto.messages.DirectCommand} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.game_protobuf_messages.proto.messages.DirectCommand}
 */
proto.game_protobuf_messages.proto.messages.DirectCommand.deserializeBinaryFromReader = function(
  msg,
  reader
) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
      case 1:
        var value = /** @type {boolean} */ (reader.readBool());
        msg.setCached(value);
        break;
      case 2:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setEventId(value);
        break;
      case 3:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setReceiverGroup(value);
        break;
      case 4:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setCachingOption(value);
        break;
      case 5:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setEventOptions(value);
        break;
      case 6:
        var value = /** @type {!Array<number>} */ (reader.readPackedInt32());
        msg.setToActorIdsList(value);
        break;
      case 7:
        var value = /** @type {!Uint8Array} */ (reader.readBytes());
        msg.setMsg(value);
        break;
      case 8:
        var value = /** @type {number} */ (reader.readInt64());
        msg.setTimestamp(value);
        break;
      case 9:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setFromActorId(value);
        break;
      case 10:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setI(value);
        break;
      case 11:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setInterestGroup(value);
        break;
      default:
        reader.skipField();
        break;
    }
  }
  return msg;
};

/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.game_protobuf_messages.proto.messages.DirectCommand.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.game_protobuf_messages.proto.messages.DirectCommand.serializeBinaryToWriter(
    this,
    writer
  );
  return writer.getResultBuffer();
};

/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.game_protobuf_messages.proto.messages.DirectCommand} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.game_protobuf_messages.proto.messages.DirectCommand.serializeBinaryToWriter = function(
  message,
  writer
) {
  var f = undefined;
  f = message.getCached();
  if (f) {
    writer.writeBool(1, f);
  }
  f = message.getEventId();
  if (f !== 0) {
    writer.writeInt32(2, f);
  }
  f = message.getReceiverGroup();
  if (f !== 0) {
    writer.writeInt32(3, f);
  }
  f = message.getCachingOption();
  if (f !== 0) {
    writer.writeInt32(4, f);
  }
  f = message.getEventOptions();
  if (f !== 0) {
    writer.writeInt32(5, f);
  }
  f = message.getToActorIdsList();
  if (f.length > 0) {
    writer.writePackedInt32(6, f);
  }
  f = message.getMsg_asU8();
  if (f.length > 0) {
    writer.writeBytes(7, f);
  }
  f = message.getTimestamp();
  if (f !== 0) {
    writer.writeInt64(8, f);
  }
  f = message.getFromActorId();
  if (f !== 0) {
    writer.writeInt32(9, f);
  }
  f = message.getI();
  if (f !== 0) {
    writer.writeInt32(10, f);
  }
  f = message.getInterestGroup();
  if (f !== 0) {
    writer.writeInt32(11, f);
  }
};

/**
 * optional bool cached = 1;
 * @return {boolean}
 */
proto.game_protobuf_messages.proto.messages.DirectCommand.prototype.getCached = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(
    this,
    1,
    false
  ));
};

/**
 * @param {boolean} value
 * @return {!proto.game_protobuf_messages.proto.messages.DirectCommand} returns this
 */
proto.game_protobuf_messages.proto.messages.DirectCommand.prototype.setCached = function(
  value
) {
  return jspb.Message.setProto3BooleanField(this, 1, value);
};

/**
 * optional int32 event_id = 2;
 * @return {number}
 */
proto.game_protobuf_messages.proto.messages.DirectCommand.prototype.getEventId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
};

/**
 * @param {number} value
 * @return {!proto.game_protobuf_messages.proto.messages.DirectCommand} returns this
 */
proto.game_protobuf_messages.proto.messages.DirectCommand.prototype.setEventId = function(
  value
) {
  return jspb.Message.setProto3IntField(this, 2, value);
};

/**
 * optional int32 receiver_group = 3;
 * @return {number}
 */
proto.game_protobuf_messages.proto.messages.DirectCommand.prototype.getReceiverGroup = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));
};

/**
 * @param {number} value
 * @return {!proto.game_protobuf_messages.proto.messages.DirectCommand} returns this
 */
proto.game_protobuf_messages.proto.messages.DirectCommand.prototype.setReceiverGroup = function(
  value
) {
  return jspb.Message.setProto3IntField(this, 3, value);
};

/**
 * optional int32 caching_option = 4;
 * @return {number}
 */
proto.game_protobuf_messages.proto.messages.DirectCommand.prototype.getCachingOption = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));
};

/**
 * @param {number} value
 * @return {!proto.game_protobuf_messages.proto.messages.DirectCommand} returns this
 */
proto.game_protobuf_messages.proto.messages.DirectCommand.prototype.setCachingOption = function(
  value
) {
  return jspb.Message.setProto3IntField(this, 4, value);
};

/**
 * optional int32 event_options = 5;
 * @return {number}
 */
proto.game_protobuf_messages.proto.messages.DirectCommand.prototype.getEventOptions = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0));
};

/**
 * @param {number} value
 * @return {!proto.game_protobuf_messages.proto.messages.DirectCommand} returns this
 */
proto.game_protobuf_messages.proto.messages.DirectCommand.prototype.setEventOptions = function(
  value
) {
  return jspb.Message.setProto3IntField(this, 5, value);
};

/**
 * repeated int32 to_actor_ids = 6;
 * @return {!Array<number>}
 */
proto.game_protobuf_messages.proto.messages.DirectCommand.prototype.getToActorIdsList = function() {
  return /** @type {!Array<number>} */ (jspb.Message.getRepeatedField(this, 6));
};

/**
 * @param {!Array<number>} value
 * @return {!proto.game_protobuf_messages.proto.messages.DirectCommand} returns this
 */
proto.game_protobuf_messages.proto.messages.DirectCommand.prototype.setToActorIdsList = function(
  value
) {
  return jspb.Message.setField(this, 6, value || []);
};

/**
 * @param {number} value
 * @param {number=} opt_index
 * @return {!proto.game_protobuf_messages.proto.messages.DirectCommand} returns this
 */
proto.game_protobuf_messages.proto.messages.DirectCommand.prototype.addToActorIds = function(
  value,
  opt_index
) {
  return jspb.Message.addToRepeatedField(this, 6, value, opt_index);
};

/**
 * Clears the list making it empty but non-null.
 * @return {!proto.game_protobuf_messages.proto.messages.DirectCommand} returns this
 */
proto.game_protobuf_messages.proto.messages.DirectCommand.prototype.clearToActorIdsList = function() {
  return this.setToActorIdsList([]);
};

/**
 * optional bytes msg = 7;
 * @return {!(string|Uint8Array)}
 */
proto.game_protobuf_messages.proto.messages.DirectCommand.prototype.getMsg = function() {
  return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(
    this,
    7,
    ''
  ));
};

/**
 * optional bytes msg = 7;
 * This is a type-conversion wrapper around `getMsg()`
 * @return {string}
 */
proto.game_protobuf_messages.proto.messages.DirectCommand.prototype.getMsg_asB64 = function() {
  return /** @type {string} */ (jspb.Message.bytesAsB64(this.getMsg()));
};

/**
 * optional bytes msg = 7;
 * Note that Uint8Array is not supported on all browsers.
 * @see http://caniuse.com/Uint8Array
 * This is a type-conversion wrapper around `getMsg()`
 * @return {!Uint8Array}
 */
proto.game_protobuf_messages.proto.messages.DirectCommand.prototype.getMsg_asU8 = function() {
  return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getMsg()));
};

/**
 * @param {!(string|Uint8Array)} value
 * @return {!proto.game_protobuf_messages.proto.messages.DirectCommand} returns this
 */
proto.game_protobuf_messages.proto.messages.DirectCommand.prototype.setMsg = function(
  value
) {
  return jspb.Message.setProto3BytesField(this, 7, value);
};

/**
 * optional int64 timestamp = 8;
 * @return {number}
 */
proto.game_protobuf_messages.proto.messages.DirectCommand.prototype.getTimestamp = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 8, 0));
};

/**
 * @param {number} value
 * @return {!proto.game_protobuf_messages.proto.messages.DirectCommand} returns this
 */
proto.game_protobuf_messages.proto.messages.DirectCommand.prototype.setTimestamp = function(
  value
) {
  return jspb.Message.setProto3IntField(this, 8, value);
};

/**
 * optional int32 from_actor_id = 9;
 * @return {number}
 */
proto.game_protobuf_messages.proto.messages.DirectCommand.prototype.getFromActorId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 9, 0));
};

/**
 * @param {number} value
 * @return {!proto.game_protobuf_messages.proto.messages.DirectCommand} returns this
 */
proto.game_protobuf_messages.proto.messages.DirectCommand.prototype.setFromActorId = function(
  value
) {
  return jspb.Message.setProto3IntField(this, 9, value);
};

/**
 * optional int32 i = 10;
 * @return {number}
 */
proto.game_protobuf_messages.proto.messages.DirectCommand.prototype.getI = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 10, 0));
};

/**
 * @param {number} value
 * @return {!proto.game_protobuf_messages.proto.messages.DirectCommand} returns this
 */
proto.game_protobuf_messages.proto.messages.DirectCommand.prototype.setI = function(
  value
) {
  return jspb.Message.setProto3IntField(this, 10, value);
};

/**
 * optional int32 interest_group = 11;
 * @return {number}
 */
proto.game_protobuf_messages.proto.messages.DirectCommand.prototype.getInterestGroup = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 11, 0));
};

/**
 * @param {number} value
 * @return {!proto.game_protobuf_messages.proto.messages.DirectCommand} returns this
 */
proto.game_protobuf_messages.proto.messages.DirectCommand.prototype.setInterestGroup = function(
  value
) {
  return jspb.Message.setProto3IntField(this, 11, value);
};

if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game_protobuf_messages.proto.messages.AckCommand.prototype.toObject = function(
    opt_includeInstance
  ) {
    return proto.game_protobuf_messages.proto.messages.AckCommand.toObject(
      opt_includeInstance,
      this
    );
  };

  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game_protobuf_messages.proto.messages.AckCommand} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.game_protobuf_messages.proto.messages.AckCommand.toObject = function(
    includeInstance,
    msg
  ) {
    var f,
      obj = {
        timestamp: jspb.Message.getFieldWithDefault(msg, 1, 0),
        i: jspb.Message.getFieldWithDefault(msg, 11, 0),
      };

    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
}

/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.game_protobuf_messages.proto.messages.AckCommand}
 */
proto.game_protobuf_messages.proto.messages.AckCommand.deserializeBinary = function(
  bytes
) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.game_protobuf_messages.proto.messages.AckCommand();
  return proto.game_protobuf_messages.proto.messages.AckCommand.deserializeBinaryFromReader(
    msg,
    reader
  );
};

/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.game_protobuf_messages.proto.messages.AckCommand} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.game_protobuf_messages.proto.messages.AckCommand}
 */
proto.game_protobuf_messages.proto.messages.AckCommand.deserializeBinaryFromReader = function(
  msg,
  reader
) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
      case 1:
        var value = /** @type {number} */ (reader.readInt64());
        msg.setTimestamp(value);
        break;
      case 11:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setI(value);
        break;
      default:
        reader.skipField();
        break;
    }
  }
  return msg;
};

/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.game_protobuf_messages.proto.messages.AckCommand.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.game_protobuf_messages.proto.messages.AckCommand.serializeBinaryToWriter(
    this,
    writer
  );
  return writer.getResultBuffer();
};

/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.game_protobuf_messages.proto.messages.AckCommand} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.game_protobuf_messages.proto.messages.AckCommand.serializeBinaryToWriter = function(
  message,
  writer
) {
  var f = undefined;
  f = message.getTimestamp();
  if (f !== 0) {
    writer.writeInt64(1, f);
  }
  f = message.getI();
  if (f !== 0) {
    writer.writeInt32(11, f);
  }
};

/**
 * optional int64 timestamp = 1;
 * @return {number}
 */
proto.game_protobuf_messages.proto.messages.AckCommand.prototype.getTimestamp = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};

/**
 * @param {number} value
 * @return {!proto.game_protobuf_messages.proto.messages.AckCommand} returns this
 */
proto.game_protobuf_messages.proto.messages.AckCommand.prototype.setTimestamp = function(
  value
) {
  return jspb.Message.setProto3IntField(this, 1, value);
};

/**
 * optional int32 i = 11;
 * @return {number}
 */
proto.game_protobuf_messages.proto.messages.AckCommand.prototype.getI = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 11, 0));
};

/**
 * @param {number} value
 * @return {!proto.game_protobuf_messages.proto.messages.AckCommand} returns this
 */
proto.game_protobuf_messages.proto.messages.AckCommand.prototype.setI = function(
  value
) {
  return jspb.Message.setProto3IntField(this, 11, value);
};

if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game_protobuf_messages.proto.messages.EventsRequest.prototype.toObject = function(
    opt_includeInstance
  ) {
    return proto.game_protobuf_messages.proto.messages.EventsRequest.toObject(
      opt_includeInstance,
      this
    );
  };

  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game_protobuf_messages.proto.messages.EventsRequest} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.game_protobuf_messages.proto.messages.EventsRequest.toObject = function(
    includeInstance,
    msg
  ) {
    var f,
      obj = {
        msg: msg.getMsg_asB64(),
        actorId:
          (f = msg.getActorId()) &&
          google_protobuf_wrappers_pb.Int32Value.toObject(includeInstance, f),
        eventId:
          (f = msg.getEventId()) &&
          google_protobuf_wrappers_pb.Int32Value.toObject(includeInstance, f),
      };

    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
}

/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.game_protobuf_messages.proto.messages.EventsRequest}
 */
proto.game_protobuf_messages.proto.messages.EventsRequest.deserializeBinary = function(
  bytes
) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.game_protobuf_messages.proto.messages.EventsRequest();
  return proto.game_protobuf_messages.proto.messages.EventsRequest.deserializeBinaryFromReader(
    msg,
    reader
  );
};

/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.game_protobuf_messages.proto.messages.EventsRequest} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.game_protobuf_messages.proto.messages.EventsRequest}
 */
proto.game_protobuf_messages.proto.messages.EventsRequest.deserializeBinaryFromReader = function(
  msg,
  reader
) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
      case 1:
        var value = /** @type {!Uint8Array} */ (reader.readBytes());
        msg.setMsg(value);
        break;
      case 2:
        var value = new google_protobuf_wrappers_pb.Int32Value();
        reader.readMessage(
          value,
          google_protobuf_wrappers_pb.Int32Value.deserializeBinaryFromReader
        );
        msg.setActorId(value);
        break;
      case 3:
        var value = new google_protobuf_wrappers_pb.Int32Value();
        reader.readMessage(
          value,
          google_protobuf_wrappers_pb.Int32Value.deserializeBinaryFromReader
        );
        msg.setEventId(value);
        break;
      default:
        reader.skipField();
        break;
    }
  }
  return msg;
};

/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.game_protobuf_messages.proto.messages.EventsRequest.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.game_protobuf_messages.proto.messages.EventsRequest.serializeBinaryToWriter(
    this,
    writer
  );
  return writer.getResultBuffer();
};

/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.game_protobuf_messages.proto.messages.EventsRequest} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.game_protobuf_messages.proto.messages.EventsRequest.serializeBinaryToWriter = function(
  message,
  writer
) {
  var f = undefined;
  f = message.getMsg_asU8();
  if (f.length > 0) {
    writer.writeBytes(1, f);
  }
  f = message.getActorId();
  if (f != null) {
    writer.writeMessage(
      2,
      f,
      google_protobuf_wrappers_pb.Int32Value.serializeBinaryToWriter
    );
  }
  f = message.getEventId();
  if (f != null) {
    writer.writeMessage(
      3,
      f,
      google_protobuf_wrappers_pb.Int32Value.serializeBinaryToWriter
    );
  }
};

/**
 * optional bytes msg = 1;
 * @return {!(string|Uint8Array)}
 */
proto.game_protobuf_messages.proto.messages.EventsRequest.prototype.getMsg = function() {
  return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(
    this,
    1,
    ''
  ));
};

/**
 * optional bytes msg = 1;
 * This is a type-conversion wrapper around `getMsg()`
 * @return {string}
 */
proto.game_protobuf_messages.proto.messages.EventsRequest.prototype.getMsg_asB64 = function() {
  return /** @type {string} */ (jspb.Message.bytesAsB64(this.getMsg()));
};

/**
 * optional bytes msg = 1;
 * Note that Uint8Array is not supported on all browsers.
 * @see http://caniuse.com/Uint8Array
 * This is a type-conversion wrapper around `getMsg()`
 * @return {!Uint8Array}
 */
proto.game_protobuf_messages.proto.messages.EventsRequest.prototype.getMsg_asU8 = function() {
  return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getMsg()));
};

/**
 * @param {!(string|Uint8Array)} value
 * @return {!proto.game_protobuf_messages.proto.messages.EventsRequest} returns this
 */
proto.game_protobuf_messages.proto.messages.EventsRequest.prototype.setMsg = function(
  value
) {
  return jspb.Message.setProto3BytesField(this, 1, value);
};

/**
 * optional google.protobuf.Int32Value actor_id = 2;
 * @return {?proto.google.protobuf.Int32Value}
 */
proto.game_protobuf_messages.proto.messages.EventsRequest.prototype.getActorId = function() {
  return /** @type{?proto.google.protobuf.Int32Value} */ (jspb.Message.getWrapperField(
    this,
    google_protobuf_wrappers_pb.Int32Value,
    2
  ));
};

/**
 * @param {?proto.google.protobuf.Int32Value|undefined} value
 * @return {!proto.game_protobuf_messages.proto.messages.EventsRequest} returns this
 */
proto.game_protobuf_messages.proto.messages.EventsRequest.prototype.setActorId = function(
  value
) {
  return jspb.Message.setWrapperField(this, 2, value);
};

/**
 * Clears the message field making it undefined.
 * @return {!proto.game_protobuf_messages.proto.messages.EventsRequest} returns this
 */
proto.game_protobuf_messages.proto.messages.EventsRequest.prototype.clearActorId = function() {
  return this.setActorId(undefined);
};

/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.game_protobuf_messages.proto.messages.EventsRequest.prototype.hasActorId = function() {
  return jspb.Message.getField(this, 2) != null;
};

/**
 * optional google.protobuf.Int32Value event_id = 3;
 * @return {?proto.google.protobuf.Int32Value}
 */
proto.game_protobuf_messages.proto.messages.EventsRequest.prototype.getEventId = function() {
  return /** @type{?proto.google.protobuf.Int32Value} */ (jspb.Message.getWrapperField(
    this,
    google_protobuf_wrappers_pb.Int32Value,
    3
  ));
};

/**
 * @param {?proto.google.protobuf.Int32Value|undefined} value
 * @return {!proto.game_protobuf_messages.proto.messages.EventsRequest} returns this
 */
proto.game_protobuf_messages.proto.messages.EventsRequest.prototype.setEventId = function(
  value
) {
  return jspb.Message.setWrapperField(this, 3, value);
};

/**
 * Clears the message field making it undefined.
 * @return {!proto.game_protobuf_messages.proto.messages.EventsRequest} returns this
 */
proto.game_protobuf_messages.proto.messages.EventsRequest.prototype.clearEventId = function() {
  return this.setEventId(undefined);
};

/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.game_protobuf_messages.proto.messages.EventsRequest.prototype.hasEventId = function() {
  return jspb.Message.getField(this, 3) != null;
};

/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.game_protobuf_messages.proto.messages.EventsCommand.repeatedFields_ = [1];

if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game_protobuf_messages.proto.messages.EventsCommand.prototype.toObject = function(
    opt_includeInstance
  ) {
    return proto.game_protobuf_messages.proto.messages.EventsCommand.toObject(
      opt_includeInstance,
      this
    );
  };

  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game_protobuf_messages.proto.messages.EventsCommand} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.game_protobuf_messages.proto.messages.EventsCommand.toObject = function(
    includeInstance,
    msg
  ) {
    var f,
      obj = {
        eventsList: jspb.Message.toObjectList(
          msg.getEventsList(),
          proto.game_protobuf_messages.proto.messages.DirectCommand.toObject,
          includeInstance
        ),
      };

    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
}

/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.game_protobuf_messages.proto.messages.EventsCommand}
 */
proto.game_protobuf_messages.proto.messages.EventsCommand.deserializeBinary = function(
  bytes
) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.game_protobuf_messages.proto.messages.EventsCommand();
  return proto.game_protobuf_messages.proto.messages.EventsCommand.deserializeBinaryFromReader(
    msg,
    reader
  );
};

/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.game_protobuf_messages.proto.messages.EventsCommand} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.game_protobuf_messages.proto.messages.EventsCommand}
 */
proto.game_protobuf_messages.proto.messages.EventsCommand.deserializeBinaryFromReader = function(
  msg,
  reader
) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
      case 1:
        var value = new proto.game_protobuf_messages.proto.messages.DirectCommand();
        reader.readMessage(
          value,
          proto.game_protobuf_messages.proto.messages.DirectCommand
            .deserializeBinaryFromReader
        );
        msg.addEvents(value);
        break;
      default:
        reader.skipField();
        break;
    }
  }
  return msg;
};

/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.game_protobuf_messages.proto.messages.EventsCommand.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.game_protobuf_messages.proto.messages.EventsCommand.serializeBinaryToWriter(
    this,
    writer
  );
  return writer.getResultBuffer();
};

/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.game_protobuf_messages.proto.messages.EventsCommand} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.game_protobuf_messages.proto.messages.EventsCommand.serializeBinaryToWriter = function(
  message,
  writer
) {
  var f = undefined;
  f = message.getEventsList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      1,
      f,
      proto.game_protobuf_messages.proto.messages.DirectCommand
        .serializeBinaryToWriter
    );
  }
};

/**
 * repeated DirectCommand events = 1;
 * @return {!Array<!proto.game_protobuf_messages.proto.messages.DirectCommand>}
 */
proto.game_protobuf_messages.proto.messages.EventsCommand.prototype.getEventsList = function() {
  return /** @type{!Array<!proto.game_protobuf_messages.proto.messages.DirectCommand>} */ (jspb.Message.getRepeatedWrapperField(
    this,
    proto.game_protobuf_messages.proto.messages.DirectCommand,
    1
  ));
};

/**
 * @param {!Array<!proto.game_protobuf_messages.proto.messages.DirectCommand>} value
 * @return {!proto.game_protobuf_messages.proto.messages.EventsCommand} returns this
 */
proto.game_protobuf_messages.proto.messages.EventsCommand.prototype.setEventsList = function(
  value
) {
  return jspb.Message.setRepeatedWrapperField(this, 1, value);
};

/**
 * @param {!proto.game_protobuf_messages.proto.messages.DirectCommand=} opt_value
 * @param {number=} opt_index
 * @return {!proto.game_protobuf_messages.proto.messages.DirectCommand}
 */
proto.game_protobuf_messages.proto.messages.EventsCommand.prototype.addEvents = function(
  opt_value,
  opt_index
) {
  return jspb.Message.addToRepeatedWrapperField(
    this,
    1,
    opt_value,
    proto.game_protobuf_messages.proto.messages.DirectCommand,
    opt_index
  );
};

/**
 * Clears the list making it empty but non-null.
 * @return {!proto.game_protobuf_messages.proto.messages.EventsCommand} returns this
 */
proto.game_protobuf_messages.proto.messages.EventsCommand.prototype.clearEventsList = function() {
  return this.setEventsList([]);
};

/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.game_protobuf_messages.proto.messages.InterestGroups.repeatedFields_ = [
  1,
  2,
];

if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game_protobuf_messages.proto.messages.InterestGroups.prototype.toObject = function(
    opt_includeInstance
  ) {
    return proto.game_protobuf_messages.proto.messages.InterestGroups.toObject(
      opt_includeInstance,
      this
    );
  };

  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game_protobuf_messages.proto.messages.InterestGroups} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.game_protobuf_messages.proto.messages.InterestGroups.toObject = function(
    includeInstance,
    msg
  ) {
    var f,
      obj = {
        disabledGroupsList:
          (f = jspb.Message.getRepeatedField(msg, 1)) == null ? undefined : f,
        enabledGroupsList:
          (f = jspb.Message.getRepeatedField(msg, 2)) == null ? undefined : f,
      };

    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
}

/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.game_protobuf_messages.proto.messages.InterestGroups}
 */
proto.game_protobuf_messages.proto.messages.InterestGroups.deserializeBinary = function(
  bytes
) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.game_protobuf_messages.proto.messages.InterestGroups();
  return proto.game_protobuf_messages.proto.messages.InterestGroups.deserializeBinaryFromReader(
    msg,
    reader
  );
};

/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.game_protobuf_messages.proto.messages.InterestGroups} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.game_protobuf_messages.proto.messages.InterestGroups}
 */
proto.game_protobuf_messages.proto.messages.InterestGroups.deserializeBinaryFromReader = function(
  msg,
  reader
) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
      case 1:
        var value = /** @type {!Array<number>} */ (reader.readPackedInt32());
        msg.setDisabledGroupsList(value);
        break;
      case 2:
        var value = /** @type {!Array<number>} */ (reader.readPackedInt32());
        msg.setEnabledGroupsList(value);
        break;
      default:
        reader.skipField();
        break;
    }
  }
  return msg;
};

/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.game_protobuf_messages.proto.messages.InterestGroups.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.game_protobuf_messages.proto.messages.InterestGroups.serializeBinaryToWriter(
    this,
    writer
  );
  return writer.getResultBuffer();
};

/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.game_protobuf_messages.proto.messages.InterestGroups} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.game_protobuf_messages.proto.messages.InterestGroups.serializeBinaryToWriter = function(
  message,
  writer
) {
  var f = undefined;
  f = message.getDisabledGroupsList();
  if (f.length > 0) {
    writer.writePackedInt32(1, f);
  }
  f = message.getEnabledGroupsList();
  if (f.length > 0) {
    writer.writePackedInt32(2, f);
  }
};

/**
 * repeated int32 disabled_groups = 1;
 * @return {!Array<number>}
 */
proto.game_protobuf_messages.proto.messages.InterestGroups.prototype.getDisabledGroupsList = function() {
  return /** @type {!Array<number>} */ (jspb.Message.getRepeatedField(this, 1));
};

/**
 * @param {!Array<number>} value
 * @return {!proto.game_protobuf_messages.proto.messages.InterestGroups} returns this
 */
proto.game_protobuf_messages.proto.messages.InterestGroups.prototype.setDisabledGroupsList = function(
  value
) {
  return jspb.Message.setField(this, 1, value || []);
};

/**
 * @param {number} value
 * @param {number=} opt_index
 * @return {!proto.game_protobuf_messages.proto.messages.InterestGroups} returns this
 */
proto.game_protobuf_messages.proto.messages.InterestGroups.prototype.addDisabledGroups = function(
  value,
  opt_index
) {
  return jspb.Message.addToRepeatedField(this, 1, value, opt_index);
};

/**
 * Clears the list making it empty but non-null.
 * @return {!proto.game_protobuf_messages.proto.messages.InterestGroups} returns this
 */
proto.game_protobuf_messages.proto.messages.InterestGroups.prototype.clearDisabledGroupsList = function() {
  return this.setDisabledGroupsList([]);
};

/**
 * repeated int32 enabled_groups = 2;
 * @return {!Array<number>}
 */
proto.game_protobuf_messages.proto.messages.InterestGroups.prototype.getEnabledGroupsList = function() {
  return /** @type {!Array<number>} */ (jspb.Message.getRepeatedField(this, 2));
};

/**
 * @param {!Array<number>} value
 * @return {!proto.game_protobuf_messages.proto.messages.InterestGroups} returns this
 */
proto.game_protobuf_messages.proto.messages.InterestGroups.prototype.setEnabledGroupsList = function(
  value
) {
  return jspb.Message.setField(this, 2, value || []);
};

/**
 * @param {number} value
 * @param {number=} opt_index
 * @return {!proto.game_protobuf_messages.proto.messages.InterestGroups} returns this
 */
proto.game_protobuf_messages.proto.messages.InterestGroups.prototype.addEnabledGroups = function(
  value,
  opt_index
) {
  return jspb.Message.addToRepeatedField(this, 2, value, opt_index);
};

/**
 * Clears the list making it empty but non-null.
 * @return {!proto.game_protobuf_messages.proto.messages.InterestGroups} returns this
 */
proto.game_protobuf_messages.proto.messages.InterestGroups.prototype.clearEnabledGroupsList = function() {
  return this.setEnabledGroupsList([]);
};

if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game_protobuf_messages.proto.messages.JoinLobbyRequest.prototype.toObject = function(
    opt_includeInstance
  ) {
    return proto.game_protobuf_messages.proto.messages.JoinLobbyRequest.toObject(
      opt_includeInstance,
      this
    );
  };

  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game_protobuf_messages.proto.messages.JoinLobbyRequest} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.game_protobuf_messages.proto.messages.JoinLobbyRequest.toObject = function(
    includeInstance,
    msg
  ) {
    var f,
      obj = {
        lobbyId: jspb.Message.getFieldWithDefault(msg, 1, ''),
      };

    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
}

/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.game_protobuf_messages.proto.messages.JoinLobbyRequest}
 */
proto.game_protobuf_messages.proto.messages.JoinLobbyRequest.deserializeBinary = function(
  bytes
) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.game_protobuf_messages.proto.messages.JoinLobbyRequest();
  return proto.game_protobuf_messages.proto.messages.JoinLobbyRequest.deserializeBinaryFromReader(
    msg,
    reader
  );
};

/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.game_protobuf_messages.proto.messages.JoinLobbyRequest} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.game_protobuf_messages.proto.messages.JoinLobbyRequest}
 */
proto.game_protobuf_messages.proto.messages.JoinLobbyRequest.deserializeBinaryFromReader = function(
  msg,
  reader
) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
      case 1:
        var value = /** @type {string} */ (reader.readString());
        msg.setLobbyId(value);
        break;
      default:
        reader.skipField();
        break;
    }
  }
  return msg;
};

/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.game_protobuf_messages.proto.messages.JoinLobbyRequest.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.game_protobuf_messages.proto.messages.JoinLobbyRequest.serializeBinaryToWriter(
    this,
    writer
  );
  return writer.getResultBuffer();
};

/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.game_protobuf_messages.proto.messages.JoinLobbyRequest} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.game_protobuf_messages.proto.messages.JoinLobbyRequest.serializeBinaryToWriter = function(
  message,
  writer
) {
  var f = undefined;
  f = message.getLobbyId();
  if (f.length > 0) {
    writer.writeString(1, f);
  }
};

/**
 * optional string lobby_id = 1;
 * @return {string}
 */
proto.game_protobuf_messages.proto.messages.JoinLobbyRequest.prototype.getLobbyId = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ''));
};

/**
 * @param {string} value
 * @return {!proto.game_protobuf_messages.proto.messages.JoinLobbyRequest} returns this
 */
proto.game_protobuf_messages.proto.messages.JoinLobbyRequest.prototype.setLobbyId = function(
  value
) {
  return jspb.Message.setProto3StringField(this, 1, value);
};

/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.game_protobuf_messages.proto.messages.RoomListCommand.repeatedFields_ = [
  1,
];

if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game_protobuf_messages.proto.messages.RoomListCommand.prototype.toObject = function(
    opt_includeInstance
  ) {
    return proto.game_protobuf_messages.proto.messages.RoomListCommand.toObject(
      opt_includeInstance,
      this
    );
  };

  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game_protobuf_messages.proto.messages.RoomListCommand} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.game_protobuf_messages.proto.messages.RoomListCommand.toObject = function(
    includeInstance,
    msg
  ) {
    var f,
      obj = {
        listList: jspb.Message.toObjectList(
          msg.getListList(),
          proto.game_protobuf_messages.proto.messages.RoomOptions.toObject,
          includeInstance
        ),
      };

    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
}

/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.game_protobuf_messages.proto.messages.RoomListCommand}
 */
proto.game_protobuf_messages.proto.messages.RoomListCommand.deserializeBinary = function(
  bytes
) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.game_protobuf_messages.proto.messages.RoomListCommand();
  return proto.game_protobuf_messages.proto.messages.RoomListCommand.deserializeBinaryFromReader(
    msg,
    reader
  );
};

/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.game_protobuf_messages.proto.messages.RoomListCommand} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.game_protobuf_messages.proto.messages.RoomListCommand}
 */
proto.game_protobuf_messages.proto.messages.RoomListCommand.deserializeBinaryFromReader = function(
  msg,
  reader
) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
      case 1:
        var value = new proto.game_protobuf_messages.proto.messages.RoomOptions();
        reader.readMessage(
          value,
          proto.game_protobuf_messages.proto.messages.RoomOptions
            .deserializeBinaryFromReader
        );
        msg.addList(value);
        break;
      default:
        reader.skipField();
        break;
    }
  }
  return msg;
};

/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.game_protobuf_messages.proto.messages.RoomListCommand.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.game_protobuf_messages.proto.messages.RoomListCommand.serializeBinaryToWriter(
    this,
    writer
  );
  return writer.getResultBuffer();
};

/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.game_protobuf_messages.proto.messages.RoomListCommand} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.game_protobuf_messages.proto.messages.RoomListCommand.serializeBinaryToWriter = function(
  message,
  writer
) {
  var f = undefined;
  f = message.getListList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      1,
      f,
      proto.game_protobuf_messages.proto.messages.RoomOptions
        .serializeBinaryToWriter
    );
  }
};

/**
 * repeated RoomOptions list = 1;
 * @return {!Array<!proto.game_protobuf_messages.proto.messages.RoomOptions>}
 */
proto.game_protobuf_messages.proto.messages.RoomListCommand.prototype.getListList = function() {
  return /** @type{!Array<!proto.game_protobuf_messages.proto.messages.RoomOptions>} */ (jspb.Message.getRepeatedWrapperField(
    this,
    proto.game_protobuf_messages.proto.messages.RoomOptions,
    1
  ));
};

/**
 * @param {!Array<!proto.game_protobuf_messages.proto.messages.RoomOptions>} value
 * @return {!proto.game_protobuf_messages.proto.messages.RoomListCommand} returns this
 */
proto.game_protobuf_messages.proto.messages.RoomListCommand.prototype.setListList = function(
  value
) {
  return jspb.Message.setRepeatedWrapperField(this, 1, value);
};

/**
 * @param {!proto.game_protobuf_messages.proto.messages.RoomOptions=} opt_value
 * @param {number=} opt_index
 * @return {!proto.game_protobuf_messages.proto.messages.RoomOptions}
 */
proto.game_protobuf_messages.proto.messages.RoomListCommand.prototype.addList = function(
  opt_value,
  opt_index
) {
  return jspb.Message.addToRepeatedWrapperField(
    this,
    1,
    opt_value,
    proto.game_protobuf_messages.proto.messages.RoomOptions,
    opt_index
  );
};

/**
 * Clears the list making it empty but non-null.
 * @return {!proto.game_protobuf_messages.proto.messages.RoomListCommand} returns this
 */
proto.game_protobuf_messages.proto.messages.RoomListCommand.prototype.clearListList = function() {
  return this.setListList([]);
};

if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game_protobuf_messages.proto.messages.AppStatistic.prototype.toObject = function(
    opt_includeInstance
  ) {
    return proto.game_protobuf_messages.proto.messages.AppStatistic.toObject(
      opt_includeInstance,
      this
    );
  };

  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game_protobuf_messages.proto.messages.AppStatistic} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.game_protobuf_messages.proto.messages.AppStatistic.toObject = function(
    includeInstance,
    msg
  ) {
    var f,
      obj = {
        countOfRooms: jspb.Message.getFieldWithDefault(msg, 1, 0),
        countOfPlayersOnRouter: jspb.Message.getFieldWithDefault(msg, 2, 0),
        countOfPlayersInRooms: jspb.Message.getFieldWithDefault(msg, 3, 0),
        countOfPlayers: jspb.Message.getFieldWithDefault(msg, 4, 0),
      };

    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
}

/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.game_protobuf_messages.proto.messages.AppStatistic}
 */
proto.game_protobuf_messages.proto.messages.AppStatistic.deserializeBinary = function(
  bytes
) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.game_protobuf_messages.proto.messages.AppStatistic();
  return proto.game_protobuf_messages.proto.messages.AppStatistic.deserializeBinaryFromReader(
    msg,
    reader
  );
};

/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.game_protobuf_messages.proto.messages.AppStatistic} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.game_protobuf_messages.proto.messages.AppStatistic}
 */
proto.game_protobuf_messages.proto.messages.AppStatistic.deserializeBinaryFromReader = function(
  msg,
  reader
) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
      case 1:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setCountOfRooms(value);
        break;
      case 2:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setCountOfPlayersOnRouter(value);
        break;
      case 3:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setCountOfPlayersInRooms(value);
        break;
      case 4:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setCountOfPlayers(value);
        break;
      default:
        reader.skipField();
        break;
    }
  }
  return msg;
};

/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.game_protobuf_messages.proto.messages.AppStatistic.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.game_protobuf_messages.proto.messages.AppStatistic.serializeBinaryToWriter(
    this,
    writer
  );
  return writer.getResultBuffer();
};

/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.game_protobuf_messages.proto.messages.AppStatistic} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.game_protobuf_messages.proto.messages.AppStatistic.serializeBinaryToWriter = function(
  message,
  writer
) {
  var f = undefined;
  f = message.getCountOfRooms();
  if (f !== 0) {
    writer.writeInt32(1, f);
  }
  f = message.getCountOfPlayersOnRouter();
  if (f !== 0) {
    writer.writeInt32(2, f);
  }
  f = message.getCountOfPlayersInRooms();
  if (f !== 0) {
    writer.writeInt32(3, f);
  }
  f = message.getCountOfPlayers();
  if (f !== 0) {
    writer.writeInt32(4, f);
  }
};

/**
 * optional int32 count_of_rooms = 1;
 * @return {number}
 */
proto.game_protobuf_messages.proto.messages.AppStatistic.prototype.getCountOfRooms = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};

/**
 * @param {number} value
 * @return {!proto.game_protobuf_messages.proto.messages.AppStatistic} returns this
 */
proto.game_protobuf_messages.proto.messages.AppStatistic.prototype.setCountOfRooms = function(
  value
) {
  return jspb.Message.setProto3IntField(this, 1, value);
};

/**
 * optional int32 count_of_players_on_router = 2;
 * @return {number}
 */
proto.game_protobuf_messages.proto.messages.AppStatistic.prototype.getCountOfPlayersOnRouter = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
};

/**
 * @param {number} value
 * @return {!proto.game_protobuf_messages.proto.messages.AppStatistic} returns this
 */
proto.game_protobuf_messages.proto.messages.AppStatistic.prototype.setCountOfPlayersOnRouter = function(
  value
) {
  return jspb.Message.setProto3IntField(this, 2, value);
};

/**
 * optional int32 count_of_players_in_rooms = 3;
 * @return {number}
 */
proto.game_protobuf_messages.proto.messages.AppStatistic.prototype.getCountOfPlayersInRooms = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));
};

/**
 * @param {number} value
 * @return {!proto.game_protobuf_messages.proto.messages.AppStatistic} returns this
 */
proto.game_protobuf_messages.proto.messages.AppStatistic.prototype.setCountOfPlayersInRooms = function(
  value
) {
  return jspb.Message.setProto3IntField(this, 3, value);
};

/**
 * optional int32 count_of_players = 4;
 * @return {number}
 */
proto.game_protobuf_messages.proto.messages.AppStatistic.prototype.getCountOfPlayers = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));
};

/**
 * @param {number} value
 * @return {!proto.game_protobuf_messages.proto.messages.AppStatistic} returns this
 */
proto.game_protobuf_messages.proto.messages.AppStatistic.prototype.setCountOfPlayers = function(
  value
) {
  return jspb.Message.setProto3IntField(this, 4, value);
};

if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game_protobuf_messages.proto.messages.StatisticCommand.prototype.toObject = function(
    opt_includeInstance
  ) {
    return proto.game_protobuf_messages.proto.messages.StatisticCommand.toObject(
      opt_includeInstance,
      this
    );
  };

  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game_protobuf_messages.proto.messages.StatisticCommand} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.game_protobuf_messages.proto.messages.StatisticCommand.toObject = function(
    includeInstance,
    msg
  ) {
    var f,
      obj = {
        appStats:
          (f = msg.getAppStats()) &&
          proto.game_protobuf_messages.proto.messages.AppStatistic.toObject(
            includeInstance,
            f
          ),
      };

    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
}

/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.game_protobuf_messages.proto.messages.StatisticCommand}
 */
proto.game_protobuf_messages.proto.messages.StatisticCommand.deserializeBinary = function(
  bytes
) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.game_protobuf_messages.proto.messages.StatisticCommand();
  return proto.game_protobuf_messages.proto.messages.StatisticCommand.deserializeBinaryFromReader(
    msg,
    reader
  );
};

/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.game_protobuf_messages.proto.messages.StatisticCommand} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.game_protobuf_messages.proto.messages.StatisticCommand}
 */
proto.game_protobuf_messages.proto.messages.StatisticCommand.deserializeBinaryFromReader = function(
  msg,
  reader
) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
      case 1:
        var value = new proto.game_protobuf_messages.proto.messages.AppStatistic();
        reader.readMessage(
          value,
          proto.game_protobuf_messages.proto.messages.AppStatistic
            .deserializeBinaryFromReader
        );
        msg.setAppStats(value);
        break;
      default:
        reader.skipField();
        break;
    }
  }
  return msg;
};

/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.game_protobuf_messages.proto.messages.StatisticCommand.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.game_protobuf_messages.proto.messages.StatisticCommand.serializeBinaryToWriter(
    this,
    writer
  );
  return writer.getResultBuffer();
};

/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.game_protobuf_messages.proto.messages.StatisticCommand} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.game_protobuf_messages.proto.messages.StatisticCommand.serializeBinaryToWriter = function(
  message,
  writer
) {
  var f = undefined;
  f = message.getAppStats();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      proto.game_protobuf_messages.proto.messages.AppStatistic
        .serializeBinaryToWriter
    );
  }
};

/**
 * optional AppStatistic app_stats = 1;
 * @return {?proto.game_protobuf_messages.proto.messages.AppStatistic}
 */
proto.game_protobuf_messages.proto.messages.StatisticCommand.prototype.getAppStats = function() {
  return /** @type{?proto.game_protobuf_messages.proto.messages.AppStatistic} */ (jspb.Message.getWrapperField(
    this,
    proto.game_protobuf_messages.proto.messages.AppStatistic,
    1
  ));
};

/**
 * @param {?proto.game_protobuf_messages.proto.messages.AppStatistic|undefined} value
 * @return {!proto.game_protobuf_messages.proto.messages.StatisticCommand} returns this
 */
proto.game_protobuf_messages.proto.messages.StatisticCommand.prototype.setAppStats = function(
  value
) {
  return jspb.Message.setWrapperField(this, 1, value);
};

/**
 * Clears the message field making it undefined.
 * @return {!proto.game_protobuf_messages.proto.messages.StatisticCommand} returns this
 */
proto.game_protobuf_messages.proto.messages.StatisticCommand.prototype.clearAppStats = function() {
  return this.setAppStats(undefined);
};

/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.game_protobuf_messages.proto.messages.StatisticCommand.prototype.hasAppStats = function() {
  return jspb.Message.getField(this, 1) != null;
};

if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game_protobuf_messages.proto.messages.ErrorCommand.prototype.toObject = function(
    opt_includeInstance
  ) {
    return proto.game_protobuf_messages.proto.messages.ErrorCommand.toObject(
      opt_includeInstance,
      this
    );
  };

  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game_protobuf_messages.proto.messages.ErrorCommand} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.game_protobuf_messages.proto.messages.ErrorCommand.toObject = function(
    includeInstance,
    msg
  ) {
    var f,
      obj = {
        errorInfo:
          (f = msg.getErrorInfo()) &&
          proto.game_protobuf_messages.proto.messages.ErrorInfo.toObject(
            includeInstance,
            f
          ),
      };

    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
}

/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.game_protobuf_messages.proto.messages.ErrorCommand}
 */
proto.game_protobuf_messages.proto.messages.ErrorCommand.deserializeBinary = function(
  bytes
) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.game_protobuf_messages.proto.messages.ErrorCommand();
  return proto.game_protobuf_messages.proto.messages.ErrorCommand.deserializeBinaryFromReader(
    msg,
    reader
  );
};

/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.game_protobuf_messages.proto.messages.ErrorCommand} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.game_protobuf_messages.proto.messages.ErrorCommand}
 */
proto.game_protobuf_messages.proto.messages.ErrorCommand.deserializeBinaryFromReader = function(
  msg,
  reader
) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
      case 1:
        var value = new proto.game_protobuf_messages.proto.messages.ErrorInfo();
        reader.readMessage(
          value,
          proto.game_protobuf_messages.proto.messages.ErrorInfo
            .deserializeBinaryFromReader
        );
        msg.setErrorInfo(value);
        break;
      default:
        reader.skipField();
        break;
    }
  }
  return msg;
};

/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.game_protobuf_messages.proto.messages.ErrorCommand.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.game_protobuf_messages.proto.messages.ErrorCommand.serializeBinaryToWriter(
    this,
    writer
  );
  return writer.getResultBuffer();
};

/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.game_protobuf_messages.proto.messages.ErrorCommand} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.game_protobuf_messages.proto.messages.ErrorCommand.serializeBinaryToWriter = function(
  message,
  writer
) {
  var f = undefined;
  f = message.getErrorInfo();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      proto.game_protobuf_messages.proto.messages.ErrorInfo
        .serializeBinaryToWriter
    );
  }
};

/**
 * optional ErrorInfo error_info = 1;
 * @return {?proto.game_protobuf_messages.proto.messages.ErrorInfo}
 */
proto.game_protobuf_messages.proto.messages.ErrorCommand.prototype.getErrorInfo = function() {
  return /** @type{?proto.game_protobuf_messages.proto.messages.ErrorInfo} */ (jspb.Message.getWrapperField(
    this,
    proto.game_protobuf_messages.proto.messages.ErrorInfo,
    1
  ));
};

/**
 * @param {?proto.game_protobuf_messages.proto.messages.ErrorInfo|undefined} value
 * @return {!proto.game_protobuf_messages.proto.messages.ErrorCommand} returns this
 */
proto.game_protobuf_messages.proto.messages.ErrorCommand.prototype.setErrorInfo = function(
  value
) {
  return jspb.Message.setWrapperField(this, 1, value);
};

/**
 * Clears the message field making it undefined.
 * @return {!proto.game_protobuf_messages.proto.messages.ErrorCommand} returns this
 */
proto.game_protobuf_messages.proto.messages.ErrorCommand.prototype.clearErrorInfo = function() {
  return this.setErrorInfo(undefined);
};

/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.game_protobuf_messages.proto.messages.ErrorCommand.prototype.hasErrorInfo = function() {
  return jspb.Message.getField(this, 1) != null;
};

/**
 * Oneof group definitions for this message. Each group defines the field
 * numbers belonging to that group. When of these fields' value is set, all
 * other fields in the group are cleared. During deserialization, if multiple
 * fields are encountered for a group, only the last value seen will be kept.
 * @private {!Array<!Array<number>>}
 * @const
 */
proto.game_protobuf_messages.proto.messages.RequestMessage.oneofGroups_ = [
  [20, 21, 22, 23, 24, 25, 26, 27, 28, 54],
];

/**
 * @enum {number}
 */
proto.game_protobuf_messages.proto.messages.RequestMessage.RequestCase = {
  REQUEST_NOT_SET: 0,
  SESSION_OPEN: 20,
  CREATE_ROOM: 21,
  JOIN_ROOM: 22,
  UPDATE_PROPERTY: 23,
  UPDATE_SYS_PROPERTY: 24,
  UPDATE_MASTER_CLIENT: 25,
  KICK_MEMBER: 26,
  EVENTS: 27,
  INTEREST_GROUPS: 28,
  JOIN_LOBBY: 54,
};

/**
 * @return {proto.game_protobuf_messages.proto.messages.RequestMessage.RequestCase}
 */
proto.game_protobuf_messages.proto.messages.RequestMessage.prototype.getRequestCase = function() {
  return /** @type {proto.game_protobuf_messages.proto.messages.RequestMessage.RequestCase} */ (jspb.Message.computeOneofCase(
    this,
    proto.game_protobuf_messages.proto.messages.RequestMessage.oneofGroups_[0]
  ));
};

if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game_protobuf_messages.proto.messages.RequestMessage.prototype.toObject = function(
    opt_includeInstance
  ) {
    return proto.game_protobuf_messages.proto.messages.RequestMessage.toObject(
      opt_includeInstance,
      this
    );
  };

  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game_protobuf_messages.proto.messages.RequestMessage} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.game_protobuf_messages.proto.messages.RequestMessage.toObject = function(
    includeInstance,
    msg
  ) {
    var f,
      obj = {
        i: jspb.Message.getFieldWithDefault(msg, 1, 0),
        sessionOpen:
          (f = msg.getSessionOpen()) &&
          proto.game_protobuf_messages.proto.messages.SessionOpenRequest.toObject(
            includeInstance,
            f
          ),
        createRoom:
          (f = msg.getCreateRoom()) &&
          proto.game_protobuf_messages.proto.messages.CreateRoomRequest.toObject(
            includeInstance,
            f
          ),
        joinRoom:
          (f = msg.getJoinRoom()) &&
          proto.game_protobuf_messages.proto.messages.JoinRoomRequest.toObject(
            includeInstance,
            f
          ),
        updateProperty:
          (f = msg.getUpdateProperty()) &&
          proto.game_protobuf_messages.proto.messages.UpdatePropertyRequest.toObject(
            includeInstance,
            f
          ),
        updateSysProperty:
          (f = msg.getUpdateSysProperty()) &&
          proto.game_protobuf_messages.proto.messages.UpdateSysPropertyRequest.toObject(
            includeInstance,
            f
          ),
        updateMasterClient:
          (f = msg.getUpdateMasterClient()) &&
          proto.game_protobuf_messages.proto.messages.UpdateMasterClientRequest.toObject(
            includeInstance,
            f
          ),
        kickMember:
          (f = msg.getKickMember()) &&
          proto.game_protobuf_messages.proto.messages.KickMemberRequest.toObject(
            includeInstance,
            f
          ),
        events:
          (f = msg.getEvents()) &&
          proto.game_protobuf_messages.proto.messages.EventsRequest.toObject(
            includeInstance,
            f
          ),
        interestGroups:
          (f = msg.getInterestGroups()) &&
          proto.game_protobuf_messages.proto.messages.InterestGroups.toObject(
            includeInstance,
            f
          ),
        joinLobby:
          (f = msg.getJoinLobby()) &&
          proto.game_protobuf_messages.proto.messages.JoinLobbyRequest.toObject(
            includeInstance,
            f
          ),
      };

    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
}

/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.game_protobuf_messages.proto.messages.RequestMessage}
 */
proto.game_protobuf_messages.proto.messages.RequestMessage.deserializeBinary = function(
  bytes
) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.game_protobuf_messages.proto.messages.RequestMessage();
  return proto.game_protobuf_messages.proto.messages.RequestMessage.deserializeBinaryFromReader(
    msg,
    reader
  );
};

/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.game_protobuf_messages.proto.messages.RequestMessage} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.game_protobuf_messages.proto.messages.RequestMessage}
 */
proto.game_protobuf_messages.proto.messages.RequestMessage.deserializeBinaryFromReader = function(
  msg,
  reader
) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
      case 1:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setI(value);
        break;
      case 20:
        var value = new proto.game_protobuf_messages.proto.messages.SessionOpenRequest();
        reader.readMessage(
          value,
          proto.game_protobuf_messages.proto.messages.SessionOpenRequest
            .deserializeBinaryFromReader
        );
        msg.setSessionOpen(value);
        break;
      case 21:
        var value = new proto.game_protobuf_messages.proto.messages.CreateRoomRequest();
        reader.readMessage(
          value,
          proto.game_protobuf_messages.proto.messages.CreateRoomRequest
            .deserializeBinaryFromReader
        );
        msg.setCreateRoom(value);
        break;
      case 22:
        var value = new proto.game_protobuf_messages.proto.messages.JoinRoomRequest();
        reader.readMessage(
          value,
          proto.game_protobuf_messages.proto.messages.JoinRoomRequest
            .deserializeBinaryFromReader
        );
        msg.setJoinRoom(value);
        break;
      case 23:
        var value = new proto.game_protobuf_messages.proto.messages.UpdatePropertyRequest();
        reader.readMessage(
          value,
          proto.game_protobuf_messages.proto.messages.UpdatePropertyRequest
            .deserializeBinaryFromReader
        );
        msg.setUpdateProperty(value);
        break;
      case 24:
        var value = new proto.game_protobuf_messages.proto.messages.UpdateSysPropertyRequest();
        reader.readMessage(
          value,
          proto.game_protobuf_messages.proto.messages.UpdateSysPropertyRequest
            .deserializeBinaryFromReader
        );
        msg.setUpdateSysProperty(value);
        break;
      case 25:
        var value = new proto.game_protobuf_messages.proto.messages.UpdateMasterClientRequest();
        reader.readMessage(
          value,
          proto.game_protobuf_messages.proto.messages.UpdateMasterClientRequest
            .deserializeBinaryFromReader
        );
        msg.setUpdateMasterClient(value);
        break;
      case 26:
        var value = new proto.game_protobuf_messages.proto.messages.KickMemberRequest();
        reader.readMessage(
          value,
          proto.game_protobuf_messages.proto.messages.KickMemberRequest
            .deserializeBinaryFromReader
        );
        msg.setKickMember(value);
        break;
      case 27:
        var value = new proto.game_protobuf_messages.proto.messages.EventsRequest();
        reader.readMessage(
          value,
          proto.game_protobuf_messages.proto.messages.EventsRequest
            .deserializeBinaryFromReader
        );
        msg.setEvents(value);
        break;
      case 28:
        var value = new proto.game_protobuf_messages.proto.messages.InterestGroups();
        reader.readMessage(
          value,
          proto.game_protobuf_messages.proto.messages.InterestGroups
            .deserializeBinaryFromReader
        );
        msg.setInterestGroups(value);
        break;
      case 54:
        var value = new proto.game_protobuf_messages.proto.messages.JoinLobbyRequest();
        reader.readMessage(
          value,
          proto.game_protobuf_messages.proto.messages.JoinLobbyRequest
            .deserializeBinaryFromReader
        );
        msg.setJoinLobby(value);
        break;
      default:
        reader.skipField();
        break;
    }
  }
  return msg;
};

/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.game_protobuf_messages.proto.messages.RequestMessage.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.game_protobuf_messages.proto.messages.RequestMessage.serializeBinaryToWriter(
    this,
    writer
  );
  return writer.getResultBuffer();
};

/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.game_protobuf_messages.proto.messages.RequestMessage} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.game_protobuf_messages.proto.messages.RequestMessage.serializeBinaryToWriter = function(
  message,
  writer
) {
  var f = undefined;
  f = message.getI();
  if (f !== 0) {
    writer.writeInt32(1, f);
  }
  f = message.getSessionOpen();
  if (f != null) {
    writer.writeMessage(
      20,
      f,
      proto.game_protobuf_messages.proto.messages.SessionOpenRequest
        .serializeBinaryToWriter
    );
  }
  f = message.getCreateRoom();
  if (f != null) {
    writer.writeMessage(
      21,
      f,
      proto.game_protobuf_messages.proto.messages.CreateRoomRequest
        .serializeBinaryToWriter
    );
  }
  f = message.getJoinRoom();
  if (f != null) {
    writer.writeMessage(
      22,
      f,
      proto.game_protobuf_messages.proto.messages.JoinRoomRequest
        .serializeBinaryToWriter
    );
  }
  f = message.getUpdateProperty();
  if (f != null) {
    writer.writeMessage(
      23,
      f,
      proto.game_protobuf_messages.proto.messages.UpdatePropertyRequest
        .serializeBinaryToWriter
    );
  }
  f = message.getUpdateSysProperty();
  if (f != null) {
    writer.writeMessage(
      24,
      f,
      proto.game_protobuf_messages.proto.messages.UpdateSysPropertyRequest
        .serializeBinaryToWriter
    );
  }
  f = message.getUpdateMasterClient();
  if (f != null) {
    writer.writeMessage(
      25,
      f,
      proto.game_protobuf_messages.proto.messages.UpdateMasterClientRequest
        .serializeBinaryToWriter
    );
  }
  f = message.getKickMember();
  if (f != null) {
    writer.writeMessage(
      26,
      f,
      proto.game_protobuf_messages.proto.messages.KickMemberRequest
        .serializeBinaryToWriter
    );
  }
  f = message.getEvents();
  if (f != null) {
    writer.writeMessage(
      27,
      f,
      proto.game_protobuf_messages.proto.messages.EventsRequest
        .serializeBinaryToWriter
    );
  }
  f = message.getInterestGroups();
  if (f != null) {
    writer.writeMessage(
      28,
      f,
      proto.game_protobuf_messages.proto.messages.InterestGroups
        .serializeBinaryToWriter
    );
  }
  f = message.getJoinLobby();
  if (f != null) {
    writer.writeMessage(
      54,
      f,
      proto.game_protobuf_messages.proto.messages.JoinLobbyRequest
        .serializeBinaryToWriter
    );
  }
};

/**
 * optional int32 i = 1;
 * @return {number}
 */
proto.game_protobuf_messages.proto.messages.RequestMessage.prototype.getI = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};

/**
 * @param {number} value
 * @return {!proto.game_protobuf_messages.proto.messages.RequestMessage} returns this
 */
proto.game_protobuf_messages.proto.messages.RequestMessage.prototype.setI = function(
  value
) {
  return jspb.Message.setProto3IntField(this, 1, value);
};

/**
 * optional SessionOpenRequest session_open = 20;
 * @return {?proto.game_protobuf_messages.proto.messages.SessionOpenRequest}
 */
proto.game_protobuf_messages.proto.messages.RequestMessage.prototype.getSessionOpen = function() {
  return /** @type{?proto.game_protobuf_messages.proto.messages.SessionOpenRequest} */ (jspb.Message.getWrapperField(
    this,
    proto.game_protobuf_messages.proto.messages.SessionOpenRequest,
    20
  ));
};

/**
 * @param {?proto.game_protobuf_messages.proto.messages.SessionOpenRequest|undefined} value
 * @return {!proto.game_protobuf_messages.proto.messages.RequestMessage} returns this
 */
proto.game_protobuf_messages.proto.messages.RequestMessage.prototype.setSessionOpen = function(
  value
) {
  return jspb.Message.setOneofWrapperField(
    this,
    20,
    proto.game_protobuf_messages.proto.messages.RequestMessage.oneofGroups_[0],
    value
  );
};

/**
 * Clears the message field making it undefined.
 * @return {!proto.game_protobuf_messages.proto.messages.RequestMessage} returns this
 */
proto.game_protobuf_messages.proto.messages.RequestMessage.prototype.clearSessionOpen = function() {
  return this.setSessionOpen(undefined);
};

/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.game_protobuf_messages.proto.messages.RequestMessage.prototype.hasSessionOpen = function() {
  return jspb.Message.getField(this, 20) != null;
};

/**
 * optional CreateRoomRequest create_room = 21;
 * @return {?proto.game_protobuf_messages.proto.messages.CreateRoomRequest}
 */
proto.game_protobuf_messages.proto.messages.RequestMessage.prototype.getCreateRoom = function() {
  return /** @type{?proto.game_protobuf_messages.proto.messages.CreateRoomRequest} */ (jspb.Message.getWrapperField(
    this,
    proto.game_protobuf_messages.proto.messages.CreateRoomRequest,
    21
  ));
};

/**
 * @param {?proto.game_protobuf_messages.proto.messages.CreateRoomRequest|undefined} value
 * @return {!proto.game_protobuf_messages.proto.messages.RequestMessage} returns this
 */
proto.game_protobuf_messages.proto.messages.RequestMessage.prototype.setCreateRoom = function(
  value
) {
  return jspb.Message.setOneofWrapperField(
    this,
    21,
    proto.game_protobuf_messages.proto.messages.RequestMessage.oneofGroups_[0],
    value
  );
};

/**
 * Clears the message field making it undefined.
 * @return {!proto.game_protobuf_messages.proto.messages.RequestMessage} returns this
 */
proto.game_protobuf_messages.proto.messages.RequestMessage.prototype.clearCreateRoom = function() {
  return this.setCreateRoom(undefined);
};

/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.game_protobuf_messages.proto.messages.RequestMessage.prototype.hasCreateRoom = function() {
  return jspb.Message.getField(this, 21) != null;
};

/**
 * optional JoinRoomRequest join_room = 22;
 * @return {?proto.game_protobuf_messages.proto.messages.JoinRoomRequest}
 */
proto.game_protobuf_messages.proto.messages.RequestMessage.prototype.getJoinRoom = function() {
  return /** @type{?proto.game_protobuf_messages.proto.messages.JoinRoomRequest} */ (jspb.Message.getWrapperField(
    this,
    proto.game_protobuf_messages.proto.messages.JoinRoomRequest,
    22
  ));
};

/**
 * @param {?proto.game_protobuf_messages.proto.messages.JoinRoomRequest|undefined} value
 * @return {!proto.game_protobuf_messages.proto.messages.RequestMessage} returns this
 */
proto.game_protobuf_messages.proto.messages.RequestMessage.prototype.setJoinRoom = function(
  value
) {
  return jspb.Message.setOneofWrapperField(
    this,
    22,
    proto.game_protobuf_messages.proto.messages.RequestMessage.oneofGroups_[0],
    value
  );
};

/**
 * Clears the message field making it undefined.
 * @return {!proto.game_protobuf_messages.proto.messages.RequestMessage} returns this
 */
proto.game_protobuf_messages.proto.messages.RequestMessage.prototype.clearJoinRoom = function() {
  return this.setJoinRoom(undefined);
};

/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.game_protobuf_messages.proto.messages.RequestMessage.prototype.hasJoinRoom = function() {
  return jspb.Message.getField(this, 22) != null;
};

/**
 * optional UpdatePropertyRequest update_property = 23;
 * @return {?proto.game_protobuf_messages.proto.messages.UpdatePropertyRequest}
 */
proto.game_protobuf_messages.proto.messages.RequestMessage.prototype.getUpdateProperty = function() {
  return /** @type{?proto.game_protobuf_messages.proto.messages.UpdatePropertyRequest} */ (jspb.Message.getWrapperField(
    this,
    proto.game_protobuf_messages.proto.messages.UpdatePropertyRequest,
    23
  ));
};

/**
 * @param {?proto.game_protobuf_messages.proto.messages.UpdatePropertyRequest|undefined} value
 * @return {!proto.game_protobuf_messages.proto.messages.RequestMessage} returns this
 */
proto.game_protobuf_messages.proto.messages.RequestMessage.prototype.setUpdateProperty = function(
  value
) {
  return jspb.Message.setOneofWrapperField(
    this,
    23,
    proto.game_protobuf_messages.proto.messages.RequestMessage.oneofGroups_[0],
    value
  );
};

/**
 * Clears the message field making it undefined.
 * @return {!proto.game_protobuf_messages.proto.messages.RequestMessage} returns this
 */
proto.game_protobuf_messages.proto.messages.RequestMessage.prototype.clearUpdateProperty = function() {
  return this.setUpdateProperty(undefined);
};

/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.game_protobuf_messages.proto.messages.RequestMessage.prototype.hasUpdateProperty = function() {
  return jspb.Message.getField(this, 23) != null;
};

/**
 * optional UpdateSysPropertyRequest update_sys_property = 24;
 * @return {?proto.game_protobuf_messages.proto.messages.UpdateSysPropertyRequest}
 */
proto.game_protobuf_messages.proto.messages.RequestMessage.prototype.getUpdateSysProperty = function() {
  return /** @type{?proto.game_protobuf_messages.proto.messages.UpdateSysPropertyRequest} */ (jspb.Message.getWrapperField(
    this,
    proto.game_protobuf_messages.proto.messages.UpdateSysPropertyRequest,
    24
  ));
};

/**
 * @param {?proto.game_protobuf_messages.proto.messages.UpdateSysPropertyRequest|undefined} value
 * @return {!proto.game_protobuf_messages.proto.messages.RequestMessage} returns this
 */
proto.game_protobuf_messages.proto.messages.RequestMessage.prototype.setUpdateSysProperty = function(
  value
) {
  return jspb.Message.setOneofWrapperField(
    this,
    24,
    proto.game_protobuf_messages.proto.messages.RequestMessage.oneofGroups_[0],
    value
  );
};

/**
 * Clears the message field making it undefined.
 * @return {!proto.game_protobuf_messages.proto.messages.RequestMessage} returns this
 */
proto.game_protobuf_messages.proto.messages.RequestMessage.prototype.clearUpdateSysProperty = function() {
  return this.setUpdateSysProperty(undefined);
};

/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.game_protobuf_messages.proto.messages.RequestMessage.prototype.hasUpdateSysProperty = function() {
  return jspb.Message.getField(this, 24) != null;
};

/**
 * optional UpdateMasterClientRequest update_master_client = 25;
 * @return {?proto.game_protobuf_messages.proto.messages.UpdateMasterClientRequest}
 */
proto.game_protobuf_messages.proto.messages.RequestMessage.prototype.getUpdateMasterClient = function() {
  return /** @type{?proto.game_protobuf_messages.proto.messages.UpdateMasterClientRequest} */ (jspb.Message.getWrapperField(
    this,
    proto.game_protobuf_messages.proto.messages.UpdateMasterClientRequest,
    25
  ));
};

/**
 * @param {?proto.game_protobuf_messages.proto.messages.UpdateMasterClientRequest|undefined} value
 * @return {!proto.game_protobuf_messages.proto.messages.RequestMessage} returns this
 */
proto.game_protobuf_messages.proto.messages.RequestMessage.prototype.setUpdateMasterClient = function(
  value
) {
  return jspb.Message.setOneofWrapperField(
    this,
    25,
    proto.game_protobuf_messages.proto.messages.RequestMessage.oneofGroups_[0],
    value
  );
};

/**
 * Clears the message field making it undefined.
 * @return {!proto.game_protobuf_messages.proto.messages.RequestMessage} returns this
 */
proto.game_protobuf_messages.proto.messages.RequestMessage.prototype.clearUpdateMasterClient = function() {
  return this.setUpdateMasterClient(undefined);
};

/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.game_protobuf_messages.proto.messages.RequestMessage.prototype.hasUpdateMasterClient = function() {
  return jspb.Message.getField(this, 25) != null;
};

/**
 * optional KickMemberRequest kick_member = 26;
 * @return {?proto.game_protobuf_messages.proto.messages.KickMemberRequest}
 */
proto.game_protobuf_messages.proto.messages.RequestMessage.prototype.getKickMember = function() {
  return /** @type{?proto.game_protobuf_messages.proto.messages.KickMemberRequest} */ (jspb.Message.getWrapperField(
    this,
    proto.game_protobuf_messages.proto.messages.KickMemberRequest,
    26
  ));
};

/**
 * @param {?proto.game_protobuf_messages.proto.messages.KickMemberRequest|undefined} value
 * @return {!proto.game_protobuf_messages.proto.messages.RequestMessage} returns this
 */
proto.game_protobuf_messages.proto.messages.RequestMessage.prototype.setKickMember = function(
  value
) {
  return jspb.Message.setOneofWrapperField(
    this,
    26,
    proto.game_protobuf_messages.proto.messages.RequestMessage.oneofGroups_[0],
    value
  );
};

/**
 * Clears the message field making it undefined.
 * @return {!proto.game_protobuf_messages.proto.messages.RequestMessage} returns this
 */
proto.game_protobuf_messages.proto.messages.RequestMessage.prototype.clearKickMember = function() {
  return this.setKickMember(undefined);
};

/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.game_protobuf_messages.proto.messages.RequestMessage.prototype.hasKickMember = function() {
  return jspb.Message.getField(this, 26) != null;
};

/**
 * optional EventsRequest events = 27;
 * @return {?proto.game_protobuf_messages.proto.messages.EventsRequest}
 */
proto.game_protobuf_messages.proto.messages.RequestMessage.prototype.getEvents = function() {
  return /** @type{?proto.game_protobuf_messages.proto.messages.EventsRequest} */ (jspb.Message.getWrapperField(
    this,
    proto.game_protobuf_messages.proto.messages.EventsRequest,
    27
  ));
};

/**
 * @param {?proto.game_protobuf_messages.proto.messages.EventsRequest|undefined} value
 * @return {!proto.game_protobuf_messages.proto.messages.RequestMessage} returns this
 */
proto.game_protobuf_messages.proto.messages.RequestMessage.prototype.setEvents = function(
  value
) {
  return jspb.Message.setOneofWrapperField(
    this,
    27,
    proto.game_protobuf_messages.proto.messages.RequestMessage.oneofGroups_[0],
    value
  );
};

/**
 * Clears the message field making it undefined.
 * @return {!proto.game_protobuf_messages.proto.messages.RequestMessage} returns this
 */
proto.game_protobuf_messages.proto.messages.RequestMessage.prototype.clearEvents = function() {
  return this.setEvents(undefined);
};

/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.game_protobuf_messages.proto.messages.RequestMessage.prototype.hasEvents = function() {
  return jspb.Message.getField(this, 27) != null;
};

/**
 * optional InterestGroups interest_groups = 28;
 * @return {?proto.game_protobuf_messages.proto.messages.InterestGroups}
 */
proto.game_protobuf_messages.proto.messages.RequestMessage.prototype.getInterestGroups = function() {
  return /** @type{?proto.game_protobuf_messages.proto.messages.InterestGroups} */ (jspb.Message.getWrapperField(
    this,
    proto.game_protobuf_messages.proto.messages.InterestGroups,
    28
  ));
};

/**
 * @param {?proto.game_protobuf_messages.proto.messages.InterestGroups|undefined} value
 * @return {!proto.game_protobuf_messages.proto.messages.RequestMessage} returns this
 */
proto.game_protobuf_messages.proto.messages.RequestMessage.prototype.setInterestGroups = function(
  value
) {
  return jspb.Message.setOneofWrapperField(
    this,
    28,
    proto.game_protobuf_messages.proto.messages.RequestMessage.oneofGroups_[0],
    value
  );
};

/**
 * Clears the message field making it undefined.
 * @return {!proto.game_protobuf_messages.proto.messages.RequestMessage} returns this
 */
proto.game_protobuf_messages.proto.messages.RequestMessage.prototype.clearInterestGroups = function() {
  return this.setInterestGroups(undefined);
};

/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.game_protobuf_messages.proto.messages.RequestMessage.prototype.hasInterestGroups = function() {
  return jspb.Message.getField(this, 28) != null;
};

/**
 * optional JoinLobbyRequest join_lobby = 54;
 * @return {?proto.game_protobuf_messages.proto.messages.JoinLobbyRequest}
 */
proto.game_protobuf_messages.proto.messages.RequestMessage.prototype.getJoinLobby = function() {
  return /** @type{?proto.game_protobuf_messages.proto.messages.JoinLobbyRequest} */ (jspb.Message.getWrapperField(
    this,
    proto.game_protobuf_messages.proto.messages.JoinLobbyRequest,
    54
  ));
};

/**
 * @param {?proto.game_protobuf_messages.proto.messages.JoinLobbyRequest|undefined} value
 * @return {!proto.game_protobuf_messages.proto.messages.RequestMessage} returns this
 */
proto.game_protobuf_messages.proto.messages.RequestMessage.prototype.setJoinLobby = function(
  value
) {
  return jspb.Message.setOneofWrapperField(
    this,
    54,
    proto.game_protobuf_messages.proto.messages.RequestMessage.oneofGroups_[0],
    value
  );
};

/**
 * Clears the message field making it undefined.
 * @return {!proto.game_protobuf_messages.proto.messages.RequestMessage} returns this
 */
proto.game_protobuf_messages.proto.messages.RequestMessage.prototype.clearJoinLobby = function() {
  return this.setJoinLobby(undefined);
};

/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.game_protobuf_messages.proto.messages.RequestMessage.prototype.hasJoinLobby = function() {
  return jspb.Message.getField(this, 54) != null;
};

/**
 * Oneof group definitions for this message. Each group defines the field
 * numbers belonging to that group. When of these fields' value is set, all
 * other fields in the group are cleared. During deserialization, if multiple
 * fields are encountered for a group, only the last value seen will be kept.
 * @private {!Array<!Array<number>>}
 * @const
 */
proto.game_protobuf_messages.proto.messages.ResponseMessage.oneofGroups_ = [
  [20, 21, 22, 23, 24, 25, 26, 28],
];

/**
 * @enum {number}
 */
proto.game_protobuf_messages.proto.messages.ResponseMessage.ResponseCase = {
  RESPONSE_NOT_SET: 0,
  CREATE_ROOM: 20,
  JOIN_ROOM: 21,
  UPDATE_PROPERTY: 22,
  UPDATE_SYS_PROPERTY: 23,
  UPDATE_MASTER_CLIENT: 24,
  KICK_MEMBER: 25,
  ACK: 26,
  INTEREST_GROUPS: 28,
};

/**
 * @return {proto.game_protobuf_messages.proto.messages.ResponseMessage.ResponseCase}
 */
proto.game_protobuf_messages.proto.messages.ResponseMessage.prototype.getResponseCase = function() {
  return /** @type {proto.game_protobuf_messages.proto.messages.ResponseMessage.ResponseCase} */ (jspb.Message.computeOneofCase(
    this,
    proto.game_protobuf_messages.proto.messages.ResponseMessage.oneofGroups_[0]
  ));
};

if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game_protobuf_messages.proto.messages.ResponseMessage.prototype.toObject = function(
    opt_includeInstance
  ) {
    return proto.game_protobuf_messages.proto.messages.ResponseMessage.toObject(
      opt_includeInstance,
      this
    );
  };

  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game_protobuf_messages.proto.messages.ResponseMessage} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.game_protobuf_messages.proto.messages.ResponseMessage.toObject = function(
    includeInstance,
    msg
  ) {
    var f,
      obj = {
        i: jspb.Message.getFieldWithDefault(msg, 1, 0),
        errorInfo:
          (f = msg.getErrorInfo()) &&
          proto.game_protobuf_messages.proto.messages.ErrorInfo.toObject(
            includeInstance,
            f
          ),
        createRoom:
          (f = msg.getCreateRoom()) &&
          proto.game_protobuf_messages.proto.messages.CreateRoomResponse.toObject(
            includeInstance,
            f
          ),
        joinRoom:
          (f = msg.getJoinRoom()) &&
          proto.game_protobuf_messages.proto.messages.JoinRoomResponse.toObject(
            includeInstance,
            f
          ),
        updateProperty:
          (f = msg.getUpdateProperty()) &&
          proto.game_protobuf_messages.proto.messages.UpdatePropertyResponse.toObject(
            includeInstance,
            f
          ),
        updateSysProperty:
          (f = msg.getUpdateSysProperty()) &&
          proto.game_protobuf_messages.proto.messages.UpdateSysPropertyResponse.toObject(
            includeInstance,
            f
          ),
        updateMasterClient:
          (f = msg.getUpdateMasterClient()) &&
          proto.game_protobuf_messages.proto.messages.UpdateMasterClientResponse.toObject(
            includeInstance,
            f
          ),
        kickMember:
          (f = msg.getKickMember()) &&
          proto.game_protobuf_messages.proto.messages.KickMemberResponse.toObject(
            includeInstance,
            f
          ),
        ack:
          (f = msg.getAck()) &&
          proto.game_protobuf_messages.proto.messages.AckCommand.toObject(
            includeInstance,
            f
          ),
        interestGroups:
          (f = msg.getInterestGroups()) &&
          proto.game_protobuf_messages.proto.messages.InterestGroups.toObject(
            includeInstance,
            f
          ),
      };

    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
}

/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.game_protobuf_messages.proto.messages.ResponseMessage}
 */
proto.game_protobuf_messages.proto.messages.ResponseMessage.deserializeBinary = function(
  bytes
) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.game_protobuf_messages.proto.messages.ResponseMessage();
  return proto.game_protobuf_messages.proto.messages.ResponseMessage.deserializeBinaryFromReader(
    msg,
    reader
  );
};

/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.game_protobuf_messages.proto.messages.ResponseMessage} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.game_protobuf_messages.proto.messages.ResponseMessage}
 */
proto.game_protobuf_messages.proto.messages.ResponseMessage.deserializeBinaryFromReader = function(
  msg,
  reader
) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
      case 1:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setI(value);
        break;
      case 2:
        var value = new proto.game_protobuf_messages.proto.messages.ErrorInfo();
        reader.readMessage(
          value,
          proto.game_protobuf_messages.proto.messages.ErrorInfo
            .deserializeBinaryFromReader
        );
        msg.setErrorInfo(value);
        break;
      case 20:
        var value = new proto.game_protobuf_messages.proto.messages.CreateRoomResponse();
        reader.readMessage(
          value,
          proto.game_protobuf_messages.proto.messages.CreateRoomResponse
            .deserializeBinaryFromReader
        );
        msg.setCreateRoom(value);
        break;
      case 21:
        var value = new proto.game_protobuf_messages.proto.messages.JoinRoomResponse();
        reader.readMessage(
          value,
          proto.game_protobuf_messages.proto.messages.JoinRoomResponse
            .deserializeBinaryFromReader
        );
        msg.setJoinRoom(value);
        break;
      case 22:
        var value = new proto.game_protobuf_messages.proto.messages.UpdatePropertyResponse();
        reader.readMessage(
          value,
          proto.game_protobuf_messages.proto.messages.UpdatePropertyResponse
            .deserializeBinaryFromReader
        );
        msg.setUpdateProperty(value);
        break;
      case 23:
        var value = new proto.game_protobuf_messages.proto.messages.UpdateSysPropertyResponse();
        reader.readMessage(
          value,
          proto.game_protobuf_messages.proto.messages.UpdateSysPropertyResponse
            .deserializeBinaryFromReader
        );
        msg.setUpdateSysProperty(value);
        break;
      case 24:
        var value = new proto.game_protobuf_messages.proto.messages.UpdateMasterClientResponse();
        reader.readMessage(
          value,
          proto.game_protobuf_messages.proto.messages.UpdateMasterClientResponse
            .deserializeBinaryFromReader
        );
        msg.setUpdateMasterClient(value);
        break;
      case 25:
        var value = new proto.game_protobuf_messages.proto.messages.KickMemberResponse();
        reader.readMessage(
          value,
          proto.game_protobuf_messages.proto.messages.KickMemberResponse
            .deserializeBinaryFromReader
        );
        msg.setKickMember(value);
        break;
      case 26:
        var value = new proto.game_protobuf_messages.proto.messages.AckCommand();
        reader.readMessage(
          value,
          proto.game_protobuf_messages.proto.messages.AckCommand
            .deserializeBinaryFromReader
        );
        msg.setAck(value);
        break;
      case 28:
        var value = new proto.game_protobuf_messages.proto.messages.InterestGroups();
        reader.readMessage(
          value,
          proto.game_protobuf_messages.proto.messages.InterestGroups
            .deserializeBinaryFromReader
        );
        msg.setInterestGroups(value);
        break;
      default:
        reader.skipField();
        break;
    }
  }
  return msg;
};

/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.game_protobuf_messages.proto.messages.ResponseMessage.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.game_protobuf_messages.proto.messages.ResponseMessage.serializeBinaryToWriter(
    this,
    writer
  );
  return writer.getResultBuffer();
};

/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.game_protobuf_messages.proto.messages.ResponseMessage} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.game_protobuf_messages.proto.messages.ResponseMessage.serializeBinaryToWriter = function(
  message,
  writer
) {
  var f = undefined;
  f = message.getI();
  if (f !== 0) {
    writer.writeInt32(1, f);
  }
  f = message.getErrorInfo();
  if (f != null) {
    writer.writeMessage(
      2,
      f,
      proto.game_protobuf_messages.proto.messages.ErrorInfo
        .serializeBinaryToWriter
    );
  }
  f = message.getCreateRoom();
  if (f != null) {
    writer.writeMessage(
      20,
      f,
      proto.game_protobuf_messages.proto.messages.CreateRoomResponse
        .serializeBinaryToWriter
    );
  }
  f = message.getJoinRoom();
  if (f != null) {
    writer.writeMessage(
      21,
      f,
      proto.game_protobuf_messages.proto.messages.JoinRoomResponse
        .serializeBinaryToWriter
    );
  }
  f = message.getUpdateProperty();
  if (f != null) {
    writer.writeMessage(
      22,
      f,
      proto.game_protobuf_messages.proto.messages.UpdatePropertyResponse
        .serializeBinaryToWriter
    );
  }
  f = message.getUpdateSysProperty();
  if (f != null) {
    writer.writeMessage(
      23,
      f,
      proto.game_protobuf_messages.proto.messages.UpdateSysPropertyResponse
        .serializeBinaryToWriter
    );
  }
  f = message.getUpdateMasterClient();
  if (f != null) {
    writer.writeMessage(
      24,
      f,
      proto.game_protobuf_messages.proto.messages.UpdateMasterClientResponse
        .serializeBinaryToWriter
    );
  }
  f = message.getKickMember();
  if (f != null) {
    writer.writeMessage(
      25,
      f,
      proto.game_protobuf_messages.proto.messages.KickMemberResponse
        .serializeBinaryToWriter
    );
  }
  f = message.getAck();
  if (f != null) {
    writer.writeMessage(
      26,
      f,
      proto.game_protobuf_messages.proto.messages.AckCommand
        .serializeBinaryToWriter
    );
  }
  f = message.getInterestGroups();
  if (f != null) {
    writer.writeMessage(
      28,
      f,
      proto.game_protobuf_messages.proto.messages.InterestGroups
        .serializeBinaryToWriter
    );
  }
};

/**
 * optional int32 i = 1;
 * @return {number}
 */
proto.game_protobuf_messages.proto.messages.ResponseMessage.prototype.getI = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};

/**
 * @param {number} value
 * @return {!proto.game_protobuf_messages.proto.messages.ResponseMessage} returns this
 */
proto.game_protobuf_messages.proto.messages.ResponseMessage.prototype.setI = function(
  value
) {
  return jspb.Message.setProto3IntField(this, 1, value);
};

/**
 * optional ErrorInfo error_info = 2;
 * @return {?proto.game_protobuf_messages.proto.messages.ErrorInfo}
 */
proto.game_protobuf_messages.proto.messages.ResponseMessage.prototype.getErrorInfo = function() {
  return /** @type{?proto.game_protobuf_messages.proto.messages.ErrorInfo} */ (jspb.Message.getWrapperField(
    this,
    proto.game_protobuf_messages.proto.messages.ErrorInfo,
    2
  ));
};

/**
 * @param {?proto.game_protobuf_messages.proto.messages.ErrorInfo|undefined} value
 * @return {!proto.game_protobuf_messages.proto.messages.ResponseMessage} returns this
 */
proto.game_protobuf_messages.proto.messages.ResponseMessage.prototype.setErrorInfo = function(
  value
) {
  return jspb.Message.setWrapperField(this, 2, value);
};

/**
 * Clears the message field making it undefined.
 * @return {!proto.game_protobuf_messages.proto.messages.ResponseMessage} returns this
 */
proto.game_protobuf_messages.proto.messages.ResponseMessage.prototype.clearErrorInfo = function() {
  return this.setErrorInfo(undefined);
};

/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.game_protobuf_messages.proto.messages.ResponseMessage.prototype.hasErrorInfo = function() {
  return jspb.Message.getField(this, 2) != null;
};

/**
 * optional CreateRoomResponse create_room = 20;
 * @return {?proto.game_protobuf_messages.proto.messages.CreateRoomResponse}
 */
proto.game_protobuf_messages.proto.messages.ResponseMessage.prototype.getCreateRoom = function() {
  return /** @type{?proto.game_protobuf_messages.proto.messages.CreateRoomResponse} */ (jspb.Message.getWrapperField(
    this,
    proto.game_protobuf_messages.proto.messages.CreateRoomResponse,
    20
  ));
};

/**
 * @param {?proto.game_protobuf_messages.proto.messages.CreateRoomResponse|undefined} value
 * @return {!proto.game_protobuf_messages.proto.messages.ResponseMessage} returns this
 */
proto.game_protobuf_messages.proto.messages.ResponseMessage.prototype.setCreateRoom = function(
  value
) {
  return jspb.Message.setOneofWrapperField(
    this,
    20,
    proto.game_protobuf_messages.proto.messages.ResponseMessage.oneofGroups_[0],
    value
  );
};

/**
 * Clears the message field making it undefined.
 * @return {!proto.game_protobuf_messages.proto.messages.ResponseMessage} returns this
 */
proto.game_protobuf_messages.proto.messages.ResponseMessage.prototype.clearCreateRoom = function() {
  return this.setCreateRoom(undefined);
};

/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.game_protobuf_messages.proto.messages.ResponseMessage.prototype.hasCreateRoom = function() {
  return jspb.Message.getField(this, 20) != null;
};

/**
 * optional JoinRoomResponse join_room = 21;
 * @return {?proto.game_protobuf_messages.proto.messages.JoinRoomResponse}
 */
proto.game_protobuf_messages.proto.messages.ResponseMessage.prototype.getJoinRoom = function() {
  return /** @type{?proto.game_protobuf_messages.proto.messages.JoinRoomResponse} */ (jspb.Message.getWrapperField(
    this,
    proto.game_protobuf_messages.proto.messages.JoinRoomResponse,
    21
  ));
};

/**
 * @param {?proto.game_protobuf_messages.proto.messages.JoinRoomResponse|undefined} value
 * @return {!proto.game_protobuf_messages.proto.messages.ResponseMessage} returns this
 */
proto.game_protobuf_messages.proto.messages.ResponseMessage.prototype.setJoinRoom = function(
  value
) {
  return jspb.Message.setOneofWrapperField(
    this,
    21,
    proto.game_protobuf_messages.proto.messages.ResponseMessage.oneofGroups_[0],
    value
  );
};

/**
 * Clears the message field making it undefined.
 * @return {!proto.game_protobuf_messages.proto.messages.ResponseMessage} returns this
 */
proto.game_protobuf_messages.proto.messages.ResponseMessage.prototype.clearJoinRoom = function() {
  return this.setJoinRoom(undefined);
};

/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.game_protobuf_messages.proto.messages.ResponseMessage.prototype.hasJoinRoom = function() {
  return jspb.Message.getField(this, 21) != null;
};

/**
 * optional UpdatePropertyResponse update_property = 22;
 * @return {?proto.game_protobuf_messages.proto.messages.UpdatePropertyResponse}
 */
proto.game_protobuf_messages.proto.messages.ResponseMessage.prototype.getUpdateProperty = function() {
  return /** @type{?proto.game_protobuf_messages.proto.messages.UpdatePropertyResponse} */ (jspb.Message.getWrapperField(
    this,
    proto.game_protobuf_messages.proto.messages.UpdatePropertyResponse,
    22
  ));
};

/**
 * @param {?proto.game_protobuf_messages.proto.messages.UpdatePropertyResponse|undefined} value
 * @return {!proto.game_protobuf_messages.proto.messages.ResponseMessage} returns this
 */
proto.game_protobuf_messages.proto.messages.ResponseMessage.prototype.setUpdateProperty = function(
  value
) {
  return jspb.Message.setOneofWrapperField(
    this,
    22,
    proto.game_protobuf_messages.proto.messages.ResponseMessage.oneofGroups_[0],
    value
  );
};

/**
 * Clears the message field making it undefined.
 * @return {!proto.game_protobuf_messages.proto.messages.ResponseMessage} returns this
 */
proto.game_protobuf_messages.proto.messages.ResponseMessage.prototype.clearUpdateProperty = function() {
  return this.setUpdateProperty(undefined);
};

/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.game_protobuf_messages.proto.messages.ResponseMessage.prototype.hasUpdateProperty = function() {
  return jspb.Message.getField(this, 22) != null;
};

/**
 * optional UpdateSysPropertyResponse update_sys_property = 23;
 * @return {?proto.game_protobuf_messages.proto.messages.UpdateSysPropertyResponse}
 */
proto.game_protobuf_messages.proto.messages.ResponseMessage.prototype.getUpdateSysProperty = function() {
  return /** @type{?proto.game_protobuf_messages.proto.messages.UpdateSysPropertyResponse} */ (jspb.Message.getWrapperField(
    this,
    proto.game_protobuf_messages.proto.messages.UpdateSysPropertyResponse,
    23
  ));
};

/**
 * @param {?proto.game_protobuf_messages.proto.messages.UpdateSysPropertyResponse|undefined} value
 * @return {!proto.game_protobuf_messages.proto.messages.ResponseMessage} returns this
 */
proto.game_protobuf_messages.proto.messages.ResponseMessage.prototype.setUpdateSysProperty = function(
  value
) {
  return jspb.Message.setOneofWrapperField(
    this,
    23,
    proto.game_protobuf_messages.proto.messages.ResponseMessage.oneofGroups_[0],
    value
  );
};

/**
 * Clears the message field making it undefined.
 * @return {!proto.game_protobuf_messages.proto.messages.ResponseMessage} returns this
 */
proto.game_protobuf_messages.proto.messages.ResponseMessage.prototype.clearUpdateSysProperty = function() {
  return this.setUpdateSysProperty(undefined);
};

/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.game_protobuf_messages.proto.messages.ResponseMessage.prototype.hasUpdateSysProperty = function() {
  return jspb.Message.getField(this, 23) != null;
};

/**
 * optional UpdateMasterClientResponse update_master_client = 24;
 * @return {?proto.game_protobuf_messages.proto.messages.UpdateMasterClientResponse}
 */
proto.game_protobuf_messages.proto.messages.ResponseMessage.prototype.getUpdateMasterClient = function() {
  return /** @type{?proto.game_protobuf_messages.proto.messages.UpdateMasterClientResponse} */ (jspb.Message.getWrapperField(
    this,
    proto.game_protobuf_messages.proto.messages.UpdateMasterClientResponse,
    24
  ));
};

/**
 * @param {?proto.game_protobuf_messages.proto.messages.UpdateMasterClientResponse|undefined} value
 * @return {!proto.game_protobuf_messages.proto.messages.ResponseMessage} returns this
 */
proto.game_protobuf_messages.proto.messages.ResponseMessage.prototype.setUpdateMasterClient = function(
  value
) {
  return jspb.Message.setOneofWrapperField(
    this,
    24,
    proto.game_protobuf_messages.proto.messages.ResponseMessage.oneofGroups_[0],
    value
  );
};

/**
 * Clears the message field making it undefined.
 * @return {!proto.game_protobuf_messages.proto.messages.ResponseMessage} returns this
 */
proto.game_protobuf_messages.proto.messages.ResponseMessage.prototype.clearUpdateMasterClient = function() {
  return this.setUpdateMasterClient(undefined);
};

/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.game_protobuf_messages.proto.messages.ResponseMessage.prototype.hasUpdateMasterClient = function() {
  return jspb.Message.getField(this, 24) != null;
};

/**
 * optional KickMemberResponse kick_member = 25;
 * @return {?proto.game_protobuf_messages.proto.messages.KickMemberResponse}
 */
proto.game_protobuf_messages.proto.messages.ResponseMessage.prototype.getKickMember = function() {
  return /** @type{?proto.game_protobuf_messages.proto.messages.KickMemberResponse} */ (jspb.Message.getWrapperField(
    this,
    proto.game_protobuf_messages.proto.messages.KickMemberResponse,
    25
  ));
};

/**
 * @param {?proto.game_protobuf_messages.proto.messages.KickMemberResponse|undefined} value
 * @return {!proto.game_protobuf_messages.proto.messages.ResponseMessage} returns this
 */
proto.game_protobuf_messages.proto.messages.ResponseMessage.prototype.setKickMember = function(
  value
) {
  return jspb.Message.setOneofWrapperField(
    this,
    25,
    proto.game_protobuf_messages.proto.messages.ResponseMessage.oneofGroups_[0],
    value
  );
};

/**
 * Clears the message field making it undefined.
 * @return {!proto.game_protobuf_messages.proto.messages.ResponseMessage} returns this
 */
proto.game_protobuf_messages.proto.messages.ResponseMessage.prototype.clearKickMember = function() {
  return this.setKickMember(undefined);
};

/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.game_protobuf_messages.proto.messages.ResponseMessage.prototype.hasKickMember = function() {
  return jspb.Message.getField(this, 25) != null;
};

/**
 * optional AckCommand ack = 26;
 * @return {?proto.game_protobuf_messages.proto.messages.AckCommand}
 */
proto.game_protobuf_messages.proto.messages.ResponseMessage.prototype.getAck = function() {
  return /** @type{?proto.game_protobuf_messages.proto.messages.AckCommand} */ (jspb.Message.getWrapperField(
    this,
    proto.game_protobuf_messages.proto.messages.AckCommand,
    26
  ));
};

/**
 * @param {?proto.game_protobuf_messages.proto.messages.AckCommand|undefined} value
 * @return {!proto.game_protobuf_messages.proto.messages.ResponseMessage} returns this
 */
proto.game_protobuf_messages.proto.messages.ResponseMessage.prototype.setAck = function(
  value
) {
  return jspb.Message.setOneofWrapperField(
    this,
    26,
    proto.game_protobuf_messages.proto.messages.ResponseMessage.oneofGroups_[0],
    value
  );
};

/**
 * Clears the message field making it undefined.
 * @return {!proto.game_protobuf_messages.proto.messages.ResponseMessage} returns this
 */
proto.game_protobuf_messages.proto.messages.ResponseMessage.prototype.clearAck = function() {
  return this.setAck(undefined);
};

/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.game_protobuf_messages.proto.messages.ResponseMessage.prototype.hasAck = function() {
  return jspb.Message.getField(this, 26) != null;
};

/**
 * optional InterestGroups interest_groups = 28;
 * @return {?proto.game_protobuf_messages.proto.messages.InterestGroups}
 */
proto.game_protobuf_messages.proto.messages.ResponseMessage.prototype.getInterestGroups = function() {
  return /** @type{?proto.game_protobuf_messages.proto.messages.InterestGroups} */ (jspb.Message.getWrapperField(
    this,
    proto.game_protobuf_messages.proto.messages.InterestGroups,
    28
  ));
};

/**
 * @param {?proto.game_protobuf_messages.proto.messages.InterestGroups|undefined} value
 * @return {!proto.game_protobuf_messages.proto.messages.ResponseMessage} returns this
 */
proto.game_protobuf_messages.proto.messages.ResponseMessage.prototype.setInterestGroups = function(
  value
) {
  return jspb.Message.setOneofWrapperField(
    this,
    28,
    proto.game_protobuf_messages.proto.messages.ResponseMessage.oneofGroups_[0],
    value
  );
};

/**
 * Clears the message field making it undefined.
 * @return {!proto.game_protobuf_messages.proto.messages.ResponseMessage} returns this
 */
proto.game_protobuf_messages.proto.messages.ResponseMessage.prototype.clearInterestGroups = function() {
  return this.setInterestGroups(undefined);
};

/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.game_protobuf_messages.proto.messages.ResponseMessage.prototype.hasInterestGroups = function() {
  return jspb.Message.getField(this, 28) != null;
};

/**
 * Oneof group definitions for this message. Each group defines the field
 * numbers belonging to that group. When of these fields' value is set, all
 * other fields in the group are cleared. During deserialization, if multiple
 * fields are encountered for a group, only the last value seen will be kept.
 * @private {!Array<!Array<number>>}
 * @const
 */
proto.game_protobuf_messages.proto.messages.Body.oneofGroups_ = [
  [1, 2, 3, 4, 5, 50, 51, 127],
];

/**
 * @enum {number}
 */
proto.game_protobuf_messages.proto.messages.Body.BodyCase = {
  BODY_NOT_SET: 0,
  REQUEST: 1,
  RESPONSE: 2,
  DIRECT: 3,
  ROOM_NOTIFICATION: 4,
  EVENTS: 5,
  STATISTIC: 50,
  ROOM_LIST: 51,
  ERROR: 127,
};

/**
 * @return {proto.game_protobuf_messages.proto.messages.Body.BodyCase}
 */
proto.game_protobuf_messages.proto.messages.Body.prototype.getBodyCase = function() {
  return /** @type {proto.game_protobuf_messages.proto.messages.Body.BodyCase} */ (jspb.Message.computeOneofCase(
    this,
    proto.game_protobuf_messages.proto.messages.Body.oneofGroups_[0]
  ));
};

if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game_protobuf_messages.proto.messages.Body.prototype.toObject = function(
    opt_includeInstance
  ) {
    return proto.game_protobuf_messages.proto.messages.Body.toObject(
      opt_includeInstance,
      this
    );
  };

  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game_protobuf_messages.proto.messages.Body} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.game_protobuf_messages.proto.messages.Body.toObject = function(
    includeInstance,
    msg
  ) {
    var f,
      obj = {
        request:
          (f = msg.getRequest()) &&
          proto.game_protobuf_messages.proto.messages.RequestMessage.toObject(
            includeInstance,
            f
          ),
        response:
          (f = msg.getResponse()) &&
          proto.game_protobuf_messages.proto.messages.ResponseMessage.toObject(
            includeInstance,
            f
          ),
        direct:
          (f = msg.getDirect()) &&
          proto.game_protobuf_messages.proto.messages.DirectCommand.toObject(
            includeInstance,
            f
          ),
        roomNotification:
          (f = msg.getRoomNotification()) &&
          proto.game_protobuf_messages.proto.messages.RoomNotification.toObject(
            includeInstance,
            f
          ),
        events:
          (f = msg.getEvents()) &&
          proto.game_protobuf_messages.proto.messages.EventsCommand.toObject(
            includeInstance,
            f
          ),
        statistic:
          (f = msg.getStatistic()) &&
          proto.game_protobuf_messages.proto.messages.StatisticCommand.toObject(
            includeInstance,
            f
          ),
        roomList:
          (f = msg.getRoomList()) &&
          proto.game_protobuf_messages.proto.messages.RoomListCommand.toObject(
            includeInstance,
            f
          ),
        error:
          (f = msg.getError()) &&
          proto.game_protobuf_messages.proto.messages.ErrorCommand.toObject(
            includeInstance,
            f
          ),
      };

    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
}

/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.game_protobuf_messages.proto.messages.Body}
 */
proto.game_protobuf_messages.proto.messages.Body.deserializeBinary = function(
  bytes
) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.game_protobuf_messages.proto.messages.Body();
  return proto.game_protobuf_messages.proto.messages.Body.deserializeBinaryFromReader(
    msg,
    reader
  );
};

/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.game_protobuf_messages.proto.messages.Body} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.game_protobuf_messages.proto.messages.Body}
 */
proto.game_protobuf_messages.proto.messages.Body.deserializeBinaryFromReader = function(
  msg,
  reader
) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
      case 1:
        var value = new proto.game_protobuf_messages.proto.messages.RequestMessage();
        reader.readMessage(
          value,
          proto.game_protobuf_messages.proto.messages.RequestMessage
            .deserializeBinaryFromReader
        );
        msg.setRequest(value);
        break;
      case 2:
        var value = new proto.game_protobuf_messages.proto.messages.ResponseMessage();
        reader.readMessage(
          value,
          proto.game_protobuf_messages.proto.messages.ResponseMessage
            .deserializeBinaryFromReader
        );
        msg.setResponse(value);
        break;
      case 3:
        var value = new proto.game_protobuf_messages.proto.messages.DirectCommand();
        reader.readMessage(
          value,
          proto.game_protobuf_messages.proto.messages.DirectCommand
            .deserializeBinaryFromReader
        );
        msg.setDirect(value);
        break;
      case 4:
        var value = new proto.game_protobuf_messages.proto.messages.RoomNotification();
        reader.readMessage(
          value,
          proto.game_protobuf_messages.proto.messages.RoomNotification
            .deserializeBinaryFromReader
        );
        msg.setRoomNotification(value);
        break;
      case 5:
        var value = new proto.game_protobuf_messages.proto.messages.EventsCommand();
        reader.readMessage(
          value,
          proto.game_protobuf_messages.proto.messages.EventsCommand
            .deserializeBinaryFromReader
        );
        msg.setEvents(value);
        break;
      case 50:
        var value = new proto.game_protobuf_messages.proto.messages.StatisticCommand();
        reader.readMessage(
          value,
          proto.game_protobuf_messages.proto.messages.StatisticCommand
            .deserializeBinaryFromReader
        );
        msg.setStatistic(value);
        break;
      case 51:
        var value = new proto.game_protobuf_messages.proto.messages.RoomListCommand();
        reader.readMessage(
          value,
          proto.game_protobuf_messages.proto.messages.RoomListCommand
            .deserializeBinaryFromReader
        );
        msg.setRoomList(value);
        break;
      case 127:
        var value = new proto.game_protobuf_messages.proto.messages.ErrorCommand();
        reader.readMessage(
          value,
          proto.game_protobuf_messages.proto.messages.ErrorCommand
            .deserializeBinaryFromReader
        );
        msg.setError(value);
        break;
      default:
        reader.skipField();
        break;
    }
  }
  return msg;
};

/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.game_protobuf_messages.proto.messages.Body.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.game_protobuf_messages.proto.messages.Body.serializeBinaryToWriter(
    this,
    writer
  );
  return writer.getResultBuffer();
};

/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.game_protobuf_messages.proto.messages.Body} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.game_protobuf_messages.proto.messages.Body.serializeBinaryToWriter = function(
  message,
  writer
) {
  var f = undefined;
  f = message.getRequest();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      proto.game_protobuf_messages.proto.messages.RequestMessage
        .serializeBinaryToWriter
    );
  }
  f = message.getResponse();
  if (f != null) {
    writer.writeMessage(
      2,
      f,
      proto.game_protobuf_messages.proto.messages.ResponseMessage
        .serializeBinaryToWriter
    );
  }
  f = message.getDirect();
  if (f != null) {
    writer.writeMessage(
      3,
      f,
      proto.game_protobuf_messages.proto.messages.DirectCommand
        .serializeBinaryToWriter
    );
  }
  f = message.getRoomNotification();
  if (f != null) {
    writer.writeMessage(
      4,
      f,
      proto.game_protobuf_messages.proto.messages.RoomNotification
        .serializeBinaryToWriter
    );
  }
  f = message.getEvents();
  if (f != null) {
    writer.writeMessage(
      5,
      f,
      proto.game_protobuf_messages.proto.messages.EventsCommand
        .serializeBinaryToWriter
    );
  }
  f = message.getStatistic();
  if (f != null) {
    writer.writeMessage(
      50,
      f,
      proto.game_protobuf_messages.proto.messages.StatisticCommand
        .serializeBinaryToWriter
    );
  }
  f = message.getRoomList();
  if (f != null) {
    writer.writeMessage(
      51,
      f,
      proto.game_protobuf_messages.proto.messages.RoomListCommand
        .serializeBinaryToWriter
    );
  }
  f = message.getError();
  if (f != null) {
    writer.writeMessage(
      127,
      f,
      proto.game_protobuf_messages.proto.messages.ErrorCommand
        .serializeBinaryToWriter
    );
  }
};

/**
 * optional RequestMessage request = 1;
 * @return {?proto.game_protobuf_messages.proto.messages.RequestMessage}
 */
proto.game_protobuf_messages.proto.messages.Body.prototype.getRequest = function() {
  return /** @type{?proto.game_protobuf_messages.proto.messages.RequestMessage} */ (jspb.Message.getWrapperField(
    this,
    proto.game_protobuf_messages.proto.messages.RequestMessage,
    1
  ));
};

/**
 * @param {?proto.game_protobuf_messages.proto.messages.RequestMessage|undefined} value
 * @return {!proto.game_protobuf_messages.proto.messages.Body} returns this
 */
proto.game_protobuf_messages.proto.messages.Body.prototype.setRequest = function(
  value
) {
  return jspb.Message.setOneofWrapperField(
    this,
    1,
    proto.game_protobuf_messages.proto.messages.Body.oneofGroups_[0],
    value
  );
};

/**
 * Clears the message field making it undefined.
 * @return {!proto.game_protobuf_messages.proto.messages.Body} returns this
 */
proto.game_protobuf_messages.proto.messages.Body.prototype.clearRequest = function() {
  return this.setRequest(undefined);
};

/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.game_protobuf_messages.proto.messages.Body.prototype.hasRequest = function() {
  return jspb.Message.getField(this, 1) != null;
};

/**
 * optional ResponseMessage response = 2;
 * @return {?proto.game_protobuf_messages.proto.messages.ResponseMessage}
 */
proto.game_protobuf_messages.proto.messages.Body.prototype.getResponse = function() {
  return /** @type{?proto.game_protobuf_messages.proto.messages.ResponseMessage} */ (jspb.Message.getWrapperField(
    this,
    proto.game_protobuf_messages.proto.messages.ResponseMessage,
    2
  ));
};

/**
 * @param {?proto.game_protobuf_messages.proto.messages.ResponseMessage|undefined} value
 * @return {!proto.game_protobuf_messages.proto.messages.Body} returns this
 */
proto.game_protobuf_messages.proto.messages.Body.prototype.setResponse = function(
  value
) {
  return jspb.Message.setOneofWrapperField(
    this,
    2,
    proto.game_protobuf_messages.proto.messages.Body.oneofGroups_[0],
    value
  );
};

/**
 * Clears the message field making it undefined.
 * @return {!proto.game_protobuf_messages.proto.messages.Body} returns this
 */
proto.game_protobuf_messages.proto.messages.Body.prototype.clearResponse = function() {
  return this.setResponse(undefined);
};

/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.game_protobuf_messages.proto.messages.Body.prototype.hasResponse = function() {
  return jspb.Message.getField(this, 2) != null;
};

/**
 * optional DirectCommand direct = 3;
 * @return {?proto.game_protobuf_messages.proto.messages.DirectCommand}
 */
proto.game_protobuf_messages.proto.messages.Body.prototype.getDirect = function() {
  return /** @type{?proto.game_protobuf_messages.proto.messages.DirectCommand} */ (jspb.Message.getWrapperField(
    this,
    proto.game_protobuf_messages.proto.messages.DirectCommand,
    3
  ));
};

/**
 * @param {?proto.game_protobuf_messages.proto.messages.DirectCommand|undefined} value
 * @return {!proto.game_protobuf_messages.proto.messages.Body} returns this
 */
proto.game_protobuf_messages.proto.messages.Body.prototype.setDirect = function(
  value
) {
  return jspb.Message.setOneofWrapperField(
    this,
    3,
    proto.game_protobuf_messages.proto.messages.Body.oneofGroups_[0],
    value
  );
};

/**
 * Clears the message field making it undefined.
 * @return {!proto.game_protobuf_messages.proto.messages.Body} returns this
 */
proto.game_protobuf_messages.proto.messages.Body.prototype.clearDirect = function() {
  return this.setDirect(undefined);
};

/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.game_protobuf_messages.proto.messages.Body.prototype.hasDirect = function() {
  return jspb.Message.getField(this, 3) != null;
};

/**
 * optional RoomNotification room_notification = 4;
 * @return {?proto.game_protobuf_messages.proto.messages.RoomNotification}
 */
proto.game_protobuf_messages.proto.messages.Body.prototype.getRoomNotification = function() {
  return /** @type{?proto.game_protobuf_messages.proto.messages.RoomNotification} */ (jspb.Message.getWrapperField(
    this,
    proto.game_protobuf_messages.proto.messages.RoomNotification,
    4
  ));
};

/**
 * @param {?proto.game_protobuf_messages.proto.messages.RoomNotification|undefined} value
 * @return {!proto.game_protobuf_messages.proto.messages.Body} returns this
 */
proto.game_protobuf_messages.proto.messages.Body.prototype.setRoomNotification = function(
  value
) {
  return jspb.Message.setOneofWrapperField(
    this,
    4,
    proto.game_protobuf_messages.proto.messages.Body.oneofGroups_[0],
    value
  );
};

/**
 * Clears the message field making it undefined.
 * @return {!proto.game_protobuf_messages.proto.messages.Body} returns this
 */
proto.game_protobuf_messages.proto.messages.Body.prototype.clearRoomNotification = function() {
  return this.setRoomNotification(undefined);
};

/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.game_protobuf_messages.proto.messages.Body.prototype.hasRoomNotification = function() {
  return jspb.Message.getField(this, 4) != null;
};

/**
 * optional EventsCommand events = 5;
 * @return {?proto.game_protobuf_messages.proto.messages.EventsCommand}
 */
proto.game_protobuf_messages.proto.messages.Body.prototype.getEvents = function() {
  return /** @type{?proto.game_protobuf_messages.proto.messages.EventsCommand} */ (jspb.Message.getWrapperField(
    this,
    proto.game_protobuf_messages.proto.messages.EventsCommand,
    5
  ));
};

/**
 * @param {?proto.game_protobuf_messages.proto.messages.EventsCommand|undefined} value
 * @return {!proto.game_protobuf_messages.proto.messages.Body} returns this
 */
proto.game_protobuf_messages.proto.messages.Body.prototype.setEvents = function(
  value
) {
  return jspb.Message.setOneofWrapperField(
    this,
    5,
    proto.game_protobuf_messages.proto.messages.Body.oneofGroups_[0],
    value
  );
};

/**
 * Clears the message field making it undefined.
 * @return {!proto.game_protobuf_messages.proto.messages.Body} returns this
 */
proto.game_protobuf_messages.proto.messages.Body.prototype.clearEvents = function() {
  return this.setEvents(undefined);
};

/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.game_protobuf_messages.proto.messages.Body.prototype.hasEvents = function() {
  return jspb.Message.getField(this, 5) != null;
};

/**
 * optional StatisticCommand statistic = 50;
 * @return {?proto.game_protobuf_messages.proto.messages.StatisticCommand}
 */
proto.game_protobuf_messages.proto.messages.Body.prototype.getStatistic = function() {
  return /** @type{?proto.game_protobuf_messages.proto.messages.StatisticCommand} */ (jspb.Message.getWrapperField(
    this,
    proto.game_protobuf_messages.proto.messages.StatisticCommand,
    50
  ));
};

/**
 * @param {?proto.game_protobuf_messages.proto.messages.StatisticCommand|undefined} value
 * @return {!proto.game_protobuf_messages.proto.messages.Body} returns this
 */
proto.game_protobuf_messages.proto.messages.Body.prototype.setStatistic = function(
  value
) {
  return jspb.Message.setOneofWrapperField(
    this,
    50,
    proto.game_protobuf_messages.proto.messages.Body.oneofGroups_[0],
    value
  );
};

/**
 * Clears the message field making it undefined.
 * @return {!proto.game_protobuf_messages.proto.messages.Body} returns this
 */
proto.game_protobuf_messages.proto.messages.Body.prototype.clearStatistic = function() {
  return this.setStatistic(undefined);
};

/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.game_protobuf_messages.proto.messages.Body.prototype.hasStatistic = function() {
  return jspb.Message.getField(this, 50) != null;
};

/**
 * optional RoomListCommand room_list = 51;
 * @return {?proto.game_protobuf_messages.proto.messages.RoomListCommand}
 */
proto.game_protobuf_messages.proto.messages.Body.prototype.getRoomList = function() {
  return /** @type{?proto.game_protobuf_messages.proto.messages.RoomListCommand} */ (jspb.Message.getWrapperField(
    this,
    proto.game_protobuf_messages.proto.messages.RoomListCommand,
    51
  ));
};

/**
 * @param {?proto.game_protobuf_messages.proto.messages.RoomListCommand|undefined} value
 * @return {!proto.game_protobuf_messages.proto.messages.Body} returns this
 */
proto.game_protobuf_messages.proto.messages.Body.prototype.setRoomList = function(
  value
) {
  return jspb.Message.setOneofWrapperField(
    this,
    51,
    proto.game_protobuf_messages.proto.messages.Body.oneofGroups_[0],
    value
  );
};

/**
 * Clears the message field making it undefined.
 * @return {!proto.game_protobuf_messages.proto.messages.Body} returns this
 */
proto.game_protobuf_messages.proto.messages.Body.prototype.clearRoomList = function() {
  return this.setRoomList(undefined);
};

/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.game_protobuf_messages.proto.messages.Body.prototype.hasRoomList = function() {
  return jspb.Message.getField(this, 51) != null;
};

/**
 * optional ErrorCommand error = 127;
 * @return {?proto.game_protobuf_messages.proto.messages.ErrorCommand}
 */
proto.game_protobuf_messages.proto.messages.Body.prototype.getError = function() {
  return /** @type{?proto.game_protobuf_messages.proto.messages.ErrorCommand} */ (jspb.Message.getWrapperField(
    this,
    proto.game_protobuf_messages.proto.messages.ErrorCommand,
    127
  ));
};

/**
 * @param {?proto.game_protobuf_messages.proto.messages.ErrorCommand|undefined} value
 * @return {!proto.game_protobuf_messages.proto.messages.Body} returns this
 */
proto.game_protobuf_messages.proto.messages.Body.prototype.setError = function(
  value
) {
  return jspb.Message.setOneofWrapperField(
    this,
    127,
    proto.game_protobuf_messages.proto.messages.Body.oneofGroups_[0],
    value
  );
};

/**
 * Clears the message field making it undefined.
 * @return {!proto.game_protobuf_messages.proto.messages.Body} returns this
 */
proto.game_protobuf_messages.proto.messages.Body.prototype.clearError = function() {
  return this.setError(undefined);
};

/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.game_protobuf_messages.proto.messages.Body.prototype.hasError = function() {
  return jspb.Message.getField(this, 127) != null;
};

if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * Optional fields that are not set will be set to undefined.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
   * @param {boolean=} opt_includeInstance Deprecated. whether to include the
   *     JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.game_protobuf_messages.proto.messages.Command.prototype.toObject = function(
    opt_includeInstance
  ) {
    return proto.game_protobuf_messages.proto.messages.Command.toObject(
      opt_includeInstance,
      this
    );
  };

  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Deprecated. Whether to include
   *     the JSPB instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.game_protobuf_messages.proto.messages.Command} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.game_protobuf_messages.proto.messages.Command.toObject = function(
    includeInstance,
    msg
  ) {
    var f,
      obj = {
        cmd: jspb.Message.getFieldWithDefault(msg, 1, 0),
        op: jspb.Message.getFieldWithDefault(msg, 2, 0),
        body: msg.getBody_asB64(),
      };

    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
}

/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.game_protobuf_messages.proto.messages.Command}
 */
proto.game_protobuf_messages.proto.messages.Command.deserializeBinary = function(
  bytes
) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.game_protobuf_messages.proto.messages.Command();
  return proto.game_protobuf_messages.proto.messages.Command.deserializeBinaryFromReader(
    msg,
    reader
  );
};

/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.game_protobuf_messages.proto.messages.Command} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.game_protobuf_messages.proto.messages.Command}
 */
proto.game_protobuf_messages.proto.messages.Command.deserializeBinaryFromReader = function(
  msg,
  reader
) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
      case 1:
        var value = /** @type {!proto.game_protobuf_messages.proto.messages.CommandType} */ (reader.readEnum());
        msg.setCmd(value);
        break;
      case 2:
        var value = /** @type {!proto.game_protobuf_messages.proto.messages.OpType} */ (reader.readEnum());
        msg.setOp(value);
        break;
      case 3:
        var value = /** @type {!Uint8Array} */ (reader.readBytes());
        msg.setBody(value);
        break;
      default:
        reader.skipField();
        break;
    }
  }
  return msg;
};

/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.game_protobuf_messages.proto.messages.Command.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.game_protobuf_messages.proto.messages.Command.serializeBinaryToWriter(
    this,
    writer
  );
  return writer.getResultBuffer();
};

/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.game_protobuf_messages.proto.messages.Command} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.game_protobuf_messages.proto.messages.Command.serializeBinaryToWriter = function(
  message,
  writer
) {
  var f = undefined;
  f = message.getCmd();
  if (f !== 0.0) {
    writer.writeEnum(1, f);
  }
  f = message.getOp();
  if (f !== 0.0) {
    writer.writeEnum(2, f);
  }
  f = message.getBody_asU8();
  if (f.length > 0) {
    writer.writeBytes(3, f);
  }
};

/**
 * optional CommandType cmd = 1;
 * @return {!proto.game_protobuf_messages.proto.messages.CommandType}
 */
proto.game_protobuf_messages.proto.messages.Command.prototype.getCmd = function() {
  return /** @type {!proto.game_protobuf_messages.proto.messages.CommandType} */ (jspb.Message.getFieldWithDefault(
    this,
    1,
    0
  ));
};

/**
 * @param {!proto.game_protobuf_messages.proto.messages.CommandType} value
 * @return {!proto.game_protobuf_messages.proto.messages.Command} returns this
 */
proto.game_protobuf_messages.proto.messages.Command.prototype.setCmd = function(
  value
) {
  return jspb.Message.setProto3EnumField(this, 1, value);
};

/**
 * optional OpType op = 2;
 * @return {!proto.game_protobuf_messages.proto.messages.OpType}
 */
proto.game_protobuf_messages.proto.messages.Command.prototype.getOp = function() {
  return /** @type {!proto.game_protobuf_messages.proto.messages.OpType} */ (jspb.Message.getFieldWithDefault(
    this,
    2,
    0
  ));
};

/**
 * @param {!proto.game_protobuf_messages.proto.messages.OpType} value
 * @return {!proto.game_protobuf_messages.proto.messages.Command} returns this
 */
proto.game_protobuf_messages.proto.messages.Command.prototype.setOp = function(
  value
) {
  return jspb.Message.setProto3EnumField(this, 2, value);
};

/**
 * optional bytes body = 3;
 * @return {!(string|Uint8Array)}
 */
proto.game_protobuf_messages.proto.messages.Command.prototype.getBody = function() {
  return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(
    this,
    3,
    ''
  ));
};

/**
 * optional bytes body = 3;
 * This is a type-conversion wrapper around `getBody()`
 * @return {string}
 */
proto.game_protobuf_messages.proto.messages.Command.prototype.getBody_asB64 = function() {
  return /** @type {string} */ (jspb.Message.bytesAsB64(this.getBody()));
};

/**
 * optional bytes body = 3;
 * Note that Uint8Array is not supported on all browsers.
 * @see http://caniuse.com/Uint8Array
 * This is a type-conversion wrapper around `getBody()`
 * @return {!Uint8Array}
 */
proto.game_protobuf_messages.proto.messages.Command.prototype.getBody_asU8 = function() {
  return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getBody()));
};

/**
 * @param {!(string|Uint8Array)} value
 * @return {!proto.game_protobuf_messages.proto.messages.Command} returns this
 */
proto.game_protobuf_messages.proto.messages.Command.prototype.setBody = function(
  value
) {
  return jspb.Message.setProto3BytesField(this, 3, value);
};

/**
 * @enum {number}
 */
proto.game_protobuf_messages.proto.messages.CommandType = {
  UNKNOWN: 0,
  SESSION: 1,
  CONV: 2,
  DIRECT: 3,
  ERROR: 4,
  LOBBY: 5,
  STATISTIC: 6,
  EVENTS: 7,
  ACK: 8,
  ECHO: 9,
};

/**
 * @enum {number}
 */
proto.game_protobuf_messages.proto.messages.OpType = {
  NONE: 0,
  OPEN: 1,
  OPENED: 2,
  CLOSE: 3,
  CLOSED: 4,
  START: 30,
  STARTED: 31,
  ADD_RANDOM: 32,
  RANDOM_ADDED: 33,
  MATCH_RANDOM: 34,
  RANDOM_MATCHED: 35,
  ADD: 36,
  ADDED: 37,
  MEMBERS_JOINED: 38,
  MEMBERS_ONLINE: 39,
  REMOVE: 40,
  REMOVED: 41,
  MEMBERS_LEFT: 42,
  MEMBERS_OFFLINE: 43,
  UPDATE_MASTER_CLIENT: 44,
  MASTER_CLIENT_UPDATED: 45,
  MASTER_CLIENT_CHANGED: 46,
  UPDATE: 47,
  UPDATED: 48,
  UPDATED_NOTIFY: 49,
  UPDATE_SYSTEM_PROPERTY: 50,
  SYSTEM_PROPERTY_UPDATED: 51,
  SYSTEM_PROPERTY_UPDATED_NOTIFY: 52,
  OPENED_NOTIFY: 53,
  VISIBLE: 54,
  VISIBLE_NOTIFY: 55,
  UPDATE_PLAYER_PROP: 56,
  PLAYER_PROP_UPDATED: 57,
  PLAYER_PROPS: 58,
  KICK: 59,
  KICKED: 60,
  KICKED_NOTICE: 61,
  UPDATE_INTEREST_GROUPS: 62,
  INTEREST_GROUPS_UPDATED: 65,
  ROOM_LIST: 100,
  FIND_FRIENDS: 101,
  FOUND_FRIENDS: 102,
};

goog.object.extend(exports, proto);