[@@@ocaml.warning "-27-30-39-44"]

type server_data = {
  name : string;
  display_name : string;
  dispatch_url : string;
  env_type : string;
  title : string;
  msg : string;
}

type global_dispatch_data = {
  retcode : int32;
  msg : string;
  ajkbajlebhn : string;
  server_list : server_data list;
  odbdlipeoog : string;
}

type gateserver = {
  cmelkdaaapf : bool;
  ophmlpkgkij : bool;
  mmcjggcenpp : string;
  pllenlninnh : string;
  lamjdogmfam : bool;
  bblkofdgpap : string;
  ephafkmpmif : string;
  gmdfmaapebc : string;
  mlcpkfihkko : int64;
  bgpcckkddmb : bool;
  ex_resource_url : string;
  nkfnaojjlph : string;
  hkdmdpmahem : string;
  onkpibmdmpi : string;
  fbobagpbbha : string;
  mjjbccmcplk : string;
  port : int32;
  anegjdlagll : string;
  gepfimnioke : bool;
  lpnoekiaocp : string;
  fgkgddonpkm : string;
  nejihdfafbe : int32;
  hafcipegpin : bool;
  kghpigijmbp : string;
  fpglgbgjmjc : string;
  molbpmljolo : string;
  asset_bundle_url : string;
  kjadmknddjl : bool;
  khclmhjlopk : string list;
  lua_version : string;
  okplkdhmohc : string;
  ooeapiaafnb : string;
  jelgnociekj : string;
  hhpakondiob : int64;
  opgmnlinakc : bool;
  begfcjlkmob : bool;
  nnhognglfbd : string;
  retcode : int32;
  kgljfhdhdek : string;
  cjnjnfglick : int32;
  ncdioakalen : string;
  ip : string;
  gediongpdha : bool;
  mbdacjejamf : bool;
  lua_url : string;
  dmdahpindno : string;
  gjaeghbeaio : bool;
  ddohlaegeah : int32;
  bfoekehoejp : string;
  chnmpglhncm : string;
  pggjoogfgfc : string;
  dklchemciai : bool;
  migeegecjcb : string;
  ciinblfopda : string;
  fkenkkhlhhd : bool;
  hjbndbbicdo : string;
  fggmipmoook : string;
  use_tcp : bool;
  imffkkjpojc : string;
}

let rec default_server_data 
  ?name:((name:string) = "")
  ?display_name:((display_name:string) = "")
  ?dispatch_url:((dispatch_url:string) = "")
  ?env_type:((env_type:string) = "")
  ?title:((title:string) = "")
  ?msg:((msg:string) = "")
  () : server_data  = {
  name;
  display_name;
  dispatch_url;
  env_type;
  title;
  msg;
}

let rec default_global_dispatch_data 
  ?retcode:((retcode:int32) = 0l)
  ?msg:((msg:string) = "")
  ?ajkbajlebhn:((ajkbajlebhn:string) = "")
  ?server_list:((server_list:server_data list) = [])
  ?odbdlipeoog:((odbdlipeoog:string) = "")
  () : global_dispatch_data  = {
  retcode;
  msg;
  ajkbajlebhn;
  server_list;
  odbdlipeoog;
}

let rec default_gateserver 
  ?cmelkdaaapf:((cmelkdaaapf:bool) = false)
  ?ophmlpkgkij:((ophmlpkgkij:bool) = false)
  ?mmcjggcenpp:((mmcjggcenpp:string) = "")
  ?pllenlninnh:((pllenlninnh:string) = "")
  ?lamjdogmfam:((lamjdogmfam:bool) = false)
  ?bblkofdgpap:((bblkofdgpap:string) = "")
  ?ephafkmpmif:((ephafkmpmif:string) = "")
  ?gmdfmaapebc:((gmdfmaapebc:string) = "")
  ?mlcpkfihkko:((mlcpkfihkko:int64) = 0L)
  ?bgpcckkddmb:((bgpcckkddmb:bool) = false)
  ?ex_resource_url:((ex_resource_url:string) = "")
  ?nkfnaojjlph:((nkfnaojjlph:string) = "")
  ?hkdmdpmahem:((hkdmdpmahem:string) = "")
  ?onkpibmdmpi:((onkpibmdmpi:string) = "")
  ?fbobagpbbha:((fbobagpbbha:string) = "")
  ?mjjbccmcplk:((mjjbccmcplk:string) = "")
  ?port:((port:int32) = 0l)
  ?anegjdlagll:((anegjdlagll:string) = "")
  ?gepfimnioke:((gepfimnioke:bool) = false)
  ?lpnoekiaocp:((lpnoekiaocp:string) = "")
  ?fgkgddonpkm:((fgkgddonpkm:string) = "")
  ?nejihdfafbe:((nejihdfafbe:int32) = 0l)
  ?hafcipegpin:((hafcipegpin:bool) = false)
  ?kghpigijmbp:((kghpigijmbp:string) = "")
  ?fpglgbgjmjc:((fpglgbgjmjc:string) = "")
  ?molbpmljolo:((molbpmljolo:string) = "")
  ?asset_bundle_url:((asset_bundle_url:string) = "")
  ?kjadmknddjl:((kjadmknddjl:bool) = false)
  ?khclmhjlopk:((khclmhjlopk:string list) = [])
  ?lua_version:((lua_version:string) = "")
  ?okplkdhmohc:((okplkdhmohc:string) = "")
  ?ooeapiaafnb:((ooeapiaafnb:string) = "")
  ?jelgnociekj:((jelgnociekj:string) = "")
  ?hhpakondiob:((hhpakondiob:int64) = 0L)
  ?opgmnlinakc:((opgmnlinakc:bool) = false)
  ?begfcjlkmob:((begfcjlkmob:bool) = false)
  ?nnhognglfbd:((nnhognglfbd:string) = "")
  ?retcode:((retcode:int32) = 0l)
  ?kgljfhdhdek:((kgljfhdhdek:string) = "")
  ?cjnjnfglick:((cjnjnfglick:int32) = 0l)
  ?ncdioakalen:((ncdioakalen:string) = "")
  ?ip:((ip:string) = "")
  ?gediongpdha:((gediongpdha:bool) = false)
  ?mbdacjejamf:((mbdacjejamf:bool) = false)
  ?lua_url:((lua_url:string) = "")
  ?dmdahpindno:((dmdahpindno:string) = "")
  ?gjaeghbeaio:((gjaeghbeaio:bool) = false)
  ?ddohlaegeah:((ddohlaegeah:int32) = 0l)
  ?bfoekehoejp:((bfoekehoejp:string) = "")
  ?chnmpglhncm:((chnmpglhncm:string) = "")
  ?pggjoogfgfc:((pggjoogfgfc:string) = "")
  ?dklchemciai:((dklchemciai:bool) = false)
  ?migeegecjcb:((migeegecjcb:string) = "")
  ?ciinblfopda:((ciinblfopda:string) = "")
  ?fkenkkhlhhd:((fkenkkhlhhd:bool) = false)
  ?hjbndbbicdo:((hjbndbbicdo:string) = "")
  ?fggmipmoook:((fggmipmoook:string) = "")
  ?use_tcp:((use_tcp:bool) = false)
  ?imffkkjpojc:((imffkkjpojc:string) = "")
  () : gateserver  = {
  cmelkdaaapf;
  ophmlpkgkij;
  mmcjggcenpp;
  pllenlninnh;
  lamjdogmfam;
  bblkofdgpap;
  ephafkmpmif;
  gmdfmaapebc;
  mlcpkfihkko;
  bgpcckkddmb;
  ex_resource_url;
  nkfnaojjlph;
  hkdmdpmahem;
  onkpibmdmpi;
  fbobagpbbha;
  mjjbccmcplk;
  port;
  anegjdlagll;
  gepfimnioke;
  lpnoekiaocp;
  fgkgddonpkm;
  nejihdfafbe;
  hafcipegpin;
  kghpigijmbp;
  fpglgbgjmjc;
  molbpmljolo;
  asset_bundle_url;
  kjadmknddjl;
  khclmhjlopk;
  lua_version;
  okplkdhmohc;
  ooeapiaafnb;
  jelgnociekj;
  hhpakondiob;
  opgmnlinakc;
  begfcjlkmob;
  nnhognglfbd;
  retcode;
  kgljfhdhdek;
  cjnjnfglick;
  ncdioakalen;
  ip;
  gediongpdha;
  mbdacjejamf;
  lua_url;
  dmdahpindno;
  gjaeghbeaio;
  ddohlaegeah;
  bfoekehoejp;
  chnmpglhncm;
  pggjoogfgfc;
  dklchemciai;
  migeegecjcb;
  ciinblfopda;
  fkenkkhlhhd;
  hjbndbbicdo;
  fggmipmoook;
  use_tcp;
  imffkkjpojc;
}

type server_data_mutable = {
  mutable name : string;
  mutable display_name : string;
  mutable dispatch_url : string;
  mutable env_type : string;
  mutable title : string;
  mutable msg : string;
}

let default_server_data_mutable () : server_data_mutable = {
  name = "";
  display_name = "";
  dispatch_url = "";
  env_type = "";
  title = "";
  msg = "";
}

type global_dispatch_data_mutable = {
  mutable retcode : int32;
  mutable msg : string;
  mutable ajkbajlebhn : string;
  mutable server_list : server_data list;
  mutable odbdlipeoog : string;
}

let default_global_dispatch_data_mutable () : global_dispatch_data_mutable = {
  retcode = 0l;
  msg = "";
  ajkbajlebhn = "";
  server_list = [];
  odbdlipeoog = "";
}

type gateserver_mutable = {
  mutable cmelkdaaapf : bool;
  mutable ophmlpkgkij : bool;
  mutable mmcjggcenpp : string;
  mutable pllenlninnh : string;
  mutable lamjdogmfam : bool;
  mutable bblkofdgpap : string;
  mutable ephafkmpmif : string;
  mutable gmdfmaapebc : string;
  mutable mlcpkfihkko : int64;
  mutable bgpcckkddmb : bool;
  mutable ex_resource_url : string;
  mutable nkfnaojjlph : string;
  mutable hkdmdpmahem : string;
  mutable onkpibmdmpi : string;
  mutable fbobagpbbha : string;
  mutable mjjbccmcplk : string;
  mutable port : int32;
  mutable anegjdlagll : string;
  mutable gepfimnioke : bool;
  mutable lpnoekiaocp : string;
  mutable fgkgddonpkm : string;
  mutable nejihdfafbe : int32;
  mutable hafcipegpin : bool;
  mutable kghpigijmbp : string;
  mutable fpglgbgjmjc : string;
  mutable molbpmljolo : string;
  mutable asset_bundle_url : string;
  mutable kjadmknddjl : bool;
  mutable khclmhjlopk : string list;
  mutable lua_version : string;
  mutable okplkdhmohc : string;
  mutable ooeapiaafnb : string;
  mutable jelgnociekj : string;
  mutable hhpakondiob : int64;
  mutable opgmnlinakc : bool;
  mutable begfcjlkmob : bool;
  mutable nnhognglfbd : string;
  mutable retcode : int32;
  mutable kgljfhdhdek : string;
  mutable cjnjnfglick : int32;
  mutable ncdioakalen : string;
  mutable ip : string;
  mutable gediongpdha : bool;
  mutable mbdacjejamf : bool;
  mutable lua_url : string;
  mutable dmdahpindno : string;
  mutable gjaeghbeaio : bool;
  mutable ddohlaegeah : int32;
  mutable bfoekehoejp : string;
  mutable chnmpglhncm : string;
  mutable pggjoogfgfc : string;
  mutable dklchemciai : bool;
  mutable migeegecjcb : string;
  mutable ciinblfopda : string;
  mutable fkenkkhlhhd : bool;
  mutable hjbndbbicdo : string;
  mutable fggmipmoook : string;
  mutable use_tcp : bool;
  mutable imffkkjpojc : string;
}

let default_gateserver_mutable () : gateserver_mutable = {
  cmelkdaaapf = false;
  ophmlpkgkij = false;
  mmcjggcenpp = "";
  pllenlninnh = "";
  lamjdogmfam = false;
  bblkofdgpap = "";
  ephafkmpmif = "";
  gmdfmaapebc = "";
  mlcpkfihkko = 0L;
  bgpcckkddmb = false;
  ex_resource_url = "";
  nkfnaojjlph = "";
  hkdmdpmahem = "";
  onkpibmdmpi = "";
  fbobagpbbha = "";
  mjjbccmcplk = "";
  port = 0l;
  anegjdlagll = "";
  gepfimnioke = false;
  lpnoekiaocp = "";
  fgkgddonpkm = "";
  nejihdfafbe = 0l;
  hafcipegpin = false;
  kghpigijmbp = "";
  fpglgbgjmjc = "";
  molbpmljolo = "";
  asset_bundle_url = "";
  kjadmknddjl = false;
  khclmhjlopk = [];
  lua_version = "";
  okplkdhmohc = "";
  ooeapiaafnb = "";
  jelgnociekj = "";
  hhpakondiob = 0L;
  opgmnlinakc = false;
  begfcjlkmob = false;
  nnhognglfbd = "";
  retcode = 0l;
  kgljfhdhdek = "";
  cjnjnfglick = 0l;
  ncdioakalen = "";
  ip = "";
  gediongpdha = false;
  mbdacjejamf = false;
  lua_url = "";
  dmdahpindno = "";
  gjaeghbeaio = false;
  ddohlaegeah = 0l;
  bfoekehoejp = "";
  chnmpglhncm = "";
  pggjoogfgfc = "";
  dklchemciai = false;
  migeegecjcb = "";
  ciinblfopda = "";
  fkenkkhlhhd = false;
  hjbndbbicdo = "";
  fggmipmoook = "";
  use_tcp = false;
  imffkkjpojc = "";
}

[@@@ocaml.warning "-27-30-39"]

(** {2 Protobuf Encoding} *)

let rec encode_pb_server_data (v:server_data) encoder = 
  Pbrt.Encoder.string v.name encoder;
  Pbrt.Encoder.key 1 Pbrt.Bytes encoder; 
  Pbrt.Encoder.string v.display_name encoder;
  Pbrt.Encoder.key 2 Pbrt.Bytes encoder; 
  Pbrt.Encoder.string v.dispatch_url encoder;
  Pbrt.Encoder.key 3 Pbrt.Bytes encoder; 
  Pbrt.Encoder.string v.env_type encoder;
  Pbrt.Encoder.key 4 Pbrt.Bytes encoder; 
  Pbrt.Encoder.string v.title encoder;
  Pbrt.Encoder.key 5 Pbrt.Bytes encoder; 
  Pbrt.Encoder.string v.msg encoder;
  Pbrt.Encoder.key 6 Pbrt.Bytes encoder; 
  ()

let rec encode_pb_global_dispatch_data (v:global_dispatch_data) encoder = 
  Pbrt.Encoder.int32_as_varint v.retcode encoder;
  Pbrt.Encoder.key 1 Pbrt.Varint encoder; 
  Pbrt.Encoder.string v.msg encoder;
  Pbrt.Encoder.key 2 Pbrt.Bytes encoder; 
  Pbrt.Encoder.string v.ajkbajlebhn encoder;
  Pbrt.Encoder.key 3 Pbrt.Bytes encoder; 
  Pbrt.List_util.rev_iter_with (fun x encoder -> 
    Pbrt.Encoder.nested encode_pb_server_data x encoder;
    Pbrt.Encoder.key 4 Pbrt.Bytes encoder; 
  ) v.server_list encoder;
  Pbrt.Encoder.string v.odbdlipeoog encoder;
  Pbrt.Encoder.key 5 Pbrt.Bytes encoder; 
  ()

let rec encode_pb_gateserver (v:gateserver) encoder = 
  Pbrt.Encoder.bool v.cmelkdaaapf encoder;
  Pbrt.Encoder.key 1566 Pbrt.Varint encoder; 
  Pbrt.Encoder.bool v.ophmlpkgkij encoder;
  Pbrt.Encoder.key 1952 Pbrt.Varint encoder; 
  Pbrt.Encoder.string v.mmcjggcenpp encoder;
  Pbrt.Encoder.key 563 Pbrt.Bytes encoder; 
  Pbrt.Encoder.string v.pllenlninnh encoder;
  Pbrt.Encoder.key 5 Pbrt.Bytes encoder; 
  Pbrt.Encoder.bool v.lamjdogmfam encoder;
  Pbrt.Encoder.key 1457 Pbrt.Varint encoder; 
  Pbrt.Encoder.string v.bblkofdgpap encoder;
  Pbrt.Encoder.key 716 Pbrt.Bytes encoder; 
  Pbrt.Encoder.string v.ephafkmpmif encoder;
  Pbrt.Encoder.key 1220 Pbrt.Bytes encoder; 
  Pbrt.Encoder.string v.gmdfmaapebc encoder;
  Pbrt.Encoder.key 1192 Pbrt.Bytes encoder; 
  Pbrt.Encoder.int64_as_varint v.mlcpkfihkko encoder;
  Pbrt.Encoder.key 15 Pbrt.Varint encoder; 
  Pbrt.Encoder.bool v.bgpcckkddmb encoder;
  Pbrt.Encoder.key 593 Pbrt.Varint encoder; 
  Pbrt.Encoder.string v.ex_resource_url encoder;
  Pbrt.Encoder.key 14 Pbrt.Bytes encoder; 
  Pbrt.Encoder.string v.nkfnaojjlph encoder;
  Pbrt.Encoder.key 677 Pbrt.Bytes encoder; 
  Pbrt.Encoder.string v.hkdmdpmahem encoder;
  Pbrt.Encoder.key 405 Pbrt.Bytes encoder; 
  Pbrt.Encoder.string v.onkpibmdmpi encoder;
  Pbrt.Encoder.key 1113 Pbrt.Bytes encoder; 
  Pbrt.Encoder.string v.fbobagpbbha encoder;
  Pbrt.Encoder.key 87 Pbrt.Bytes encoder; 
  Pbrt.Encoder.string v.mjjbccmcplk encoder;
  Pbrt.Encoder.key 1808 Pbrt.Bytes encoder; 
  Pbrt.Encoder.int32_as_varint v.port encoder;
  Pbrt.Encoder.key 2 Pbrt.Varint encoder; 
  Pbrt.Encoder.string v.anegjdlagll encoder;
  Pbrt.Encoder.key 1570 Pbrt.Bytes encoder; 
  Pbrt.Encoder.bool v.gepfimnioke encoder;
  Pbrt.Encoder.key 1915 Pbrt.Varint encoder; 
  Pbrt.Encoder.string v.lpnoekiaocp encoder;
  Pbrt.Encoder.key 1629 Pbrt.Bytes encoder; 
  Pbrt.Encoder.string v.fgkgddonpkm encoder;
  Pbrt.Encoder.key 1583 Pbrt.Bytes encoder; 
  Pbrt.Encoder.int32_as_varint v.nejihdfafbe encoder;
  Pbrt.Encoder.key 13 Pbrt.Varint encoder; 
  Pbrt.Encoder.bool v.hafcipegpin encoder;
  Pbrt.Encoder.key 1 Pbrt.Varint encoder; 
  Pbrt.Encoder.string v.kghpigijmbp encoder;
  Pbrt.Encoder.key 8 Pbrt.Bytes encoder; 
  Pbrt.Encoder.string v.fpglgbgjmjc encoder;
  Pbrt.Encoder.key 11 Pbrt.Bytes encoder; 
  Pbrt.Encoder.string v.molbpmljolo encoder;
  Pbrt.Encoder.key 915 Pbrt.Bytes encoder; 
  Pbrt.Encoder.string v.asset_bundle_url encoder;
  Pbrt.Encoder.key 3 Pbrt.Bytes encoder; 
  Pbrt.Encoder.bool v.kjadmknddjl encoder;
  Pbrt.Encoder.key 1028 Pbrt.Varint encoder; 
  Pbrt.List_util.rev_iter_with (fun x encoder -> 
    Pbrt.Encoder.string x encoder;
    Pbrt.Encoder.key 663 Pbrt.Bytes encoder; 
  ) v.khclmhjlopk encoder;
  Pbrt.Encoder.string v.lua_version encoder;
  Pbrt.Encoder.key 661 Pbrt.Bytes encoder; 
  Pbrt.Encoder.string v.okplkdhmohc encoder;
  Pbrt.Encoder.key 1462 Pbrt.Bytes encoder; 
  Pbrt.Encoder.string v.ooeapiaafnb encoder;
  Pbrt.Encoder.key 1236 Pbrt.Bytes encoder; 
  Pbrt.Encoder.string v.jelgnociekj encoder;
  Pbrt.Encoder.key 1773 Pbrt.Bytes encoder; 
  Pbrt.Encoder.int64_as_varint v.hhpakondiob encoder;
  Pbrt.Encoder.key 9 Pbrt.Varint encoder; 
  Pbrt.Encoder.bool v.opgmnlinakc encoder;
  Pbrt.Encoder.key 297 Pbrt.Varint encoder; 
  Pbrt.Encoder.bool v.begfcjlkmob encoder;
  Pbrt.Encoder.key 1754 Pbrt.Varint encoder; 
  Pbrt.Encoder.string v.nnhognglfbd encoder;
  Pbrt.Encoder.key 1132 Pbrt.Bytes encoder; 
  Pbrt.Encoder.int32_as_varint v.retcode encoder;
  Pbrt.Encoder.key 12 Pbrt.Varint encoder; 
  Pbrt.Encoder.string v.kgljfhdhdek encoder;
  Pbrt.Encoder.key 148 Pbrt.Bytes encoder; 
  Pbrt.Encoder.int32_as_varint v.cjnjnfglick encoder;
  Pbrt.Encoder.key 6 Pbrt.Varint encoder; 
  Pbrt.Encoder.string v.ncdioakalen encoder;
  Pbrt.Encoder.key 614 Pbrt.Bytes encoder; 
  Pbrt.Encoder.string v.ip encoder;
  Pbrt.Encoder.key 4 Pbrt.Bytes encoder; 
  Pbrt.Encoder.bool v.gediongpdha encoder;
  Pbrt.Encoder.key 1486 Pbrt.Varint encoder; 
  Pbrt.Encoder.bool v.mbdacjejamf encoder;
  Pbrt.Encoder.key 414 Pbrt.Varint encoder; 
  Pbrt.Encoder.string v.lua_url encoder;
  Pbrt.Encoder.key 10 Pbrt.Bytes encoder; 
  Pbrt.Encoder.string v.dmdahpindno encoder;
  Pbrt.Encoder.key 1012 Pbrt.Bytes encoder; 
  Pbrt.Encoder.bool v.gjaeghbeaio encoder;
  Pbrt.Encoder.key 1176 Pbrt.Varint encoder; 
  Pbrt.Encoder.int32_as_varint v.ddohlaegeah encoder;
  Pbrt.Encoder.key 1710 Pbrt.Varint encoder; 
  Pbrt.Encoder.string v.bfoekehoejp encoder;
  Pbrt.Encoder.key 1430 Pbrt.Bytes encoder; 
  Pbrt.Encoder.string v.chnmpglhncm encoder;
  Pbrt.Encoder.key 1370 Pbrt.Bytes encoder; 
  Pbrt.Encoder.string v.pggjoogfgfc encoder;
  Pbrt.Encoder.key 873 Pbrt.Bytes encoder; 
  Pbrt.Encoder.bool v.dklchemciai encoder;
  Pbrt.Encoder.key 1523 Pbrt.Varint encoder; 
  Pbrt.Encoder.string v.migeegecjcb encoder;
  Pbrt.Encoder.key 512 Pbrt.Bytes encoder; 
  Pbrt.Encoder.string v.ciinblfopda encoder;
  Pbrt.Encoder.key 312 Pbrt.Bytes encoder; 
  Pbrt.Encoder.bool v.fkenkkhlhhd encoder;
  Pbrt.Encoder.key 7 Pbrt.Varint encoder; 
  Pbrt.Encoder.string v.hjbndbbicdo encoder;
  Pbrt.Encoder.key 1420 Pbrt.Bytes encoder; 
  Pbrt.Encoder.string v.fggmipmoook encoder;
  Pbrt.Encoder.key 571 Pbrt.Bytes encoder; 
  Pbrt.Encoder.bool v.use_tcp encoder;
  Pbrt.Encoder.key 825 Pbrt.Varint encoder; 
  Pbrt.Encoder.string v.imffkkjpojc encoder;
  Pbrt.Encoder.key 1750 Pbrt.Bytes encoder; 
  ()

[@@@ocaml.warning "-27-30-39"]

(** {2 Protobuf Decoding} *)

let rec decode_pb_server_data d =
  let v = default_server_data_mutable () in
  let continue__= ref true in
  while !continue__ do
    match Pbrt.Decoder.key d with
    | None -> (
    ); continue__ := false
    | Some (1, Pbrt.Bytes) -> begin
      v.name <- Pbrt.Decoder.string d;
    end
    | Some (1, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(server_data), field(1)" pk
    | Some (2, Pbrt.Bytes) -> begin
      v.display_name <- Pbrt.Decoder.string d;
    end
    | Some (2, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(server_data), field(2)" pk
    | Some (3, Pbrt.Bytes) -> begin
      v.dispatch_url <- Pbrt.Decoder.string d;
    end
    | Some (3, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(server_data), field(3)" pk
    | Some (4, Pbrt.Bytes) -> begin
      v.env_type <- Pbrt.Decoder.string d;
    end
    | Some (4, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(server_data), field(4)" pk
    | Some (5, Pbrt.Bytes) -> begin
      v.title <- Pbrt.Decoder.string d;
    end
    | Some (5, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(server_data), field(5)" pk
    | Some (6, Pbrt.Bytes) -> begin
      v.msg <- Pbrt.Decoder.string d;
    end
    | Some (6, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(server_data), field(6)" pk
    | Some (_, payload_kind) -> Pbrt.Decoder.skip d payload_kind
  done;
  ({
    name = v.name;
    display_name = v.display_name;
    dispatch_url = v.dispatch_url;
    env_type = v.env_type;
    title = v.title;
    msg = v.msg;
  } : server_data)

let rec decode_pb_global_dispatch_data d =
  let v = default_global_dispatch_data_mutable () in
  let continue__= ref true in
  while !continue__ do
    match Pbrt.Decoder.key d with
    | None -> (
      v.server_list <- List.rev v.server_list;
    ); continue__ := false
    | Some (1, Pbrt.Varint) -> begin
      v.retcode <- Pbrt.Decoder.int32_as_varint d;
    end
    | Some (1, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(global_dispatch_data), field(1)" pk
    | Some (2, Pbrt.Bytes) -> begin
      v.msg <- Pbrt.Decoder.string d;
    end
    | Some (2, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(global_dispatch_data), field(2)" pk
    | Some (3, Pbrt.Bytes) -> begin
      v.ajkbajlebhn <- Pbrt.Decoder.string d;
    end
    | Some (3, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(global_dispatch_data), field(3)" pk
    | Some (4, Pbrt.Bytes) -> begin
      v.server_list <- (decode_pb_server_data (Pbrt.Decoder.nested d)) :: v.server_list;
    end
    | Some (4, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(global_dispatch_data), field(4)" pk
    | Some (5, Pbrt.Bytes) -> begin
      v.odbdlipeoog <- Pbrt.Decoder.string d;
    end
    | Some (5, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(global_dispatch_data), field(5)" pk
    | Some (_, payload_kind) -> Pbrt.Decoder.skip d payload_kind
  done;
  ({
    retcode = v.retcode;
    msg = v.msg;
    ajkbajlebhn = v.ajkbajlebhn;
    server_list = v.server_list;
    odbdlipeoog = v.odbdlipeoog;
  } : global_dispatch_data)

let rec decode_pb_gateserver d =
  let v = default_gateserver_mutable () in
  let continue__= ref true in
  while !continue__ do
    match Pbrt.Decoder.key d with
    | None -> (
      v.khclmhjlopk <- List.rev v.khclmhjlopk;
    ); continue__ := false
    | Some (1566, Pbrt.Varint) -> begin
      v.cmelkdaaapf <- Pbrt.Decoder.bool d;
    end
    | Some (1566, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(gateserver), field(1566)" pk
    | Some (1952, Pbrt.Varint) -> begin
      v.ophmlpkgkij <- Pbrt.Decoder.bool d;
    end
    | Some (1952, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(gateserver), field(1952)" pk
    | Some (563, Pbrt.Bytes) -> begin
      v.mmcjggcenpp <- Pbrt.Decoder.string d;
    end
    | Some (563, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(gateserver), field(563)" pk
    | Some (5, Pbrt.Bytes) -> begin
      v.pllenlninnh <- Pbrt.Decoder.string d;
    end
    | Some (5, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(gateserver), field(5)" pk
    | Some (1457, Pbrt.Varint) -> begin
      v.lamjdogmfam <- Pbrt.Decoder.bool d;
    end
    | Some (1457, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(gateserver), field(1457)" pk
    | Some (716, Pbrt.Bytes) -> begin
      v.bblkofdgpap <- Pbrt.Decoder.string d;
    end
    | Some (716, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(gateserver), field(716)" pk
    | Some (1220, Pbrt.Bytes) -> begin
      v.ephafkmpmif <- Pbrt.Decoder.string d;
    end
    | Some (1220, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(gateserver), field(1220)" pk
    | Some (1192, Pbrt.Bytes) -> begin
      v.gmdfmaapebc <- Pbrt.Decoder.string d;
    end
    | Some (1192, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(gateserver), field(1192)" pk
    | Some (15, Pbrt.Varint) -> begin
      v.mlcpkfihkko <- Pbrt.Decoder.int64_as_varint d;
    end
    | Some (15, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(gateserver), field(15)" pk
    | Some (593, Pbrt.Varint) -> begin
      v.bgpcckkddmb <- Pbrt.Decoder.bool d;
    end
    | Some (593, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(gateserver), field(593)" pk
    | Some (14, Pbrt.Bytes) -> begin
      v.ex_resource_url <- Pbrt.Decoder.string d;
    end
    | Some (14, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(gateserver), field(14)" pk
    | Some (677, Pbrt.Bytes) -> begin
      v.nkfnaojjlph <- Pbrt.Decoder.string d;
    end
    | Some (677, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(gateserver), field(677)" pk
    | Some (405, Pbrt.Bytes) -> begin
      v.hkdmdpmahem <- Pbrt.Decoder.string d;
    end
    | Some (405, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(gateserver), field(405)" pk
    | Some (1113, Pbrt.Bytes) -> begin
      v.onkpibmdmpi <- Pbrt.Decoder.string d;
    end
    | Some (1113, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(gateserver), field(1113)" pk
    | Some (87, Pbrt.Bytes) -> begin
      v.fbobagpbbha <- Pbrt.Decoder.string d;
    end
    | Some (87, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(gateserver), field(87)" pk
    | Some (1808, Pbrt.Bytes) -> begin
      v.mjjbccmcplk <- Pbrt.Decoder.string d;
    end
    | Some (1808, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(gateserver), field(1808)" pk
    | Some (2, Pbrt.Varint) -> begin
      v.port <- Pbrt.Decoder.int32_as_varint d;
    end
    | Some (2, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(gateserver), field(2)" pk
    | Some (1570, Pbrt.Bytes) -> begin
      v.anegjdlagll <- Pbrt.Decoder.string d;
    end
    | Some (1570, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(gateserver), field(1570)" pk
    | Some (1915, Pbrt.Varint) -> begin
      v.gepfimnioke <- Pbrt.Decoder.bool d;
    end
    | Some (1915, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(gateserver), field(1915)" pk
    | Some (1629, Pbrt.Bytes) -> begin
      v.lpnoekiaocp <- Pbrt.Decoder.string d;
    end
    | Some (1629, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(gateserver), field(1629)" pk
    | Some (1583, Pbrt.Bytes) -> begin
      v.fgkgddonpkm <- Pbrt.Decoder.string d;
    end
    | Some (1583, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(gateserver), field(1583)" pk
    | Some (13, Pbrt.Varint) -> begin
      v.nejihdfafbe <- Pbrt.Decoder.int32_as_varint d;
    end
    | Some (13, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(gateserver), field(13)" pk
    | Some (1, Pbrt.Varint) -> begin
      v.hafcipegpin <- Pbrt.Decoder.bool d;
    end
    | Some (1, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(gateserver), field(1)" pk
    | Some (8, Pbrt.Bytes) -> begin
      v.kghpigijmbp <- Pbrt.Decoder.string d;
    end
    | Some (8, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(gateserver), field(8)" pk
    | Some (11, Pbrt.Bytes) -> begin
      v.fpglgbgjmjc <- Pbrt.Decoder.string d;
    end
    | Some (11, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(gateserver), field(11)" pk
    | Some (915, Pbrt.Bytes) -> begin
      v.molbpmljolo <- Pbrt.Decoder.string d;
    end
    | Some (915, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(gateserver), field(915)" pk
    | Some (3, Pbrt.Bytes) -> begin
      v.asset_bundle_url <- Pbrt.Decoder.string d;
    end
    | Some (3, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(gateserver), field(3)" pk
    | Some (1028, Pbrt.Varint) -> begin
      v.kjadmknddjl <- Pbrt.Decoder.bool d;
    end
    | Some (1028, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(gateserver), field(1028)" pk
    | Some (663, Pbrt.Bytes) -> begin
      v.khclmhjlopk <- (Pbrt.Decoder.string d) :: v.khclmhjlopk;
    end
    | Some (663, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(gateserver), field(663)" pk
    | Some (661, Pbrt.Bytes) -> begin
      v.lua_version <- Pbrt.Decoder.string d;
    end
    | Some (661, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(gateserver), field(661)" pk
    | Some (1462, Pbrt.Bytes) -> begin
      v.okplkdhmohc <- Pbrt.Decoder.string d;
    end
    | Some (1462, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(gateserver), field(1462)" pk
    | Some (1236, Pbrt.Bytes) -> begin
      v.ooeapiaafnb <- Pbrt.Decoder.string d;
    end
    | Some (1236, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(gateserver), field(1236)" pk
    | Some (1773, Pbrt.Bytes) -> begin
      v.jelgnociekj <- Pbrt.Decoder.string d;
    end
    | Some (1773, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(gateserver), field(1773)" pk
    | Some (9, Pbrt.Varint) -> begin
      v.hhpakondiob <- Pbrt.Decoder.int64_as_varint d;
    end
    | Some (9, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(gateserver), field(9)" pk
    | Some (297, Pbrt.Varint) -> begin
      v.opgmnlinakc <- Pbrt.Decoder.bool d;
    end
    | Some (297, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(gateserver), field(297)" pk
    | Some (1754, Pbrt.Varint) -> begin
      v.begfcjlkmob <- Pbrt.Decoder.bool d;
    end
    | Some (1754, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(gateserver), field(1754)" pk
    | Some (1132, Pbrt.Bytes) -> begin
      v.nnhognglfbd <- Pbrt.Decoder.string d;
    end
    | Some (1132, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(gateserver), field(1132)" pk
    | Some (12, Pbrt.Varint) -> begin
      v.retcode <- Pbrt.Decoder.int32_as_varint d;
    end
    | Some (12, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(gateserver), field(12)" pk
    | Some (148, Pbrt.Bytes) -> begin
      v.kgljfhdhdek <- Pbrt.Decoder.string d;
    end
    | Some (148, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(gateserver), field(148)" pk
    | Some (6, Pbrt.Varint) -> begin
      v.cjnjnfglick <- Pbrt.Decoder.int32_as_varint d;
    end
    | Some (6, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(gateserver), field(6)" pk
    | Some (614, Pbrt.Bytes) -> begin
      v.ncdioakalen <- Pbrt.Decoder.string d;
    end
    | Some (614, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(gateserver), field(614)" pk
    | Some (4, Pbrt.Bytes) -> begin
      v.ip <- Pbrt.Decoder.string d;
    end
    | Some (4, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(gateserver), field(4)" pk
    | Some (1486, Pbrt.Varint) -> begin
      v.gediongpdha <- Pbrt.Decoder.bool d;
    end
    | Some (1486, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(gateserver), field(1486)" pk
    | Some (414, Pbrt.Varint) -> begin
      v.mbdacjejamf <- Pbrt.Decoder.bool d;
    end
    | Some (414, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(gateserver), field(414)" pk
    | Some (10, Pbrt.Bytes) -> begin
      v.lua_url <- Pbrt.Decoder.string d;
    end
    | Some (10, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(gateserver), field(10)" pk
    | Some (1012, Pbrt.Bytes) -> begin
      v.dmdahpindno <- Pbrt.Decoder.string d;
    end
    | Some (1012, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(gateserver), field(1012)" pk
    | Some (1176, Pbrt.Varint) -> begin
      v.gjaeghbeaio <- Pbrt.Decoder.bool d;
    end
    | Some (1176, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(gateserver), field(1176)" pk
    | Some (1710, Pbrt.Varint) -> begin
      v.ddohlaegeah <- Pbrt.Decoder.int32_as_varint d;
    end
    | Some (1710, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(gateserver), field(1710)" pk
    | Some (1430, Pbrt.Bytes) -> begin
      v.bfoekehoejp <- Pbrt.Decoder.string d;
    end
    | Some (1430, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(gateserver), field(1430)" pk
    | Some (1370, Pbrt.Bytes) -> begin
      v.chnmpglhncm <- Pbrt.Decoder.string d;
    end
    | Some (1370, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(gateserver), field(1370)" pk
    | Some (873, Pbrt.Bytes) -> begin
      v.pggjoogfgfc <- Pbrt.Decoder.string d;
    end
    | Some (873, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(gateserver), field(873)" pk
    | Some (1523, Pbrt.Varint) -> begin
      v.dklchemciai <- Pbrt.Decoder.bool d;
    end
    | Some (1523, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(gateserver), field(1523)" pk
    | Some (512, Pbrt.Bytes) -> begin
      v.migeegecjcb <- Pbrt.Decoder.string d;
    end
    | Some (512, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(gateserver), field(512)" pk
    | Some (312, Pbrt.Bytes) -> begin
      v.ciinblfopda <- Pbrt.Decoder.string d;
    end
    | Some (312, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(gateserver), field(312)" pk
    | Some (7, Pbrt.Varint) -> begin
      v.fkenkkhlhhd <- Pbrt.Decoder.bool d;
    end
    | Some (7, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(gateserver), field(7)" pk
    | Some (1420, Pbrt.Bytes) -> begin
      v.hjbndbbicdo <- Pbrt.Decoder.string d;
    end
    | Some (1420, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(gateserver), field(1420)" pk
    | Some (571, Pbrt.Bytes) -> begin
      v.fggmipmoook <- Pbrt.Decoder.string d;
    end
    | Some (571, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(gateserver), field(571)" pk
    | Some (825, Pbrt.Varint) -> begin
      v.use_tcp <- Pbrt.Decoder.bool d;
    end
    | Some (825, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(gateserver), field(825)" pk
    | Some (1750, Pbrt.Bytes) -> begin
      v.imffkkjpojc <- Pbrt.Decoder.string d;
    end
    | Some (1750, pk) -> 
      Pbrt.Decoder.unexpected_payload "Message(gateserver), field(1750)" pk
    | Some (_, payload_kind) -> Pbrt.Decoder.skip d payload_kind
  done;
  ({
    cmelkdaaapf = v.cmelkdaaapf;
    ophmlpkgkij = v.ophmlpkgkij;
    mmcjggcenpp = v.mmcjggcenpp;
    pllenlninnh = v.pllenlninnh;
    lamjdogmfam = v.lamjdogmfam;
    bblkofdgpap = v.bblkofdgpap;
    ephafkmpmif = v.ephafkmpmif;
    gmdfmaapebc = v.gmdfmaapebc;
    mlcpkfihkko = v.mlcpkfihkko;
    bgpcckkddmb = v.bgpcckkddmb;
    ex_resource_url = v.ex_resource_url;
    nkfnaojjlph = v.nkfnaojjlph;
    hkdmdpmahem = v.hkdmdpmahem;
    onkpibmdmpi = v.onkpibmdmpi;
    fbobagpbbha = v.fbobagpbbha;
    mjjbccmcplk = v.mjjbccmcplk;
    port = v.port;
    anegjdlagll = v.anegjdlagll;
    gepfimnioke = v.gepfimnioke;
    lpnoekiaocp = v.lpnoekiaocp;
    fgkgddonpkm = v.fgkgddonpkm;
    nejihdfafbe = v.nejihdfafbe;
    hafcipegpin = v.hafcipegpin;
    kghpigijmbp = v.kghpigijmbp;
    fpglgbgjmjc = v.fpglgbgjmjc;
    molbpmljolo = v.molbpmljolo;
    asset_bundle_url = v.asset_bundle_url;
    kjadmknddjl = v.kjadmknddjl;
    khclmhjlopk = v.khclmhjlopk;
    lua_version = v.lua_version;
    okplkdhmohc = v.okplkdhmohc;
    ooeapiaafnb = v.ooeapiaafnb;
    jelgnociekj = v.jelgnociekj;
    hhpakondiob = v.hhpakondiob;
    opgmnlinakc = v.opgmnlinakc;
    begfcjlkmob = v.begfcjlkmob;
    nnhognglfbd = v.nnhognglfbd;
    retcode = v.retcode;
    kgljfhdhdek = v.kgljfhdhdek;
    cjnjnfglick = v.cjnjnfglick;
    ncdioakalen = v.ncdioakalen;
    ip = v.ip;
    gediongpdha = v.gediongpdha;
    mbdacjejamf = v.mbdacjejamf;
    lua_url = v.lua_url;
    dmdahpindno = v.dmdahpindno;
    gjaeghbeaio = v.gjaeghbeaio;
    ddohlaegeah = v.ddohlaegeah;
    bfoekehoejp = v.bfoekehoejp;
    chnmpglhncm = v.chnmpglhncm;
    pggjoogfgfc = v.pggjoogfgfc;
    dklchemciai = v.dklchemciai;
    migeegecjcb = v.migeegecjcb;
    ciinblfopda = v.ciinblfopda;
    fkenkkhlhhd = v.fkenkkhlhhd;
    hjbndbbicdo = v.hjbndbbicdo;
    fggmipmoook = v.fggmipmoook;
    use_tcp = v.use_tcp;
    imffkkjpojc = v.imffkkjpojc;
  } : gateserver)
