Exit Full View

Games Cupboard / gamescupboard-client / build / compileSync / main / productionExecutable / kotlin / GamesCupboard-gamescupboard-common-js-ir.js

(function (root, factory) {
  if (typeof define === 'function' && define.amd)
    define(['exports', './kotlin-kotlin-stdlib-js-ir.js', './kotlinx-serialization-kotlinx-serialization-core-js-ir.js', './korlibs-klock.js'], factory);
  else if (typeof exports === 'object')
    factory(module.exports, require('./kotlin-kotlin-stdlib-js-ir.js'), require('./kotlinx-serialization-kotlinx-serialization-core-js-ir.js'), require('./korlibs-klock.js'));
  else {
    if (typeof this['kotlin-kotlin-stdlib-js-ir'] === 'undefined') {
      throw new Error("Error loading module 'GamesCupboard-gamescupboard-common-js-ir'. Its dependency 'kotlin-kotlin-stdlib-js-ir' was not found. Please, check whether 'kotlin-kotlin-stdlib-js-ir' is loaded prior to 'GamesCupboard-gamescupboard-common-js-ir'.");
    }
    if (typeof this['kotlinx-serialization-kotlinx-serialization-core-js-ir'] === 'undefined') {
      throw new Error("Error loading module 'GamesCupboard-gamescupboard-common-js-ir'. Its dependency 'kotlinx-serialization-kotlinx-serialization-core-js-ir' was not found. Please, check whether 'kotlinx-serialization-kotlinx-serialization-core-js-ir' is loaded prior to 'GamesCupboard-gamescupboard-common-js-ir'.");
    }
    if (typeof this['korlibs-klock'] === 'undefined') {
      throw new Error("Error loading module 'GamesCupboard-gamescupboard-common-js-ir'. Its dependency 'korlibs-klock' was not found. Please, check whether 'korlibs-klock' is loaded prior to 'GamesCupboard-gamescupboard-common-js-ir'.");
    }
    root['GamesCupboard-gamescupboard-common-js-ir'] = factory(typeof this['GamesCupboard-gamescupboard-common-js-ir'] === 'undefined' ? {} : this['GamesCupboard-gamescupboard-common-js-ir'], this['kotlin-kotlin-stdlib-js-ir'], this['kotlinx-serialization-kotlinx-serialization-core-js-ir'], this['korlibs-klock']);
  }
}(this, function (_, kotlin_kotlin, kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core, kotlin_com_soywiz_korlibs_klock_klock) {
  'use strict';
  //region block: imports
  var imul = Math.imul;
  var objectMeta = kotlin_kotlin.$_$.wd;
  var PluginGeneratedSerialDescriptor = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.f2;
  var StringSerializer_getInstance = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.s;
  var ArrayListSerializer = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.x1;
  var Unit_getInstance = kotlin_kotlin.$_$.k5;
  var UnknownFieldException_init_$Create$ = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.g;
  var THROW_CCE = kotlin_kotlin.$_$.di;
  var typeParametersSerializers = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.b2;
  var GeneratedSerializer = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.c2;
  var throwMissingFieldException = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.i2;
  var classMeta = kotlin_kotlin.$_$.pc;
  var IntSerializer_getInstance = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.q;
  var get_nullable = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.v;
  var getStringHashCode = kotlin_kotlin.$_$.wc;
  var Companion_getInstance = kotlin_com_soywiz_korlibs_klock_klock.$_$.b1;
  var LongSerializer_getInstance = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.r;
  var Long = kotlin_kotlin.$_$.xh;
  var toString = kotlin_kotlin.$_$.ae;
  var hashCode = kotlin_kotlin.$_$.xc;
  var equals = kotlin_kotlin.$_$.rc;
  var ObjectSerializer_init_$Create$ = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.c;
  var LazyThreadSafetyMode_PUBLICATION_getInstance = kotlin_kotlin.$_$.g;
  var lazy = kotlin_kotlin.$_$.xi;
  var SerializerFactory = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.g2;
  var getKClass = kotlin_kotlin.$_$.d;
  var SealedClassSerializer_init_$Create$ = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.d;
  var BooleanSerializer_getInstance = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.o;
  var numberToInt = kotlin_kotlin.$_$.ud;
  var DoubleSerializer_getInstance = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.p;
  var getNumberHashCode = kotlin_kotlin.$_$.uc;
  var EnumDescriptor = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.z1;
  var Enum = kotlin_kotlin.$_$.sh;
  var emptyList = kotlin_kotlin.$_$.w7;
  var interfaceMeta = kotlin_kotlin.$_$.yc;
  var Pair = kotlin_kotlin.$_$.ai;
  var LinkedHashMapSerializer = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.d2;
  var LinkedHashMap_init_$Create$ = kotlin_kotlin.$_$.v1;
  var EnumSerializer = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.a2;
  var ArrayList_init_$Create$ = kotlin_kotlin.$_$.m1;
  //endregion
  //region block: pre-declaration
  RunCommand.prototype = Object.create(Message.prototype);
  RunCommand.prototype.constructor = RunCommand;
  ChatMessage.prototype = Object.create(Message.prototype);
  ChatMessage.prototype.constructor = ChatMessage;
  NotInvited.prototype = Object.create(Message.prototype);
  NotInvited.prototype.constructor = NotInvited;
  GameInfo.prototype = Object.create(Message.prototype);
  GameInfo.prototype.constructor = GameInfo;
  ResetGame.prototype = Object.create(Message.prototype);
  ResetGame.prototype.constructor = ResetGame;
  PlayerJoined.prototype = Object.create(Message.prototype);
  PlayerJoined.prototype.constructor = PlayerJoined;
  PlayerLeft.prototype = Object.create(Message.prototype);
  PlayerLeft.prototype.constructor = PlayerLeft;
  RenamePlayer.prototype = Object.create(Message.prototype);
  RenamePlayer.prototype.constructor = RenamePlayer;
  AddObjects.prototype = Object.create(Message.prototype);
  AddObjects.prototype.constructor = AddObjects;
  RemoveObjects.prototype = Object.create(Message.prototype);
  RemoveObjects.prototype.constructor = RemoveObjects;
  MoveObject.prototype = Object.create(Message.prototype);
  MoveObject.prototype.constructor = MoveObject;
  DragObject.prototype = Object.create(Message.prototype);
  DragObject.prototype.constructor = DragObject;
  ChangePrivacy.prototype = Object.create(Message.prototype);
  ChangePrivacy.prototype.constructor = ChangePrivacy;
  FaceUpOrDown.prototype = Object.create(Message.prototype);
  FaceUpOrDown.prototype.constructor = FaceUpOrDown;
  ScaleObject.prototype = Object.create(Message.prototype);
  ScaleObject.prototype.constructor = ScaleObject;
  CycleText.prototype = Object.create(Message.prototype);
  CycleText.prototype.constructor = CycleText;
  ChangeImage.prototype = Object.create(Message.prototype);
  ChangeImage.prototype.constructor = ChangeImage;
  CommandOk.prototype = Object.create(Message.prototype);
  CommandOk.prototype.constructor = CommandOk;
  CommandError.prototype = Object.create(Message.prototype);
  CommandError.prototype.constructor = CommandError;
  ScoreSheetData.prototype = Object.create(Message.prototype);
  ScoreSheetData.prototype.constructor = ScoreSheetData;
  AddBin.prototype = Object.create(Message.prototype);
  AddBin.prototype.constructor = AddBin;
  HighlightMouse.prototype = Object.create(Message.prototype);
  HighlightMouse.prototype.constructor = HighlightMouse;
  ChangeZOrder.prototype = Object.create(Enum.prototype);
  ChangeZOrder.prototype.constructor = ChangeZOrder;
  RestoreFromBin.prototype = Object.create(Message.prototype);
  RestoreFromBin.prototype.constructor = RestoreFromBin;
  AddToBin.prototype = Object.create(Message.prototype);
  AddToBin.prototype.constructor = AddToBin;
  HexSnap.prototype = Object.create(SnapToGrid.prototype);
  HexSnap.prototype.constructor = HexSnap;
  RectangularSnapToGrid.prototype = Object.create(SnapToGrid.prototype);
  RectangularSnapToGrid.prototype.constructor = RectangularSnapToGrid;
  AreaType.prototype = Object.create(Enum.prototype);
  AreaType.prototype.constructor = AreaType;
  TextStyle.prototype = Object.create(Enum.prototype);
  TextStyle.prototype.constructor = TextStyle;
  //endregion
  function Companion() {
    Companion_instance = this;
  }
  Companion.$metadata$ = objectMeta('Companion');
  var Companion_instance;
  function Companion_getInstance_0() {
    if (Companion_instance == null)
      new Companion();
    return Companion_instance;
  }
  function $serializer() {
    $serializer_instance = this;
    var tmp0_serialDesc = new PluginGeneratedSerialDescriptor('RunCommand', this, 2);
    tmp0_serialDesc.g10('name', false);
    tmp0_serialDesc.g10('parameters', false);
    this.j1i_1 = tmp0_serialDesc;
  }
  $serializer.prototype.bq = function () {
    return this.j1i_1;
  };
  $serializer.prototype.x10 = function () {
    var tmp$ret$2;
    // Inline function 'kotlin.arrayOf' call
    var tmp0_arrayOf = [StringSerializer_getInstance(), new ArrayListSerializer(StringSerializer_getInstance())];
    var tmp$ret$1;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$0;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$0 = tmp0_arrayOf;
    tmp$ret$1 = tmp$ret$0;
    tmp$ret$2 = tmp$ret$1;
    return tmp$ret$2;
  };
  $serializer.prototype.dq = function (decoder) {
    var tmp0_desc = this.j1i_1;
    var tmp1_flag = true;
    var tmp2_index = 0;
    var tmp3_bitMask0 = 0;
    var tmp4_local0 = null;
    var tmp5_local1 = null;
    var tmp6_input = decoder.it(tmp0_desc);
    if (tmp6_input.wt()) {
      tmp4_local0 = tmp6_input.st(tmp0_desc, 0);
      tmp3_bitMask0 = tmp3_bitMask0 | 1;
      tmp5_local1 = tmp6_input.tt(tmp0_desc, 1, new ArrayListSerializer(StringSerializer_getInstance()), tmp5_local1);
      tmp3_bitMask0 = tmp3_bitMask0 | 2;
    } else
      while (tmp1_flag) {
        tmp2_index = tmp6_input.xt(tmp0_desc);
        switch (tmp2_index) {
          case -1:
            tmp1_flag = false;
            break;
          case 0:
            tmp4_local0 = tmp6_input.st(tmp0_desc, 0);
            tmp3_bitMask0 = tmp3_bitMask0 | 1;
            break;
          case 1:
            tmp5_local1 = tmp6_input.tt(tmp0_desc, 1, new ArrayListSerializer(StringSerializer_getInstance()), tmp5_local1);
            tmp3_bitMask0 = tmp3_bitMask0 | 2;
            break;
          default:
            throw UnknownFieldException_init_$Create$(tmp2_index);
        }
      }
    tmp6_input.jt(tmp0_desc);
    return RunCommand_init_$Create$(tmp3_bitMask0, tmp4_local0, tmp5_local1, null);
  };
  $serializer.prototype.k1i = function (encoder, value) {
    var tmp0_desc = this.j1i_1;
    var tmp1_output = encoder.it(tmp0_desc);
    tmp1_output.vu(tmp0_desc, 0, value.l1i_1);
    tmp1_output.wu(tmp0_desc, 1, new ArrayListSerializer(StringSerializer_getInstance()), value.m1i_1);
    tmp1_output.jt(tmp0_desc);
  };
  $serializer.prototype.cq = function (encoder, value) {
    return this.k1i(encoder, value instanceof RunCommand ? value : THROW_CCE());
  };
  $serializer.$metadata$ = objectMeta('$serializer', [GeneratedSerializer]);
  var $serializer_instance;
  function $serializer_getInstance() {
    if ($serializer_instance == null)
      new $serializer();
    return $serializer_instance;
  }
  function RunCommand_init_$Init$(seen1, name, parameters, serializationConstructorMarker, $this) {
    if (!(3 === (3 & seen1))) {
      throwMissingFieldException(seen1, 3, $serializer_getInstance().j1i_1);
    }
    Message_init_$Init$(seen1, serializationConstructorMarker, $this);
    $this.l1i_1 = name;
    $this.m1i_1 = parameters;
    return $this;
  }
  function RunCommand_init_$Create$(seen1, name, parameters, serializationConstructorMarker) {
    return RunCommand_init_$Init$(seen1, name, parameters, serializationConstructorMarker, Object.create(RunCommand.prototype));
  }
  function RunCommand(name, parameters) {
    Companion_getInstance_0();
    Message.call(this);
    this.l1i_1 = name;
    this.m1i_1 = parameters;
  }
  RunCommand.$metadata$ = classMeta('RunCommand', undefined, undefined, {0: $serializer_getInstance}, undefined, Message.prototype);
  function Companion_0() {
    Companion_instance_0 = this;
  }
  Companion_0.$metadata$ = objectMeta('Companion');
  var Companion_instance_0;
  function Companion_getInstance_1() {
    if (Companion_instance_0 == null)
      new Companion_0();
    return Companion_instance_0;
  }
  function $serializer_0() {
    $serializer_instance_0 = this;
    var tmp0_serialDesc = new PluginGeneratedSerialDescriptor('ChatMessage', this, 3);
    tmp0_serialDesc.g10('fromId', false);
    tmp0_serialDesc.g10('str', false);
    tmp0_serialDesc.g10('toId', true);
    this.n1i_1 = tmp0_serialDesc;
  }
  $serializer_0.prototype.bq = function () {
    return this.n1i_1;
  };
  $serializer_0.prototype.x10 = function () {
    var tmp$ret$2;
    // Inline function 'kotlin.arrayOf' call
    var tmp0_arrayOf = [IntSerializer_getInstance(), StringSerializer_getInstance(), get_nullable(IntSerializer_getInstance())];
    var tmp$ret$1;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$0;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$0 = tmp0_arrayOf;
    tmp$ret$1 = tmp$ret$0;
    tmp$ret$2 = tmp$ret$1;
    return tmp$ret$2;
  };
  $serializer_0.prototype.dq = function (decoder) {
    var tmp0_desc = this.n1i_1;
    var tmp1_flag = true;
    var tmp2_index = 0;
    var tmp3_bitMask0 = 0;
    var tmp4_local0 = 0;
    var tmp5_local1 = null;
    var tmp6_local2 = null;
    var tmp7_input = decoder.it(tmp0_desc);
    if (tmp7_input.wt()) {
      tmp4_local0 = tmp7_input.nt(tmp0_desc, 0);
      tmp3_bitMask0 = tmp3_bitMask0 | 1;
      tmp5_local1 = tmp7_input.st(tmp0_desc, 1);
      tmp3_bitMask0 = tmp3_bitMask0 | 2;
      tmp6_local2 = tmp7_input.vt(tmp0_desc, 2, IntSerializer_getInstance(), tmp6_local2);
      tmp3_bitMask0 = tmp3_bitMask0 | 4;
    } else
      while (tmp1_flag) {
        tmp2_index = tmp7_input.xt(tmp0_desc);
        switch (tmp2_index) {
          case -1:
            tmp1_flag = false;
            break;
          case 0:
            tmp4_local0 = tmp7_input.nt(tmp0_desc, 0);
            tmp3_bitMask0 = tmp3_bitMask0 | 1;
            break;
          case 1:
            tmp5_local1 = tmp7_input.st(tmp0_desc, 1);
            tmp3_bitMask0 = tmp3_bitMask0 | 2;
            break;
          case 2:
            tmp6_local2 = tmp7_input.vt(tmp0_desc, 2, IntSerializer_getInstance(), tmp6_local2);
            tmp3_bitMask0 = tmp3_bitMask0 | 4;
            break;
          default:
            throw UnknownFieldException_init_$Create$(tmp2_index);
        }
      }
    tmp7_input.jt(tmp0_desc);
    return ChatMessage_init_$Create$(tmp3_bitMask0, tmp4_local0, tmp5_local1, tmp6_local2, null);
  };
  $serializer_0.prototype.o1i = function (encoder, value) {
    var tmp0_desc = this.n1i_1;
    var tmp1_output = encoder.it(tmp0_desc);
    tmp1_output.qu(tmp0_desc, 0, value.p1i_1);
    tmp1_output.vu(tmp0_desc, 1, value.q1i_1);
    if (tmp1_output.cv(tmp0_desc, 2) ? true : !(value.r1i_1 == null)) {
      tmp1_output.yu(tmp0_desc, 2, IntSerializer_getInstance(), value.r1i_1);
    }
    tmp1_output.jt(tmp0_desc);
  };
  $serializer_0.prototype.cq = function (encoder, value) {
    return this.o1i(encoder, value instanceof ChatMessage ? value : THROW_CCE());
  };
  $serializer_0.$metadata$ = objectMeta('$serializer', [GeneratedSerializer]);
  var $serializer_instance_0;
  function $serializer_getInstance_0() {
    if ($serializer_instance_0 == null)
      new $serializer_0();
    return $serializer_instance_0;
  }
  function ChatMessage_init_$Init$(seen1, fromId, str, toId, serializationConstructorMarker, $this) {
    if (!(3 === (3 & seen1))) {
      throwMissingFieldException(seen1, 3, $serializer_getInstance_0().n1i_1);
    }
    Message_init_$Init$(seen1, serializationConstructorMarker, $this);
    $this.p1i_1 = fromId;
    $this.q1i_1 = str;
    if (0 === (seen1 & 4))
      $this.r1i_1 = null;
    else
      $this.r1i_1 = toId;
    return $this;
  }
  function ChatMessage_init_$Create$(seen1, fromId, str, toId, serializationConstructorMarker) {
    return ChatMessage_init_$Init$(seen1, fromId, str, toId, serializationConstructorMarker, Object.create(ChatMessage.prototype));
  }
  function ChatMessage(fromId, str, toId) {
    Companion_getInstance_1();
    Message.call(this);
    this.p1i_1 = fromId;
    this.q1i_1 = str;
    this.r1i_1 = toId;
  }
  ChatMessage.prototype.toString = function () {
    return 'ChatMessage(fromId=' + this.p1i_1 + ', str=' + this.q1i_1 + ', toId=' + this.r1i_1 + ')';
  };
  ChatMessage.prototype.hashCode = function () {
    var result = this.p1i_1;
    result = imul(result, 31) + getStringHashCode(this.q1i_1) | 0;
    result = imul(result, 31) + (this.r1i_1 == null ? 0 : this.r1i_1) | 0;
    return result;
  };
  ChatMessage.prototype.equals = function (other) {
    if (this === other)
      return true;
    if (!(other instanceof ChatMessage))
      return false;
    var tmp0_other_with_cast = other instanceof ChatMessage ? other : THROW_CCE();
    if (!(this.p1i_1 === tmp0_other_with_cast.p1i_1))
      return false;
    if (!(this.q1i_1 === tmp0_other_with_cast.q1i_1))
      return false;
    if (!(this.r1i_1 == tmp0_other_with_cast.r1i_1))
      return false;
    return true;
  };
  ChatMessage.$metadata$ = classMeta('ChatMessage', undefined, undefined, {0: $serializer_getInstance_0}, undefined, Message.prototype);
  function Packet_init_$Init$(m, time, $mask0, $marker, $this) {
    if (!(($mask0 & 2) === 0))
      time = Companion_getInstance().f1h();
    Packet.call($this, m, time);
    return $this;
  }
  function Packet_init_$Create$(m, time, $mask0, $marker) {
    return Packet_init_$Init$(m, time, $mask0, $marker, Object.create(Packet.prototype));
  }
  function Companion_1() {
    Companion_instance_1 = this;
  }
  Companion_1.$metadata$ = objectMeta('Companion');
  var Companion_instance_1;
  function Companion_getInstance_2() {
    if (Companion_instance_1 == null)
      new Companion_1();
    return Companion_instance_1;
  }
  function $serializer_1() {
    $serializer_instance_1 = this;
    var tmp0_serialDesc = new PluginGeneratedSerialDescriptor('Packet', this, 2);
    tmp0_serialDesc.g10('m', false);
    tmp0_serialDesc.g10('time', true);
    this.s1i_1 = tmp0_serialDesc;
  }
  $serializer_1.prototype.bq = function () {
    return this.s1i_1;
  };
  $serializer_1.prototype.x10 = function () {
    var tmp$ret$2;
    // Inline function 'kotlin.arrayOf' call
    var tmp0_arrayOf = [Companion_getInstance_3().i19(), LongSerializer_getInstance()];
    var tmp$ret$1;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$0;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$0 = tmp0_arrayOf;
    tmp$ret$1 = tmp$ret$0;
    tmp$ret$2 = tmp$ret$1;
    return tmp$ret$2;
  };
  $serializer_1.prototype.dq = function (decoder) {
    var tmp0_desc = this.s1i_1;
    var tmp1_flag = true;
    var tmp2_index = 0;
    var tmp3_bitMask0 = 0;
    var tmp4_local0 = null;
    var tmp5_local1 = new Long(0, 0);
    var tmp6_input = decoder.it(tmp0_desc);
    if (tmp6_input.wt()) {
      tmp4_local0 = tmp6_input.tt(tmp0_desc, 0, Companion_getInstance_3().i19(), tmp4_local0);
      tmp3_bitMask0 = tmp3_bitMask0 | 1;
      tmp5_local1 = tmp6_input.ot(tmp0_desc, 1);
      tmp3_bitMask0 = tmp3_bitMask0 | 2;
    } else
      while (tmp1_flag) {
        tmp2_index = tmp6_input.xt(tmp0_desc);
        switch (tmp2_index) {
          case -1:
            tmp1_flag = false;
            break;
          case 0:
            tmp4_local0 = tmp6_input.tt(tmp0_desc, 0, Companion_getInstance_3().i19(), tmp4_local0);
            tmp3_bitMask0 = tmp3_bitMask0 | 1;
            break;
          case 1:
            tmp5_local1 = tmp6_input.ot(tmp0_desc, 1);
            tmp3_bitMask0 = tmp3_bitMask0 | 2;
            break;
          default:
            throw UnknownFieldException_init_$Create$(tmp2_index);
        }
      }
    tmp6_input.jt(tmp0_desc);
    return Packet_init_$Create$_0(tmp3_bitMask0, tmp4_local0, tmp5_local1, null);
  };
  $serializer_1.prototype.u1i = function (encoder, value) {
    var tmp0_desc = this.s1i_1;
    var tmp1_output = encoder.it(tmp0_desc);
    tmp1_output.wu(tmp0_desc, 0, Companion_getInstance_3().i19(), value.v1i_1);
    if (tmp1_output.cv(tmp0_desc, 1) ? true : !value.w1i_1.equals(Companion_getInstance().f1h())) {
      tmp1_output.ru(tmp0_desc, 1, value.w1i_1);
    }
    tmp1_output.jt(tmp0_desc);
  };
  $serializer_1.prototype.cq = function (encoder, value) {
    return this.u1i(encoder, value instanceof Packet ? value : THROW_CCE());
  };
  $serializer_1.$metadata$ = objectMeta('$serializer', [GeneratedSerializer]);
  var $serializer_instance_1;
  function $serializer_getInstance_1() {
    if ($serializer_instance_1 == null)
      new $serializer_1();
    return $serializer_instance_1;
  }
  function Packet_init_$Init$_0(seen1, m, time, serializationConstructorMarker, $this) {
    if (!(1 === (1 & seen1))) {
      throwMissingFieldException(seen1, 1, $serializer_getInstance_1().s1i_1);
    }
    $this.v1i_1 = m;
    if (0 === (seen1 & 2))
      $this.w1i_1 = Companion_getInstance().f1h();
    else
      $this.w1i_1 = time;
    return $this;
  }
  function Packet_init_$Create$_0(seen1, m, time, serializationConstructorMarker) {
    return Packet_init_$Init$_0(seen1, m, time, serializationConstructorMarker, Object.create(Packet.prototype));
  }
  function Packet(m, time) {
    Companion_getInstance_2();
    this.v1i_1 = m;
    this.w1i_1 = time;
  }
  Packet.prototype.toString = function () {
    return 'Packet(m=' + this.v1i_1 + ', time=' + toString(this.w1i_1) + ')';
  };
  Packet.prototype.hashCode = function () {
    var result = hashCode(this.v1i_1);
    result = imul(result, 31) + this.w1i_1.hashCode() | 0;
    return result;
  };
  Packet.prototype.equals = function (other) {
    if (this === other)
      return true;
    if (!(other instanceof Packet))
      return false;
    var tmp0_other_with_cast = other instanceof Packet ? other : THROW_CCE();
    if (!equals(this.v1i_1, tmp0_other_with_cast.v1i_1))
      return false;
    if (!this.w1i_1.equals(tmp0_other_with_cast.w1i_1))
      return false;
    return true;
  };
  Packet.$metadata$ = classMeta('Packet', undefined, undefined, {0: $serializer_getInstance_1});
  function NotInvited$$cachedSerializer$delegate$_anonymous__jryvze() {
    var tmp = NotInvited_getInstance();
    var tmp$ret$2;
    // Inline function 'kotlin.arrayOf' call
    var tmp$ret$1;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$0;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$0 = [];
    tmp$ret$1 = tmp$ret$0;
    tmp$ret$2 = tmp$ret$1;
    return ObjectSerializer_init_$Create$('NotInvited', tmp, tmp$ret$2);
  }
  function NotInvited() {
    NotInvited_instance = this;
    Message.call(this);
    var tmp = this;
    var tmp_0 = LazyThreadSafetyMode_PUBLICATION_getInstance();
    tmp.x1i_1 = lazy(tmp_0, NotInvited$$cachedSerializer$delegate$_anonymous__jryvze);
  }
  NotInvited.prototype.i19 = function () {
    return this.x1i_1.l1();
  };
  NotInvited.prototype.f11 = function (typeParamsSerializers) {
    return this.i19();
  };
  NotInvited.$metadata$ = objectMeta('NotInvited', [SerializerFactory], undefined, {0: NotInvited_getInstance}, undefined, Message.prototype);
  var NotInvited_instance;
  function NotInvited_getInstance() {
    if (NotInvited_instance == null)
      new NotInvited();
    return NotInvited_instance;
  }
  function Message$Companion$$cachedSerializer$delegate$_anonymous__ocb6gh() {
    var tmp = getKClass(Message);
    var tmp$ret$2;
    // Inline function 'kotlin.arrayOf' call
    var tmp0_arrayOf = [getKClass(AddBin), getKClass(AddObjects), getKClass(AddToBin), getKClass(ChangeImage), getKClass(ChangePrivacy), getKClass(ChatMessage), getKClass(CommandError), getKClass(CommandOk), getKClass(CycleText), getKClass(DragObject), getKClass(FaceUpOrDown), getKClass(GameInfo), getKClass(HighlightMouse), getKClass(MoveObject), getKClass(NotInvited), getKClass(PlayerJoined), getKClass(PlayerLeft), getKClass(RemoveObjects), getKClass(RenamePlayer), getKClass(ResetGame), getKClass(RestoreFromBin), getKClass(RunCommand), getKClass(ScaleObject), getKClass(ScoreSheetData)];
    var tmp$ret$1;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$0;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$0 = tmp0_arrayOf;
    tmp$ret$1 = tmp$ret$0;
    tmp$ret$2 = tmp$ret$1;
    var tmp_0 = tmp$ret$2;
    var tmp$ret$17;
    // Inline function 'kotlin.arrayOf' call
    var tmp_1 = AddBin_getInstance();
    var tmp$ret$5;
    // Inline function 'kotlin.arrayOf' call
    var tmp$ret$4;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$3;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$3 = [];
    tmp$ret$4 = tmp$ret$3;
    tmp$ret$5 = tmp$ret$4;
    var tmp_2 = ObjectSerializer_init_$Create$('AddBin', tmp_1, tmp$ret$5);
    var tmp_3 = $serializer_getInstance_7();
    var tmp_4 = $serializer_getInstance_20();
    var tmp_5 = $serializer_getInstance_15();
    var tmp_6 = $serializer_getInstance_11();
    var tmp_7 = $serializer_getInstance_0();
    var tmp_8 = $serializer_getInstance_16();
    var tmp_9 = CommandOk_getInstance();
    var tmp$ret$8;
    // Inline function 'kotlin.arrayOf' call
    var tmp$ret$7;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$6;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$6 = [];
    tmp$ret$7 = tmp$ret$6;
    tmp$ret$8 = tmp$ret$7;
    var tmp_10 = ObjectSerializer_init_$Create$('CommandOk', tmp_9, tmp$ret$8);
    var tmp_11 = $serializer_getInstance_14();
    var tmp_12 = $serializer_getInstance_10();
    var tmp_13 = $serializer_getInstance_12();
    var tmp_14 = $serializer_getInstance_2();
    var tmp_15 = $serializer_getInstance_18();
    var tmp_16 = $serializer_getInstance_9();
    var tmp_17 = NotInvited_getInstance();
    var tmp$ret$11;
    // Inline function 'kotlin.arrayOf' call
    var tmp$ret$10;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$9;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$9 = [];
    tmp$ret$10 = tmp$ret$9;
    tmp$ret$11 = tmp$ret$10;
    var tmp_18 = ObjectSerializer_init_$Create$('NotInvited', tmp_17, tmp$ret$11);
    var tmp_19 = $serializer_getInstance_4();
    var tmp_20 = $serializer_getInstance_5();
    var tmp_21 = $serializer_getInstance_8();
    var tmp_22 = $serializer_getInstance_6();
    var tmp_23 = $serializer_getInstance_3();
    var tmp_24 = RestoreFromBin_getInstance();
    var tmp$ret$14;
    // Inline function 'kotlin.arrayOf' call
    var tmp$ret$13;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$12;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$12 = [];
    tmp$ret$13 = tmp$ret$12;
    tmp$ret$14 = tmp$ret$13;
    var tmp1_arrayOf = [tmp_2, tmp_3, tmp_4, tmp_5, tmp_6, tmp_7, tmp_8, tmp_10, tmp_11, tmp_12, tmp_13, tmp_14, tmp_15, tmp_16, tmp_18, tmp_19, tmp_20, tmp_21, tmp_22, tmp_23, ObjectSerializer_init_$Create$('RestoreFromBin', tmp_24, tmp$ret$14), $serializer_getInstance(), $serializer_getInstance_13(), $serializer_getInstance_17()];
    var tmp$ret$16;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$15;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$15 = tmp1_arrayOf;
    tmp$ret$16 = tmp$ret$15;
    tmp$ret$17 = tmp$ret$16;
    var tmp_25 = tmp$ret$17;
    var tmp$ret$20;
    // Inline function 'kotlin.arrayOf' call
    var tmp$ret$19;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$18;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$18 = [];
    tmp$ret$19 = tmp$ret$18;
    tmp$ret$20 = tmp$ret$19;
    return SealedClassSerializer_init_$Create$('Message', tmp, tmp_0, tmp_25, tmp$ret$20);
  }
  function Companion_2() {
    Companion_instance_2 = this;
    var tmp = this;
    var tmp_0 = LazyThreadSafetyMode_PUBLICATION_getInstance();
    tmp.t1i_1 = lazy(tmp_0, Message$Companion$$cachedSerializer$delegate$_anonymous__ocb6gh);
  }
  Companion_2.prototype.i19 = function () {
    return this.t1i_1.l1();
  };
  Companion_2.prototype.f11 = function (typeParamsSerializers) {
    return this.i19();
  };
  Companion_2.$metadata$ = objectMeta('Companion', [SerializerFactory]);
  var Companion_instance_2;
  function Companion_getInstance_3() {
    if (Companion_instance_2 == null)
      new Companion_2();
    return Companion_instance_2;
  }
  function Message_init_$Init$(seen1, serializationConstructorMarker, $this) {
    return $this;
  }
  function Message() {
    Companion_getInstance_3();
  }
  Message.$metadata$ = classMeta('Message', undefined, undefined, {0: Companion_getInstance_3});
  function Companion_3() {
    Companion_instance_3 = this;
  }
  Companion_3.$metadata$ = objectMeta('Companion');
  var Companion_instance_3;
  function Companion_getInstance_4() {
    if (Companion_instance_3 == null)
      new Companion_3();
    return Companion_instance_3;
  }
  function $serializer_2() {
    $serializer_instance_2 = this;
    var tmp0_serialDesc = new PluginGeneratedSerialDescriptor('GameInfo', this, 21);
    tmp0_serialDesc.g10('p', false);
    tmp0_serialDesc.g10('seatCount', false);
    tmp0_serialDesc.g10('otherPlayers', false);
    tmp0_serialDesc.g10('gameTypeLabel', false);
    tmp0_serialDesc.g10('variationLabel', false);
    tmp0_serialDesc.g10('gameLabel', false);
    tmp0_serialDesc.g10('bgColor', false);
    tmp0_serialDesc.g10('grids', false);
    tmp0_serialDesc.g10('specialAreas', false);
    tmp0_serialDesc.g10('specialPoints', false);
    tmp0_serialDesc.g10('commands', false);
    tmp0_serialDesc.g10('commandPrototypes', false);
    tmp0_serialDesc.g10('backgroundObjects', false);
    tmp0_serialDesc.g10('playingObjects', false);
    tmp0_serialDesc.g10('foregroundObjects', false);
    tmp0_serialDesc.g10('rules', false);
    tmp0_serialDesc.g10('buttons', false);
    tmp0_serialDesc.g10('mirrorX', false);
    tmp0_serialDesc.g10('mirrorY', false);
    tmp0_serialDesc.g10('playerColors', false);
    tmp0_serialDesc.g10('scoreSheetHasBidColumn', false);
    this.y1i_1 = tmp0_serialDesc;
  }
  $serializer_2.prototype.bq = function () {
    return this.y1i_1;
  };
  $serializer_2.prototype.x10 = function () {
    var tmp$ret$29;
    // Inline function 'kotlin.arrayOf' call
    var tmp = $serializer_getInstance_31();
    var tmp_0 = IntSerializer_getInstance();
    var tmp_1 = new ArrayListSerializer($serializer_getInstance_31());
    var tmp_2 = StringSerializer_getInstance();
    var tmp_3 = StringSerializer_getInstance();
    var tmp_4 = StringSerializer_getInstance();
    var tmp_5 = StringSerializer_getInstance();
    var tmp_6 = new ArrayListSerializer($serializer_getInstance_26());
    var tmp_7 = new ArrayListSerializer($serializer_getInstance_34());
    var tmp_8 = new ArrayListSerializer($serializer_getInstance_36());
    var tmp_9 = new ArrayListSerializer($serializer_getInstance_23());
    var tmp_10 = new ArrayListSerializer($serializer_getInstance_24());
    var tmp_11 = getKClass(GameObject);
    var tmp$ret$2;
    // Inline function 'kotlin.arrayOf' call
    var tmp0_arrayOf = [getKClass(Avatar), getKClass(FlippableImageObject), getKClass(GridImageObject), getKClass(ImageObject), getKClass(MultipleGridImageObject), getKClass(PieceAtPointCounter), getKClass(FlippableImageObject), getKClass(ImageObject), getKClass(TextObject)];
    var tmp$ret$1;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$0;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$0 = tmp0_arrayOf;
    tmp$ret$1 = tmp$ret$0;
    tmp$ret$2 = tmp$ret$1;
    var tmp_12 = tmp$ret$2;
    var tmp$ret$5;
    // Inline function 'kotlin.arrayOf' call
    var tmp1_arrayOf = [$serializer_getInstance_21(), $serializer_getInstance_25(), $serializer_getInstance_27(), $serializer_getInstance_28(), $serializer_getInstance_29(), $serializer_getInstance_30(), $serializer_getInstance_25(), $serializer_getInstance_28(), $serializer_getInstance_37()];
    var tmp$ret$4;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$3;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$3 = tmp1_arrayOf;
    tmp$ret$4 = tmp$ret$3;
    tmp$ret$5 = tmp$ret$4;
    var tmp_13 = tmp$ret$5;
    var tmp$ret$8;
    // Inline function 'kotlin.arrayOf' call
    var tmp$ret$7;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$6;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$6 = [];
    tmp$ret$7 = tmp$ret$6;
    tmp$ret$8 = tmp$ret$7;
    var tmp_14 = new ArrayListSerializer(SealedClassSerializer_init_$Create$('uk.co.nickthecoder.gamescupboard.common.GameObject', tmp_11, tmp_12, tmp_13, tmp$ret$8));
    var tmp_15 = getKClass(GameObject);
    var tmp$ret$11;
    // Inline function 'kotlin.arrayOf' call
    var tmp2_arrayOf = [getKClass(Avatar), getKClass(FlippableImageObject), getKClass(GridImageObject), getKClass(ImageObject), getKClass(MultipleGridImageObject), getKClass(PieceAtPointCounter), getKClass(FlippableImageObject), getKClass(ImageObject), getKClass(TextObject)];
    var tmp$ret$10;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$9;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$9 = tmp2_arrayOf;
    tmp$ret$10 = tmp$ret$9;
    tmp$ret$11 = tmp$ret$10;
    var tmp_16 = tmp$ret$11;
    var tmp$ret$14;
    // Inline function 'kotlin.arrayOf' call
    var tmp3_arrayOf = [$serializer_getInstance_21(), $serializer_getInstance_25(), $serializer_getInstance_27(), $serializer_getInstance_28(), $serializer_getInstance_29(), $serializer_getInstance_30(), $serializer_getInstance_25(), $serializer_getInstance_28(), $serializer_getInstance_37()];
    var tmp$ret$13;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$12;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$12 = tmp3_arrayOf;
    tmp$ret$13 = tmp$ret$12;
    tmp$ret$14 = tmp$ret$13;
    var tmp_17 = tmp$ret$14;
    var tmp$ret$17;
    // Inline function 'kotlin.arrayOf' call
    var tmp$ret$16;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$15;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$15 = [];
    tmp$ret$16 = tmp$ret$15;
    tmp$ret$17 = tmp$ret$16;
    var tmp_18 = new ArrayListSerializer(SealedClassSerializer_init_$Create$('uk.co.nickthecoder.gamescupboard.common.GameObject', tmp_15, tmp_16, tmp_17, tmp$ret$17));
    var tmp_19 = getKClass(GameObject);
    var tmp$ret$20;
    // Inline function 'kotlin.arrayOf' call
    var tmp4_arrayOf = [getKClass(Avatar), getKClass(FlippableImageObject), getKClass(GridImageObject), getKClass(ImageObject), getKClass(MultipleGridImageObject), getKClass(PieceAtPointCounter), getKClass(FlippableImageObject), getKClass(ImageObject), getKClass(TextObject)];
    var tmp$ret$19;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$18;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$18 = tmp4_arrayOf;
    tmp$ret$19 = tmp$ret$18;
    tmp$ret$20 = tmp$ret$19;
    var tmp_20 = tmp$ret$20;
    var tmp$ret$23;
    // Inline function 'kotlin.arrayOf' call
    var tmp5_arrayOf = [$serializer_getInstance_21(), $serializer_getInstance_25(), $serializer_getInstance_27(), $serializer_getInstance_28(), $serializer_getInstance_29(), $serializer_getInstance_30(), $serializer_getInstance_25(), $serializer_getInstance_28(), $serializer_getInstance_37()];
    var tmp$ret$22;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$21;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$21 = tmp5_arrayOf;
    tmp$ret$22 = tmp$ret$21;
    tmp$ret$23 = tmp$ret$22;
    var tmp_21 = tmp$ret$23;
    var tmp$ret$26;
    // Inline function 'kotlin.arrayOf' call
    var tmp$ret$25;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$24;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$24 = [];
    tmp$ret$25 = tmp$ret$24;
    tmp$ret$26 = tmp$ret$25;
    var tmp6_arrayOf = [tmp, tmp_0, tmp_1, tmp_2, tmp_3, tmp_4, tmp_5, tmp_6, tmp_7, tmp_8, tmp_9, tmp_10, tmp_14, tmp_18, new ArrayListSerializer(SealedClassSerializer_init_$Create$('uk.co.nickthecoder.gamescupboard.common.GameObject', tmp_19, tmp_20, tmp_21, tmp$ret$26)), StringSerializer_getInstance(), new ArrayListSerializer($serializer_getInstance_22()), IntSerializer_getInstance(), IntSerializer_getInstance(), new ArrayListSerializer(StringSerializer_getInstance()), BooleanSerializer_getInstance()];
    var tmp$ret$28;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$27;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$27 = tmp6_arrayOf;
    tmp$ret$28 = tmp$ret$27;
    tmp$ret$29 = tmp$ret$28;
    return tmp$ret$29;
  };
  $serializer_2.prototype.dq = function (decoder) {
    var tmp0_desc = this.y1i_1;
    var tmp1_flag = true;
    var tmp2_index = 0;
    var tmp3_bitMask0 = 0;
    var tmp4_local0 = null;
    var tmp5_local1 = 0;
    var tmp6_local2 = null;
    var tmp7_local3 = null;
    var tmp8_local4 = null;
    var tmp9_local5 = null;
    var tmp10_local6 = null;
    var tmp11_local7 = null;
    var tmp12_local8 = null;
    var tmp13_local9 = null;
    var tmp14_local10 = null;
    var tmp15_local11 = null;
    var tmp16_local12 = null;
    var tmp17_local13 = null;
    var tmp18_local14 = null;
    var tmp19_local15 = null;
    var tmp20_local16 = null;
    var tmp21_local17 = 0;
    var tmp22_local18 = 0;
    var tmp23_local19 = null;
    var tmp24_local20 = false;
    var tmp25_input = decoder.it(tmp0_desc);
    if (tmp25_input.wt()) {
      tmp4_local0 = tmp25_input.tt(tmp0_desc, 0, $serializer_getInstance_31(), tmp4_local0);
      tmp3_bitMask0 = tmp3_bitMask0 | 1;
      tmp5_local1 = tmp25_input.nt(tmp0_desc, 1);
      tmp3_bitMask0 = tmp3_bitMask0 | 2;
      tmp6_local2 = tmp25_input.tt(tmp0_desc, 2, new ArrayListSerializer($serializer_getInstance_31()), tmp6_local2);
      tmp3_bitMask0 = tmp3_bitMask0 | 4;
      tmp7_local3 = tmp25_input.st(tmp0_desc, 3);
      tmp3_bitMask0 = tmp3_bitMask0 | 8;
      tmp8_local4 = tmp25_input.st(tmp0_desc, 4);
      tmp3_bitMask0 = tmp3_bitMask0 | 16;
      tmp9_local5 = tmp25_input.st(tmp0_desc, 5);
      tmp3_bitMask0 = tmp3_bitMask0 | 32;
      tmp10_local6 = tmp25_input.st(tmp0_desc, 6);
      tmp3_bitMask0 = tmp3_bitMask0 | 64;
      tmp11_local7 = tmp25_input.tt(tmp0_desc, 7, new ArrayListSerializer($serializer_getInstance_26()), tmp11_local7);
      tmp3_bitMask0 = tmp3_bitMask0 | 128;
      tmp12_local8 = tmp25_input.tt(tmp0_desc, 8, new ArrayListSerializer($serializer_getInstance_34()), tmp12_local8);
      tmp3_bitMask0 = tmp3_bitMask0 | 256;
      tmp13_local9 = tmp25_input.tt(tmp0_desc, 9, new ArrayListSerializer($serializer_getInstance_36()), tmp13_local9);
      tmp3_bitMask0 = tmp3_bitMask0 | 512;
      tmp14_local10 = tmp25_input.tt(tmp0_desc, 10, new ArrayListSerializer($serializer_getInstance_23()), tmp14_local10);
      tmp3_bitMask0 = tmp3_bitMask0 | 1024;
      tmp15_local11 = tmp25_input.tt(tmp0_desc, 11, new ArrayListSerializer($serializer_getInstance_24()), tmp15_local11);
      tmp3_bitMask0 = tmp3_bitMask0 | 2048;
      var tmp = getKClass(GameObject);
      var tmp$ret$2;
      // Inline function 'kotlin.arrayOf' call
      var tmp0_arrayOf = [getKClass(Avatar), getKClass(FlippableImageObject), getKClass(GridImageObject), getKClass(ImageObject), getKClass(MultipleGridImageObject), getKClass(PieceAtPointCounter), getKClass(FlippableImageObject), getKClass(ImageObject), getKClass(TextObject)];
      var tmp$ret$1;
      // Inline function 'kotlin.js.unsafeCast' call
      var tmp$ret$0;
      // Inline function 'kotlin.js.asDynamic' call
      tmp$ret$0 = tmp0_arrayOf;
      tmp$ret$1 = tmp$ret$0;
      tmp$ret$2 = tmp$ret$1;
      var tmp_0 = tmp$ret$2;
      var tmp$ret$5;
      // Inline function 'kotlin.arrayOf' call
      var tmp1_arrayOf = [$serializer_getInstance_21(), $serializer_getInstance_25(), $serializer_getInstance_27(), $serializer_getInstance_28(), $serializer_getInstance_29(), $serializer_getInstance_30(), $serializer_getInstance_25(), $serializer_getInstance_28(), $serializer_getInstance_37()];
      var tmp$ret$4;
      // Inline function 'kotlin.js.unsafeCast' call
      var tmp$ret$3;
      // Inline function 'kotlin.js.asDynamic' call
      tmp$ret$3 = tmp1_arrayOf;
      tmp$ret$4 = tmp$ret$3;
      tmp$ret$5 = tmp$ret$4;
      var tmp_1 = tmp$ret$5;
      var tmp$ret$8;
      // Inline function 'kotlin.arrayOf' call
      var tmp$ret$7;
      // Inline function 'kotlin.js.unsafeCast' call
      var tmp$ret$6;
      // Inline function 'kotlin.js.asDynamic' call
      tmp$ret$6 = [];
      tmp$ret$7 = tmp$ret$6;
      tmp$ret$8 = tmp$ret$7;
      tmp16_local12 = tmp25_input.tt(tmp0_desc, 12, new ArrayListSerializer(SealedClassSerializer_init_$Create$('uk.co.nickthecoder.gamescupboard.common.GameObject', tmp, tmp_0, tmp_1, tmp$ret$8)), tmp16_local12);
      tmp3_bitMask0 = tmp3_bitMask0 | 4096;
      var tmp_2 = getKClass(GameObject);
      var tmp$ret$11;
      // Inline function 'kotlin.arrayOf' call
      var tmp2_arrayOf = [getKClass(Avatar), getKClass(FlippableImageObject), getKClass(GridImageObject), getKClass(ImageObject), getKClass(MultipleGridImageObject), getKClass(PieceAtPointCounter), getKClass(FlippableImageObject), getKClass(ImageObject), getKClass(TextObject)];
      var tmp$ret$10;
      // Inline function 'kotlin.js.unsafeCast' call
      var tmp$ret$9;
      // Inline function 'kotlin.js.asDynamic' call
      tmp$ret$9 = tmp2_arrayOf;
      tmp$ret$10 = tmp$ret$9;
      tmp$ret$11 = tmp$ret$10;
      var tmp_3 = tmp$ret$11;
      var tmp$ret$14;
      // Inline function 'kotlin.arrayOf' call
      var tmp3_arrayOf = [$serializer_getInstance_21(), $serializer_getInstance_25(), $serializer_getInstance_27(), $serializer_getInstance_28(), $serializer_getInstance_29(), $serializer_getInstance_30(), $serializer_getInstance_25(), $serializer_getInstance_28(), $serializer_getInstance_37()];
      var tmp$ret$13;
      // Inline function 'kotlin.js.unsafeCast' call
      var tmp$ret$12;
      // Inline function 'kotlin.js.asDynamic' call
      tmp$ret$12 = tmp3_arrayOf;
      tmp$ret$13 = tmp$ret$12;
      tmp$ret$14 = tmp$ret$13;
      var tmp_4 = tmp$ret$14;
      var tmp$ret$17;
      // Inline function 'kotlin.arrayOf' call
      var tmp$ret$16;
      // Inline function 'kotlin.js.unsafeCast' call
      var tmp$ret$15;
      // Inline function 'kotlin.js.asDynamic' call
      tmp$ret$15 = [];
      tmp$ret$16 = tmp$ret$15;
      tmp$ret$17 = tmp$ret$16;
      tmp17_local13 = tmp25_input.tt(tmp0_desc, 13, new ArrayListSerializer(SealedClassSerializer_init_$Create$('uk.co.nickthecoder.gamescupboard.common.GameObject', tmp_2, tmp_3, tmp_4, tmp$ret$17)), tmp17_local13);
      tmp3_bitMask0 = tmp3_bitMask0 | 8192;
      var tmp_5 = getKClass(GameObject);
      var tmp$ret$20;
      // Inline function 'kotlin.arrayOf' call
      var tmp4_arrayOf = [getKClass(Avatar), getKClass(FlippableImageObject), getKClass(GridImageObject), getKClass(ImageObject), getKClass(MultipleGridImageObject), getKClass(PieceAtPointCounter), getKClass(FlippableImageObject), getKClass(ImageObject), getKClass(TextObject)];
      var tmp$ret$19;
      // Inline function 'kotlin.js.unsafeCast' call
      var tmp$ret$18;
      // Inline function 'kotlin.js.asDynamic' call
      tmp$ret$18 = tmp4_arrayOf;
      tmp$ret$19 = tmp$ret$18;
      tmp$ret$20 = tmp$ret$19;
      var tmp_6 = tmp$ret$20;
      var tmp$ret$23;
      // Inline function 'kotlin.arrayOf' call
      var tmp5_arrayOf = [$serializer_getInstance_21(), $serializer_getInstance_25(), $serializer_getInstance_27(), $serializer_getInstance_28(), $serializer_getInstance_29(), $serializer_getInstance_30(), $serializer_getInstance_25(), $serializer_getInstance_28(), $serializer_getInstance_37()];
      var tmp$ret$22;
      // Inline function 'kotlin.js.unsafeCast' call
      var tmp$ret$21;
      // Inline function 'kotlin.js.asDynamic' call
      tmp$ret$21 = tmp5_arrayOf;
      tmp$ret$22 = tmp$ret$21;
      tmp$ret$23 = tmp$ret$22;
      var tmp_7 = tmp$ret$23;
      var tmp$ret$26;
      // Inline function 'kotlin.arrayOf' call
      var tmp$ret$25;
      // Inline function 'kotlin.js.unsafeCast' call
      var tmp$ret$24;
      // Inline function 'kotlin.js.asDynamic' call
      tmp$ret$24 = [];
      tmp$ret$25 = tmp$ret$24;
      tmp$ret$26 = tmp$ret$25;
      tmp18_local14 = tmp25_input.tt(tmp0_desc, 14, new ArrayListSerializer(SealedClassSerializer_init_$Create$('uk.co.nickthecoder.gamescupboard.common.GameObject', tmp_5, tmp_6, tmp_7, tmp$ret$26)), tmp18_local14);
      tmp3_bitMask0 = tmp3_bitMask0 | 16384;
      tmp19_local15 = tmp25_input.st(tmp0_desc, 15);
      tmp3_bitMask0 = tmp3_bitMask0 | 32768;
      tmp20_local16 = tmp25_input.tt(tmp0_desc, 16, new ArrayListSerializer($serializer_getInstance_22()), tmp20_local16);
      tmp3_bitMask0 = tmp3_bitMask0 | 65536;
      tmp21_local17 = tmp25_input.nt(tmp0_desc, 17);
      tmp3_bitMask0 = tmp3_bitMask0 | 131072;
      tmp22_local18 = tmp25_input.nt(tmp0_desc, 18);
      tmp3_bitMask0 = tmp3_bitMask0 | 262144;
      tmp23_local19 = tmp25_input.tt(tmp0_desc, 19, new ArrayListSerializer(StringSerializer_getInstance()), tmp23_local19);
      tmp3_bitMask0 = tmp3_bitMask0 | 524288;
      tmp24_local20 = tmp25_input.kt(tmp0_desc, 20);
      tmp3_bitMask0 = tmp3_bitMask0 | 1048576;
    } else
      while (tmp1_flag) {
        tmp2_index = tmp25_input.xt(tmp0_desc);
        switch (tmp2_index) {
          case -1:
            tmp1_flag = false;
            break;
          case 0:
            tmp4_local0 = tmp25_input.tt(tmp0_desc, 0, $serializer_getInstance_31(), tmp4_local0);
            tmp3_bitMask0 = tmp3_bitMask0 | 1;
            break;
          case 1:
            tmp5_local1 = tmp25_input.nt(tmp0_desc, 1);
            tmp3_bitMask0 = tmp3_bitMask0 | 2;
            break;
          case 2:
            tmp6_local2 = tmp25_input.tt(tmp0_desc, 2, new ArrayListSerializer($serializer_getInstance_31()), tmp6_local2);
            tmp3_bitMask0 = tmp3_bitMask0 | 4;
            break;
          case 3:
            tmp7_local3 = tmp25_input.st(tmp0_desc, 3);
            tmp3_bitMask0 = tmp3_bitMask0 | 8;
            break;
          case 4:
            tmp8_local4 = tmp25_input.st(tmp0_desc, 4);
            tmp3_bitMask0 = tmp3_bitMask0 | 16;
            break;
          case 5:
            tmp9_local5 = tmp25_input.st(tmp0_desc, 5);
            tmp3_bitMask0 = tmp3_bitMask0 | 32;
            break;
          case 6:
            tmp10_local6 = tmp25_input.st(tmp0_desc, 6);
            tmp3_bitMask0 = tmp3_bitMask0 | 64;
            break;
          case 7:
            tmp11_local7 = tmp25_input.tt(tmp0_desc, 7, new ArrayListSerializer($serializer_getInstance_26()), tmp11_local7);
            tmp3_bitMask0 = tmp3_bitMask0 | 128;
            break;
          case 8:
            tmp12_local8 = tmp25_input.tt(tmp0_desc, 8, new ArrayListSerializer($serializer_getInstance_34()), tmp12_local8);
            tmp3_bitMask0 = tmp3_bitMask0 | 256;
            break;
          case 9:
            tmp13_local9 = tmp25_input.tt(tmp0_desc, 9, new ArrayListSerializer($serializer_getInstance_36()), tmp13_local9);
            tmp3_bitMask0 = tmp3_bitMask0 | 512;
            break;
          case 10:
            tmp14_local10 = tmp25_input.tt(tmp0_desc, 10, new ArrayListSerializer($serializer_getInstance_23()), tmp14_local10);
            tmp3_bitMask0 = tmp3_bitMask0 | 1024;
            break;
          case 11:
            tmp15_local11 = tmp25_input.tt(tmp0_desc, 11, new ArrayListSerializer($serializer_getInstance_24()), tmp15_local11);
            tmp3_bitMask0 = tmp3_bitMask0 | 2048;
            break;
          case 12:
            var tmp_8 = getKClass(GameObject);
            var tmp$ret$29;
            // Inline function 'kotlin.arrayOf' call
            var tmp6_arrayOf = [getKClass(Avatar), getKClass(FlippableImageObject), getKClass(GridImageObject), getKClass(ImageObject), getKClass(MultipleGridImageObject), getKClass(PieceAtPointCounter), getKClass(FlippableImageObject), getKClass(ImageObject), getKClass(TextObject)];
            var tmp$ret$28;
            // Inline function 'kotlin.js.unsafeCast' call
            var tmp$ret$27;
            // Inline function 'kotlin.js.asDynamic' call
            tmp$ret$27 = tmp6_arrayOf;
            tmp$ret$28 = tmp$ret$27;
            tmp$ret$29 = tmp$ret$28;

            var tmp_9 = tmp$ret$29;
            var tmp$ret$32;
            // Inline function 'kotlin.arrayOf' call
            var tmp7_arrayOf = [$serializer_getInstance_21(), $serializer_getInstance_25(), $serializer_getInstance_27(), $serializer_getInstance_28(), $serializer_getInstance_29(), $serializer_getInstance_30(), $serializer_getInstance_25(), $serializer_getInstance_28(), $serializer_getInstance_37()];
            var tmp$ret$31;
            // Inline function 'kotlin.js.unsafeCast' call
            var tmp$ret$30;
            // Inline function 'kotlin.js.asDynamic' call
            tmp$ret$30 = tmp7_arrayOf;
            tmp$ret$31 = tmp$ret$30;
            tmp$ret$32 = tmp$ret$31;

            var tmp_10 = tmp$ret$32;
            var tmp$ret$35;
            // Inline function 'kotlin.arrayOf' call
            var tmp$ret$34;
            // Inline function 'kotlin.js.unsafeCast' call
            var tmp$ret$33;
            // Inline function 'kotlin.js.asDynamic' call
            tmp$ret$33 = [];
            tmp$ret$34 = tmp$ret$33;
            tmp$ret$35 = tmp$ret$34;

            tmp16_local12 = tmp25_input.tt(tmp0_desc, 12, new ArrayListSerializer(SealedClassSerializer_init_$Create$('uk.co.nickthecoder.gamescupboard.common.GameObject', tmp_8, tmp_9, tmp_10, tmp$ret$35)), tmp16_local12);
            tmp3_bitMask0 = tmp3_bitMask0 | 4096;
            break;
          case 13:
            var tmp_11 = getKClass(GameObject);
            var tmp$ret$38;
            // Inline function 'kotlin.arrayOf' call
            var tmp8_arrayOf = [getKClass(Avatar), getKClass(FlippableImageObject), getKClass(GridImageObject), getKClass(ImageObject), getKClass(MultipleGridImageObject), getKClass(PieceAtPointCounter), getKClass(FlippableImageObject), getKClass(ImageObject), getKClass(TextObject)];
            var tmp$ret$37;
            // Inline function 'kotlin.js.unsafeCast' call
            var tmp$ret$36;
            // Inline function 'kotlin.js.asDynamic' call
            tmp$ret$36 = tmp8_arrayOf;
            tmp$ret$37 = tmp$ret$36;
            tmp$ret$38 = tmp$ret$37;

            var tmp_12 = tmp$ret$38;
            var tmp$ret$41;
            // Inline function 'kotlin.arrayOf' call
            var tmp9_arrayOf = [$serializer_getInstance_21(), $serializer_getInstance_25(), $serializer_getInstance_27(), $serializer_getInstance_28(), $serializer_getInstance_29(), $serializer_getInstance_30(), $serializer_getInstance_25(), $serializer_getInstance_28(), $serializer_getInstance_37()];
            var tmp$ret$40;
            // Inline function 'kotlin.js.unsafeCast' call
            var tmp$ret$39;
            // Inline function 'kotlin.js.asDynamic' call
            tmp$ret$39 = tmp9_arrayOf;
            tmp$ret$40 = tmp$ret$39;
            tmp$ret$41 = tmp$ret$40;

            var tmp_13 = tmp$ret$41;
            var tmp$ret$44;
            // Inline function 'kotlin.arrayOf' call
            var tmp$ret$43;
            // Inline function 'kotlin.js.unsafeCast' call
            var tmp$ret$42;
            // Inline function 'kotlin.js.asDynamic' call
            tmp$ret$42 = [];
            tmp$ret$43 = tmp$ret$42;
            tmp$ret$44 = tmp$ret$43;

            tmp17_local13 = tmp25_input.tt(tmp0_desc, 13, new ArrayListSerializer(SealedClassSerializer_init_$Create$('uk.co.nickthecoder.gamescupboard.common.GameObject', tmp_11, tmp_12, tmp_13, tmp$ret$44)), tmp17_local13);
            tmp3_bitMask0 = tmp3_bitMask0 | 8192;
            break;
          case 14:
            var tmp_14 = getKClass(GameObject);
            var tmp$ret$47;
            // Inline function 'kotlin.arrayOf' call
            var tmp10_arrayOf = [getKClass(Avatar), getKClass(FlippableImageObject), getKClass(GridImageObject), getKClass(ImageObject), getKClass(MultipleGridImageObject), getKClass(PieceAtPointCounter), getKClass(FlippableImageObject), getKClass(ImageObject), getKClass(TextObject)];
            var tmp$ret$46;
            // Inline function 'kotlin.js.unsafeCast' call
            var tmp$ret$45;
            // Inline function 'kotlin.js.asDynamic' call
            tmp$ret$45 = tmp10_arrayOf;
            tmp$ret$46 = tmp$ret$45;
            tmp$ret$47 = tmp$ret$46;

            var tmp_15 = tmp$ret$47;
            var tmp$ret$50;
            // Inline function 'kotlin.arrayOf' call
            var tmp11_arrayOf = [$serializer_getInstance_21(), $serializer_getInstance_25(), $serializer_getInstance_27(), $serializer_getInstance_28(), $serializer_getInstance_29(), $serializer_getInstance_30(), $serializer_getInstance_25(), $serializer_getInstance_28(), $serializer_getInstance_37()];
            var tmp$ret$49;
            // Inline function 'kotlin.js.unsafeCast' call
            var tmp$ret$48;
            // Inline function 'kotlin.js.asDynamic' call
            tmp$ret$48 = tmp11_arrayOf;
            tmp$ret$49 = tmp$ret$48;
            tmp$ret$50 = tmp$ret$49;

            var tmp_16 = tmp$ret$50;
            var tmp$ret$53;
            // Inline function 'kotlin.arrayOf' call
            var tmp$ret$52;
            // Inline function 'kotlin.js.unsafeCast' call
            var tmp$ret$51;
            // Inline function 'kotlin.js.asDynamic' call
            tmp$ret$51 = [];
            tmp$ret$52 = tmp$ret$51;
            tmp$ret$53 = tmp$ret$52;

            tmp18_local14 = tmp25_input.tt(tmp0_desc, 14, new ArrayListSerializer(SealedClassSerializer_init_$Create$('uk.co.nickthecoder.gamescupboard.common.GameObject', tmp_14, tmp_15, tmp_16, tmp$ret$53)), tmp18_local14);
            tmp3_bitMask0 = tmp3_bitMask0 | 16384;
            break;
          case 15:
            tmp19_local15 = tmp25_input.st(tmp0_desc, 15);
            tmp3_bitMask0 = tmp3_bitMask0 | 32768;
            break;
          case 16:
            tmp20_local16 = tmp25_input.tt(tmp0_desc, 16, new ArrayListSerializer($serializer_getInstance_22()), tmp20_local16);
            tmp3_bitMask0 = tmp3_bitMask0 | 65536;
            break;
          case 17:
            tmp21_local17 = tmp25_input.nt(tmp0_desc, 17);
            tmp3_bitMask0 = tmp3_bitMask0 | 131072;
            break;
          case 18:
            tmp22_local18 = tmp25_input.nt(tmp0_desc, 18);
            tmp3_bitMask0 = tmp3_bitMask0 | 262144;
            break;
          case 19:
            tmp23_local19 = tmp25_input.tt(tmp0_desc, 19, new ArrayListSerializer(StringSerializer_getInstance()), tmp23_local19);
            tmp3_bitMask0 = tmp3_bitMask0 | 524288;
            break;
          case 20:
            tmp24_local20 = tmp25_input.kt(tmp0_desc, 20);
            tmp3_bitMask0 = tmp3_bitMask0 | 1048576;
            break;
          default:
            throw UnknownFieldException_init_$Create$(tmp2_index);
        }
      }
    tmp25_input.jt(tmp0_desc);
    return GameInfo_init_$Create$(tmp3_bitMask0, tmp4_local0, tmp5_local1, tmp6_local2, tmp7_local3, tmp8_local4, tmp9_local5, tmp10_local6, tmp11_local7, tmp12_local8, tmp13_local9, tmp14_local10, tmp15_local11, tmp16_local12, tmp17_local13, tmp18_local14, tmp19_local15, tmp20_local16, tmp21_local17, tmp22_local18, tmp23_local19, tmp24_local20, null);
  };
  $serializer_2.prototype.z1i = function (encoder, value) {
    var tmp0_desc = this.y1i_1;
    var tmp1_output = encoder.it(tmp0_desc);
    tmp1_output.wu(tmp0_desc, 0, $serializer_getInstance_31(), value.a1j_1);
    tmp1_output.qu(tmp0_desc, 1, value.b1j_1);
    tmp1_output.wu(tmp0_desc, 2, new ArrayListSerializer($serializer_getInstance_31()), value.c1j_1);
    tmp1_output.vu(tmp0_desc, 3, value.d1j_1);
    tmp1_output.vu(tmp0_desc, 4, value.e1j_1);
    tmp1_output.vu(tmp0_desc, 5, value.f1j_1);
    tmp1_output.vu(tmp0_desc, 6, value.g1j_1);
    tmp1_output.wu(tmp0_desc, 7, new ArrayListSerializer($serializer_getInstance_26()), value.h1j_1);
    tmp1_output.wu(tmp0_desc, 8, new ArrayListSerializer($serializer_getInstance_34()), value.i1j_1);
    tmp1_output.wu(tmp0_desc, 9, new ArrayListSerializer($serializer_getInstance_36()), value.j1j_1);
    tmp1_output.wu(tmp0_desc, 10, new ArrayListSerializer($serializer_getInstance_23()), value.k1j_1);
    tmp1_output.wu(tmp0_desc, 11, new ArrayListSerializer($serializer_getInstance_24()), value.l1j_1);
    var tmp = getKClass(GameObject);
    var tmp$ret$2;
    // Inline function 'kotlin.arrayOf' call
    var tmp0_arrayOf = [getKClass(Avatar), getKClass(FlippableImageObject), getKClass(GridImageObject), getKClass(ImageObject), getKClass(MultipleGridImageObject), getKClass(PieceAtPointCounter), getKClass(FlippableImageObject), getKClass(ImageObject), getKClass(TextObject)];
    var tmp$ret$1;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$0;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$0 = tmp0_arrayOf;
    tmp$ret$1 = tmp$ret$0;
    tmp$ret$2 = tmp$ret$1;
    var tmp_0 = tmp$ret$2;
    var tmp$ret$5;
    // Inline function 'kotlin.arrayOf' call
    var tmp1_arrayOf = [$serializer_getInstance_21(), $serializer_getInstance_25(), $serializer_getInstance_27(), $serializer_getInstance_28(), $serializer_getInstance_29(), $serializer_getInstance_30(), $serializer_getInstance_25(), $serializer_getInstance_28(), $serializer_getInstance_37()];
    var tmp$ret$4;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$3;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$3 = tmp1_arrayOf;
    tmp$ret$4 = tmp$ret$3;
    tmp$ret$5 = tmp$ret$4;
    var tmp_1 = tmp$ret$5;
    var tmp$ret$8;
    // Inline function 'kotlin.arrayOf' call
    var tmp$ret$7;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$6;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$6 = [];
    tmp$ret$7 = tmp$ret$6;
    tmp$ret$8 = tmp$ret$7;
    tmp1_output.wu(tmp0_desc, 12, new ArrayListSerializer(SealedClassSerializer_init_$Create$('uk.co.nickthecoder.gamescupboard.common.GameObject', tmp, tmp_0, tmp_1, tmp$ret$8)), value.m1j_1);
    var tmp_2 = getKClass(GameObject);
    var tmp$ret$11;
    // Inline function 'kotlin.arrayOf' call
    var tmp2_arrayOf = [getKClass(Avatar), getKClass(FlippableImageObject), getKClass(GridImageObject), getKClass(ImageObject), getKClass(MultipleGridImageObject), getKClass(PieceAtPointCounter), getKClass(FlippableImageObject), getKClass(ImageObject), getKClass(TextObject)];
    var tmp$ret$10;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$9;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$9 = tmp2_arrayOf;
    tmp$ret$10 = tmp$ret$9;
    tmp$ret$11 = tmp$ret$10;
    var tmp_3 = tmp$ret$11;
    var tmp$ret$14;
    // Inline function 'kotlin.arrayOf' call
    var tmp3_arrayOf = [$serializer_getInstance_21(), $serializer_getInstance_25(), $serializer_getInstance_27(), $serializer_getInstance_28(), $serializer_getInstance_29(), $serializer_getInstance_30(), $serializer_getInstance_25(), $serializer_getInstance_28(), $serializer_getInstance_37()];
    var tmp$ret$13;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$12;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$12 = tmp3_arrayOf;
    tmp$ret$13 = tmp$ret$12;
    tmp$ret$14 = tmp$ret$13;
    var tmp_4 = tmp$ret$14;
    var tmp$ret$17;
    // Inline function 'kotlin.arrayOf' call
    var tmp$ret$16;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$15;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$15 = [];
    tmp$ret$16 = tmp$ret$15;
    tmp$ret$17 = tmp$ret$16;
    tmp1_output.wu(tmp0_desc, 13, new ArrayListSerializer(SealedClassSerializer_init_$Create$('uk.co.nickthecoder.gamescupboard.common.GameObject', tmp_2, tmp_3, tmp_4, tmp$ret$17)), value.n1j_1);
    var tmp_5 = getKClass(GameObject);
    var tmp$ret$20;
    // Inline function 'kotlin.arrayOf' call
    var tmp4_arrayOf = [getKClass(Avatar), getKClass(FlippableImageObject), getKClass(GridImageObject), getKClass(ImageObject), getKClass(MultipleGridImageObject), getKClass(PieceAtPointCounter), getKClass(FlippableImageObject), getKClass(ImageObject), getKClass(TextObject)];
    var tmp$ret$19;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$18;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$18 = tmp4_arrayOf;
    tmp$ret$19 = tmp$ret$18;
    tmp$ret$20 = tmp$ret$19;
    var tmp_6 = tmp$ret$20;
    var tmp$ret$23;
    // Inline function 'kotlin.arrayOf' call
    var tmp5_arrayOf = [$serializer_getInstance_21(), $serializer_getInstance_25(), $serializer_getInstance_27(), $serializer_getInstance_28(), $serializer_getInstance_29(), $serializer_getInstance_30(), $serializer_getInstance_25(), $serializer_getInstance_28(), $serializer_getInstance_37()];
    var tmp$ret$22;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$21;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$21 = tmp5_arrayOf;
    tmp$ret$22 = tmp$ret$21;
    tmp$ret$23 = tmp$ret$22;
    var tmp_7 = tmp$ret$23;
    var tmp$ret$26;
    // Inline function 'kotlin.arrayOf' call
    var tmp$ret$25;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$24;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$24 = [];
    tmp$ret$25 = tmp$ret$24;
    tmp$ret$26 = tmp$ret$25;
    tmp1_output.wu(tmp0_desc, 14, new ArrayListSerializer(SealedClassSerializer_init_$Create$('uk.co.nickthecoder.gamescupboard.common.GameObject', tmp_5, tmp_6, tmp_7, tmp$ret$26)), value.o1j_1);
    tmp1_output.vu(tmp0_desc, 15, value.p1j_1);
    tmp1_output.wu(tmp0_desc, 16, new ArrayListSerializer($serializer_getInstance_22()), value.q1j_1);
    tmp1_output.qu(tmp0_desc, 17, value.r1j_1);
    tmp1_output.qu(tmp0_desc, 18, value.s1j_1);
    tmp1_output.wu(tmp0_desc, 19, new ArrayListSerializer(StringSerializer_getInstance()), value.t1j_1);
    tmp1_output.nu(tmp0_desc, 20, value.u1j_1);
    tmp1_output.jt(tmp0_desc);
  };
  $serializer_2.prototype.cq = function (encoder, value) {
    return this.z1i(encoder, value instanceof GameInfo ? value : THROW_CCE());
  };
  $serializer_2.$metadata$ = objectMeta('$serializer', [GeneratedSerializer]);
  var $serializer_instance_2;
  function $serializer_getInstance_2() {
    if ($serializer_instance_2 == null)
      new $serializer_2();
    return $serializer_instance_2;
  }
  function GameInfo_init_$Init$(seen1, p, seatCount, otherPlayers, gameTypeLabel, variationLabel, gameLabel, bgColor, grids, specialAreas, specialPoints, commands, commandPrototypes, backgroundObjects, playingObjects, foregroundObjects, rules, buttons, mirrorX, mirrorY, playerColors, scoreSheetHasBidColumn, serializationConstructorMarker, $this) {
    if (!(2097151 === (2097151 & seen1))) {
      throwMissingFieldException(seen1, 2097151, $serializer_getInstance_2().y1i_1);
    }
    Message_init_$Init$(seen1, serializationConstructorMarker, $this);
    $this.a1j_1 = p;
    $this.b1j_1 = seatCount;
    $this.c1j_1 = otherPlayers;
    $this.d1j_1 = gameTypeLabel;
    $this.e1j_1 = variationLabel;
    $this.f1j_1 = gameLabel;
    $this.g1j_1 = bgColor;
    $this.h1j_1 = grids;
    $this.i1j_1 = specialAreas;
    $this.j1j_1 = specialPoints;
    $this.k1j_1 = commands;
    $this.l1j_1 = commandPrototypes;
    $this.m1j_1 = backgroundObjects;
    $this.n1j_1 = playingObjects;
    $this.o1j_1 = foregroundObjects;
    $this.p1j_1 = rules;
    $this.q1j_1 = buttons;
    $this.r1j_1 = mirrorX;
    $this.s1j_1 = mirrorY;
    $this.t1j_1 = playerColors;
    $this.u1j_1 = scoreSheetHasBidColumn;
    return $this;
  }
  function GameInfo_init_$Create$(seen1, p, seatCount, otherPlayers, gameTypeLabel, variationLabel, gameLabel, bgColor, grids, specialAreas, specialPoints, commands, commandPrototypes, backgroundObjects, playingObjects, foregroundObjects, rules, buttons, mirrorX, mirrorY, playerColors, scoreSheetHasBidColumn, serializationConstructorMarker) {
    return GameInfo_init_$Init$(seen1, p, seatCount, otherPlayers, gameTypeLabel, variationLabel, gameLabel, bgColor, grids, specialAreas, specialPoints, commands, commandPrototypes, backgroundObjects, playingObjects, foregroundObjects, rules, buttons, mirrorX, mirrorY, playerColors, scoreSheetHasBidColumn, serializationConstructorMarker, Object.create(GameInfo.prototype));
  }
  function GameInfo(p, seatCount, otherPlayers, gameTypeLabel, variationLabel, gameLabel, bgColor, grids, specialAreas, specialPoints, commands, commandPrototypes, backgroundObjects, playingObjects, foregroundObjects, rules, buttons, mirrorX, mirrorY, playerColors, scoreSheetHasBidColumn) {
    Companion_getInstance_4();
    Message.call(this);
    this.a1j_1 = p;
    this.b1j_1 = seatCount;
    this.c1j_1 = otherPlayers;
    this.d1j_1 = gameTypeLabel;
    this.e1j_1 = variationLabel;
    this.f1j_1 = gameLabel;
    this.g1j_1 = bgColor;
    this.h1j_1 = grids;
    this.i1j_1 = specialAreas;
    this.j1j_1 = specialPoints;
    this.k1j_1 = commands;
    this.l1j_1 = commandPrototypes;
    this.m1j_1 = backgroundObjects;
    this.n1j_1 = playingObjects;
    this.o1j_1 = foregroundObjects;
    this.p1j_1 = rules;
    this.q1j_1 = buttons;
    this.r1j_1 = mirrorX;
    this.s1j_1 = mirrorY;
    this.t1j_1 = playerColors;
    this.u1j_1 = scoreSheetHasBidColumn;
  }
  GameInfo.$metadata$ = classMeta('GameInfo', undefined, undefined, {0: $serializer_getInstance_2}, undefined, Message.prototype);
  function Companion_4() {
    Companion_instance_4 = this;
  }
  Companion_4.$metadata$ = objectMeta('Companion');
  var Companion_instance_4;
  function Companion_getInstance_5() {
    if (Companion_instance_4 == null)
      new Companion_4();
    return Companion_instance_4;
  }
  function $serializer_3() {
    $serializer_instance_3 = this;
    var tmp0_serialDesc = new PluginGeneratedSerialDescriptor('ResetGame', this, 2);
    tmp0_serialDesc.g10('removeIds', false);
    tmp0_serialDesc.g10('gameObjects', false);
    this.v1j_1 = tmp0_serialDesc;
  }
  $serializer_3.prototype.bq = function () {
    return this.v1j_1;
  };
  $serializer_3.prototype.x10 = function () {
    var tmp$ret$11;
    // Inline function 'kotlin.arrayOf' call
    var tmp = new ArrayListSerializer(IntSerializer_getInstance());
    var tmp_0 = getKClass(GameObject);
    var tmp$ret$2;
    // Inline function 'kotlin.arrayOf' call
    var tmp0_arrayOf = [getKClass(Avatar), getKClass(FlippableImageObject), getKClass(GridImageObject), getKClass(ImageObject), getKClass(MultipleGridImageObject), getKClass(PieceAtPointCounter), getKClass(FlippableImageObject), getKClass(ImageObject), getKClass(TextObject)];
    var tmp$ret$1;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$0;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$0 = tmp0_arrayOf;
    tmp$ret$1 = tmp$ret$0;
    tmp$ret$2 = tmp$ret$1;
    var tmp_1 = tmp$ret$2;
    var tmp$ret$5;
    // Inline function 'kotlin.arrayOf' call
    var tmp1_arrayOf = [$serializer_getInstance_21(), $serializer_getInstance_25(), $serializer_getInstance_27(), $serializer_getInstance_28(), $serializer_getInstance_29(), $serializer_getInstance_30(), $serializer_getInstance_25(), $serializer_getInstance_28(), $serializer_getInstance_37()];
    var tmp$ret$4;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$3;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$3 = tmp1_arrayOf;
    tmp$ret$4 = tmp$ret$3;
    tmp$ret$5 = tmp$ret$4;
    var tmp_2 = tmp$ret$5;
    var tmp$ret$8;
    // Inline function 'kotlin.arrayOf' call
    var tmp$ret$7;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$6;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$6 = [];
    tmp$ret$7 = tmp$ret$6;
    tmp$ret$8 = tmp$ret$7;
    var tmp2_arrayOf = [tmp, new ArrayListSerializer(SealedClassSerializer_init_$Create$('uk.co.nickthecoder.gamescupboard.common.GameObject', tmp_0, tmp_1, tmp_2, tmp$ret$8))];
    var tmp$ret$10;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$9;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$9 = tmp2_arrayOf;
    tmp$ret$10 = tmp$ret$9;
    tmp$ret$11 = tmp$ret$10;
    return tmp$ret$11;
  };
  $serializer_3.prototype.dq = function (decoder) {
    var tmp0_desc = this.v1j_1;
    var tmp1_flag = true;
    var tmp2_index = 0;
    var tmp3_bitMask0 = 0;
    var tmp4_local0 = null;
    var tmp5_local1 = null;
    var tmp6_input = decoder.it(tmp0_desc);
    if (tmp6_input.wt()) {
      tmp4_local0 = tmp6_input.tt(tmp0_desc, 0, new ArrayListSerializer(IntSerializer_getInstance()), tmp4_local0);
      tmp3_bitMask0 = tmp3_bitMask0 | 1;
      var tmp = getKClass(GameObject);
      var tmp$ret$2;
      // Inline function 'kotlin.arrayOf' call
      var tmp0_arrayOf = [getKClass(Avatar), getKClass(FlippableImageObject), getKClass(GridImageObject), getKClass(ImageObject), getKClass(MultipleGridImageObject), getKClass(PieceAtPointCounter), getKClass(FlippableImageObject), getKClass(ImageObject), getKClass(TextObject)];
      var tmp$ret$1;
      // Inline function 'kotlin.js.unsafeCast' call
      var tmp$ret$0;
      // Inline function 'kotlin.js.asDynamic' call
      tmp$ret$0 = tmp0_arrayOf;
      tmp$ret$1 = tmp$ret$0;
      tmp$ret$2 = tmp$ret$1;
      var tmp_0 = tmp$ret$2;
      var tmp$ret$5;
      // Inline function 'kotlin.arrayOf' call
      var tmp1_arrayOf = [$serializer_getInstance_21(), $serializer_getInstance_25(), $serializer_getInstance_27(), $serializer_getInstance_28(), $serializer_getInstance_29(), $serializer_getInstance_30(), $serializer_getInstance_25(), $serializer_getInstance_28(), $serializer_getInstance_37()];
      var tmp$ret$4;
      // Inline function 'kotlin.js.unsafeCast' call
      var tmp$ret$3;
      // Inline function 'kotlin.js.asDynamic' call
      tmp$ret$3 = tmp1_arrayOf;
      tmp$ret$4 = tmp$ret$3;
      tmp$ret$5 = tmp$ret$4;
      var tmp_1 = tmp$ret$5;
      var tmp$ret$8;
      // Inline function 'kotlin.arrayOf' call
      var tmp$ret$7;
      // Inline function 'kotlin.js.unsafeCast' call
      var tmp$ret$6;
      // Inline function 'kotlin.js.asDynamic' call
      tmp$ret$6 = [];
      tmp$ret$7 = tmp$ret$6;
      tmp$ret$8 = tmp$ret$7;
      tmp5_local1 = tmp6_input.tt(tmp0_desc, 1, new ArrayListSerializer(SealedClassSerializer_init_$Create$('uk.co.nickthecoder.gamescupboard.common.GameObject', tmp, tmp_0, tmp_1, tmp$ret$8)), tmp5_local1);
      tmp3_bitMask0 = tmp3_bitMask0 | 2;
    } else
      while (tmp1_flag) {
        tmp2_index = tmp6_input.xt(tmp0_desc);
        switch (tmp2_index) {
          case -1:
            tmp1_flag = false;
            break;
          case 0:
            tmp4_local0 = tmp6_input.tt(tmp0_desc, 0, new ArrayListSerializer(IntSerializer_getInstance()), tmp4_local0);
            tmp3_bitMask0 = tmp3_bitMask0 | 1;
            break;
          case 1:
            var tmp_2 = getKClass(GameObject);
            var tmp$ret$11;
            // Inline function 'kotlin.arrayOf' call
            var tmp2_arrayOf = [getKClass(Avatar), getKClass(FlippableImageObject), getKClass(GridImageObject), getKClass(ImageObject), getKClass(MultipleGridImageObject), getKClass(PieceAtPointCounter), getKClass(FlippableImageObject), getKClass(ImageObject), getKClass(TextObject)];
            var tmp$ret$10;
            // Inline function 'kotlin.js.unsafeCast' call
            var tmp$ret$9;
            // Inline function 'kotlin.js.asDynamic' call
            tmp$ret$9 = tmp2_arrayOf;
            tmp$ret$10 = tmp$ret$9;
            tmp$ret$11 = tmp$ret$10;

            var tmp_3 = tmp$ret$11;
            var tmp$ret$14;
            // Inline function 'kotlin.arrayOf' call
            var tmp3_arrayOf = [$serializer_getInstance_21(), $serializer_getInstance_25(), $serializer_getInstance_27(), $serializer_getInstance_28(), $serializer_getInstance_29(), $serializer_getInstance_30(), $serializer_getInstance_25(), $serializer_getInstance_28(), $serializer_getInstance_37()];
            var tmp$ret$13;
            // Inline function 'kotlin.js.unsafeCast' call
            var tmp$ret$12;
            // Inline function 'kotlin.js.asDynamic' call
            tmp$ret$12 = tmp3_arrayOf;
            tmp$ret$13 = tmp$ret$12;
            tmp$ret$14 = tmp$ret$13;

            var tmp_4 = tmp$ret$14;
            var tmp$ret$17;
            // Inline function 'kotlin.arrayOf' call
            var tmp$ret$16;
            // Inline function 'kotlin.js.unsafeCast' call
            var tmp$ret$15;
            // Inline function 'kotlin.js.asDynamic' call
            tmp$ret$15 = [];
            tmp$ret$16 = tmp$ret$15;
            tmp$ret$17 = tmp$ret$16;

            tmp5_local1 = tmp6_input.tt(tmp0_desc, 1, new ArrayListSerializer(SealedClassSerializer_init_$Create$('uk.co.nickthecoder.gamescupboard.common.GameObject', tmp_2, tmp_3, tmp_4, tmp$ret$17)), tmp5_local1);
            tmp3_bitMask0 = tmp3_bitMask0 | 2;
            break;
          default:
            throw UnknownFieldException_init_$Create$(tmp2_index);
        }
      }
    tmp6_input.jt(tmp0_desc);
    return ResetGame_init_$Create$(tmp3_bitMask0, tmp4_local0, tmp5_local1, null);
  };
  $serializer_3.prototype.w1j = function (encoder, value) {
    var tmp0_desc = this.v1j_1;
    var tmp1_output = encoder.it(tmp0_desc);
    tmp1_output.wu(tmp0_desc, 0, new ArrayListSerializer(IntSerializer_getInstance()), value.x1j_1);
    var tmp = getKClass(GameObject);
    var tmp$ret$2;
    // Inline function 'kotlin.arrayOf' call
    var tmp0_arrayOf = [getKClass(Avatar), getKClass(FlippableImageObject), getKClass(GridImageObject), getKClass(ImageObject), getKClass(MultipleGridImageObject), getKClass(PieceAtPointCounter), getKClass(FlippableImageObject), getKClass(ImageObject), getKClass(TextObject)];
    var tmp$ret$1;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$0;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$0 = tmp0_arrayOf;
    tmp$ret$1 = tmp$ret$0;
    tmp$ret$2 = tmp$ret$1;
    var tmp_0 = tmp$ret$2;
    var tmp$ret$5;
    // Inline function 'kotlin.arrayOf' call
    var tmp1_arrayOf = [$serializer_getInstance_21(), $serializer_getInstance_25(), $serializer_getInstance_27(), $serializer_getInstance_28(), $serializer_getInstance_29(), $serializer_getInstance_30(), $serializer_getInstance_25(), $serializer_getInstance_28(), $serializer_getInstance_37()];
    var tmp$ret$4;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$3;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$3 = tmp1_arrayOf;
    tmp$ret$4 = tmp$ret$3;
    tmp$ret$5 = tmp$ret$4;
    var tmp_1 = tmp$ret$5;
    var tmp$ret$8;
    // Inline function 'kotlin.arrayOf' call
    var tmp$ret$7;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$6;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$6 = [];
    tmp$ret$7 = tmp$ret$6;
    tmp$ret$8 = tmp$ret$7;
    tmp1_output.wu(tmp0_desc, 1, new ArrayListSerializer(SealedClassSerializer_init_$Create$('uk.co.nickthecoder.gamescupboard.common.GameObject', tmp, tmp_0, tmp_1, tmp$ret$8)), value.y1j_1);
    tmp1_output.jt(tmp0_desc);
  };
  $serializer_3.prototype.cq = function (encoder, value) {
    return this.w1j(encoder, value instanceof ResetGame ? value : THROW_CCE());
  };
  $serializer_3.$metadata$ = objectMeta('$serializer', [GeneratedSerializer]);
  var $serializer_instance_3;
  function $serializer_getInstance_3() {
    if ($serializer_instance_3 == null)
      new $serializer_3();
    return $serializer_instance_3;
  }
  function ResetGame_init_$Init$(seen1, removeIds, gameObjects, serializationConstructorMarker, $this) {
    if (!(3 === (3 & seen1))) {
      throwMissingFieldException(seen1, 3, $serializer_getInstance_3().v1j_1);
    }
    Message_init_$Init$(seen1, serializationConstructorMarker, $this);
    $this.x1j_1 = removeIds;
    $this.y1j_1 = gameObjects;
    return $this;
  }
  function ResetGame_init_$Create$(seen1, removeIds, gameObjects, serializationConstructorMarker) {
    return ResetGame_init_$Init$(seen1, removeIds, gameObjects, serializationConstructorMarker, Object.create(ResetGame.prototype));
  }
  function ResetGame(removeIds, gameObjects) {
    Companion_getInstance_5();
    Message.call(this);
    this.x1j_1 = removeIds;
    this.y1j_1 = gameObjects;
  }
  ResetGame.prototype.toString = function () {
    return 'ResetGame(removeIds=' + this.x1j_1 + ', gameObjects=' + this.y1j_1 + ')';
  };
  ResetGame.prototype.hashCode = function () {
    var result = hashCode(this.x1j_1);
    result = imul(result, 31) + hashCode(this.y1j_1) | 0;
    return result;
  };
  ResetGame.prototype.equals = function (other) {
    if (this === other)
      return true;
    if (!(other instanceof ResetGame))
      return false;
    var tmp0_other_with_cast = other instanceof ResetGame ? other : THROW_CCE();
    if (!equals(this.x1j_1, tmp0_other_with_cast.x1j_1))
      return false;
    if (!equals(this.y1j_1, tmp0_other_with_cast.y1j_1))
      return false;
    return true;
  };
  ResetGame.$metadata$ = classMeta('ResetGame', undefined, undefined, {0: $serializer_getInstance_3}, undefined, Message.prototype);
  function Companion_5() {
    Companion_instance_5 = this;
  }
  Companion_5.$metadata$ = objectMeta('Companion');
  var Companion_instance_5;
  function Companion_getInstance_6() {
    if (Companion_instance_5 == null)
      new Companion_5();
    return Companion_instance_5;
  }
  function $serializer_4() {
    $serializer_instance_4 = this;
    var tmp0_serialDesc = new PluginGeneratedSerialDescriptor('PlayerJoined', this, 1);
    tmp0_serialDesc.g10('p', false);
    this.z1j_1 = tmp0_serialDesc;
  }
  $serializer_4.prototype.bq = function () {
    return this.z1j_1;
  };
  $serializer_4.prototype.x10 = function () {
    var tmp$ret$2;
    // Inline function 'kotlin.arrayOf' call
    var tmp0_arrayOf = [$serializer_getInstance_31()];
    var tmp$ret$1;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$0;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$0 = tmp0_arrayOf;
    tmp$ret$1 = tmp$ret$0;
    tmp$ret$2 = tmp$ret$1;
    return tmp$ret$2;
  };
  $serializer_4.prototype.dq = function (decoder) {
    var tmp0_desc = this.z1j_1;
    var tmp1_flag = true;
    var tmp2_index = 0;
    var tmp3_bitMask0 = 0;
    var tmp4_local0 = null;
    var tmp5_input = decoder.it(tmp0_desc);
    if (tmp5_input.wt()) {
      tmp4_local0 = tmp5_input.tt(tmp0_desc, 0, $serializer_getInstance_31(), tmp4_local0);
      tmp3_bitMask0 = tmp3_bitMask0 | 1;
    } else
      while (tmp1_flag) {
        tmp2_index = tmp5_input.xt(tmp0_desc);
        switch (tmp2_index) {
          case -1:
            tmp1_flag = false;
            break;
          case 0:
            tmp4_local0 = tmp5_input.tt(tmp0_desc, 0, $serializer_getInstance_31(), tmp4_local0);
            tmp3_bitMask0 = tmp3_bitMask0 | 1;
            break;
          default:
            throw UnknownFieldException_init_$Create$(tmp2_index);
        }
      }
    tmp5_input.jt(tmp0_desc);
    return PlayerJoined_init_$Create$(tmp3_bitMask0, tmp4_local0, null);
  };
  $serializer_4.prototype.a1k = function (encoder, value) {
    var tmp0_desc = this.z1j_1;
    var tmp1_output = encoder.it(tmp0_desc);
    tmp1_output.wu(tmp0_desc, 0, $serializer_getInstance_31(), value.b1k_1);
    tmp1_output.jt(tmp0_desc);
  };
  $serializer_4.prototype.cq = function (encoder, value) {
    return this.a1k(encoder, value instanceof PlayerJoined ? value : THROW_CCE());
  };
  $serializer_4.$metadata$ = objectMeta('$serializer', [GeneratedSerializer]);
  var $serializer_instance_4;
  function $serializer_getInstance_4() {
    if ($serializer_instance_4 == null)
      new $serializer_4();
    return $serializer_instance_4;
  }
  function PlayerJoined_init_$Init$(seen1, p, serializationConstructorMarker, $this) {
    if (!(1 === (1 & seen1))) {
      throwMissingFieldException(seen1, 1, $serializer_getInstance_4().z1j_1);
    }
    Message_init_$Init$(seen1, serializationConstructorMarker, $this);
    $this.b1k_1 = p;
    return $this;
  }
  function PlayerJoined_init_$Create$(seen1, p, serializationConstructorMarker) {
    return PlayerJoined_init_$Init$(seen1, p, serializationConstructorMarker, Object.create(PlayerJoined.prototype));
  }
  function PlayerJoined(p) {
    Companion_getInstance_6();
    Message.call(this);
    this.b1k_1 = p;
  }
  PlayerJoined.prototype.toString = function () {
    return 'PlayerJoined(p=' + this.b1k_1 + ')';
  };
  PlayerJoined.prototype.hashCode = function () {
    return hashCode(this.b1k_1);
  };
  PlayerJoined.prototype.equals = function (other) {
    if (this === other)
      return true;
    if (!(other instanceof PlayerJoined))
      return false;
    var tmp0_other_with_cast = other instanceof PlayerJoined ? other : THROW_CCE();
    if (!equals(this.b1k_1, tmp0_other_with_cast.b1k_1))
      return false;
    return true;
  };
  PlayerJoined.$metadata$ = classMeta('PlayerJoined', undefined, undefined, {0: $serializer_getInstance_4}, undefined, Message.prototype);
  function Companion_6() {
    Companion_instance_6 = this;
  }
  Companion_6.$metadata$ = objectMeta('Companion');
  var Companion_instance_6;
  function Companion_getInstance_7() {
    if (Companion_instance_6 == null)
      new Companion_6();
    return Companion_instance_6;
  }
  function $serializer_5() {
    $serializer_instance_5 = this;
    var tmp0_serialDesc = new PluginGeneratedSerialDescriptor('PlayerLeft', this, 1);
    tmp0_serialDesc.g10('id', false);
    this.c1k_1 = tmp0_serialDesc;
  }
  $serializer_5.prototype.bq = function () {
    return this.c1k_1;
  };
  $serializer_5.prototype.x10 = function () {
    var tmp$ret$2;
    // Inline function 'kotlin.arrayOf' call
    var tmp0_arrayOf = [IntSerializer_getInstance()];
    var tmp$ret$1;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$0;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$0 = tmp0_arrayOf;
    tmp$ret$1 = tmp$ret$0;
    tmp$ret$2 = tmp$ret$1;
    return tmp$ret$2;
  };
  $serializer_5.prototype.dq = function (decoder) {
    var tmp0_desc = this.c1k_1;
    var tmp1_flag = true;
    var tmp2_index = 0;
    var tmp3_bitMask0 = 0;
    var tmp4_local0 = 0;
    var tmp5_input = decoder.it(tmp0_desc);
    if (tmp5_input.wt()) {
      tmp4_local0 = tmp5_input.nt(tmp0_desc, 0);
      tmp3_bitMask0 = tmp3_bitMask0 | 1;
    } else
      while (tmp1_flag) {
        tmp2_index = tmp5_input.xt(tmp0_desc);
        switch (tmp2_index) {
          case -1:
            tmp1_flag = false;
            break;
          case 0:
            tmp4_local0 = tmp5_input.nt(tmp0_desc, 0);
            tmp3_bitMask0 = tmp3_bitMask0 | 1;
            break;
          default:
            throw UnknownFieldException_init_$Create$(tmp2_index);
        }
      }
    tmp5_input.jt(tmp0_desc);
    return PlayerLeft_init_$Create$(tmp3_bitMask0, tmp4_local0, null);
  };
  $serializer_5.prototype.d1k = function (encoder, value) {
    var tmp0_desc = this.c1k_1;
    var tmp1_output = encoder.it(tmp0_desc);
    tmp1_output.qu(tmp0_desc, 0, value.e1k_1);
    tmp1_output.jt(tmp0_desc);
  };
  $serializer_5.prototype.cq = function (encoder, value) {
    return this.d1k(encoder, value instanceof PlayerLeft ? value : THROW_CCE());
  };
  $serializer_5.$metadata$ = objectMeta('$serializer', [GeneratedSerializer]);
  var $serializer_instance_5;
  function $serializer_getInstance_5() {
    if ($serializer_instance_5 == null)
      new $serializer_5();
    return $serializer_instance_5;
  }
  function PlayerLeft_init_$Init$(seen1, id, serializationConstructorMarker, $this) {
    if (!(1 === (1 & seen1))) {
      throwMissingFieldException(seen1, 1, $serializer_getInstance_5().c1k_1);
    }
    Message_init_$Init$(seen1, serializationConstructorMarker, $this);
    $this.e1k_1 = id;
    return $this;
  }
  function PlayerLeft_init_$Create$(seen1, id, serializationConstructorMarker) {
    return PlayerLeft_init_$Init$(seen1, id, serializationConstructorMarker, Object.create(PlayerLeft.prototype));
  }
  function PlayerLeft(id) {
    Companion_getInstance_7();
    Message.call(this);
    this.e1k_1 = id;
  }
  PlayerLeft.prototype.toString = function () {
    return 'PlayerLeft(id=' + this.e1k_1 + ')';
  };
  PlayerLeft.prototype.hashCode = function () {
    return this.e1k_1;
  };
  PlayerLeft.prototype.equals = function (other) {
    if (this === other)
      return true;
    if (!(other instanceof PlayerLeft))
      return false;
    var tmp0_other_with_cast = other instanceof PlayerLeft ? other : THROW_CCE();
    if (!(this.e1k_1 === tmp0_other_with_cast.e1k_1))
      return false;
    return true;
  };
  PlayerLeft.$metadata$ = classMeta('PlayerLeft', undefined, undefined, {0: $serializer_getInstance_5}, undefined, Message.prototype);
  function Companion_7() {
    Companion_instance_7 = this;
  }
  Companion_7.$metadata$ = objectMeta('Companion');
  var Companion_instance_7;
  function Companion_getInstance_8() {
    if (Companion_instance_7 == null)
      new Companion_7();
    return Companion_instance_7;
  }
  function $serializer_6() {
    $serializer_instance_6 = this;
    var tmp0_serialDesc = new PluginGeneratedSerialDescriptor('RenamePlayer', this, 2);
    tmp0_serialDesc.g10('id', false);
    tmp0_serialDesc.g10('name', false);
    this.f1k_1 = tmp0_serialDesc;
  }
  $serializer_6.prototype.bq = function () {
    return this.f1k_1;
  };
  $serializer_6.prototype.x10 = function () {
    var tmp$ret$2;
    // Inline function 'kotlin.arrayOf' call
    var tmp0_arrayOf = [IntSerializer_getInstance(), StringSerializer_getInstance()];
    var tmp$ret$1;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$0;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$0 = tmp0_arrayOf;
    tmp$ret$1 = tmp$ret$0;
    tmp$ret$2 = tmp$ret$1;
    return tmp$ret$2;
  };
  $serializer_6.prototype.dq = function (decoder) {
    var tmp0_desc = this.f1k_1;
    var tmp1_flag = true;
    var tmp2_index = 0;
    var tmp3_bitMask0 = 0;
    var tmp4_local0 = 0;
    var tmp5_local1 = null;
    var tmp6_input = decoder.it(tmp0_desc);
    if (tmp6_input.wt()) {
      tmp4_local0 = tmp6_input.nt(tmp0_desc, 0);
      tmp3_bitMask0 = tmp3_bitMask0 | 1;
      tmp5_local1 = tmp6_input.st(tmp0_desc, 1);
      tmp3_bitMask0 = tmp3_bitMask0 | 2;
    } else
      while (tmp1_flag) {
        tmp2_index = tmp6_input.xt(tmp0_desc);
        switch (tmp2_index) {
          case -1:
            tmp1_flag = false;
            break;
          case 0:
            tmp4_local0 = tmp6_input.nt(tmp0_desc, 0);
            tmp3_bitMask0 = tmp3_bitMask0 | 1;
            break;
          case 1:
            tmp5_local1 = tmp6_input.st(tmp0_desc, 1);
            tmp3_bitMask0 = tmp3_bitMask0 | 2;
            break;
          default:
            throw UnknownFieldException_init_$Create$(tmp2_index);
        }
      }
    tmp6_input.jt(tmp0_desc);
    return RenamePlayer_init_$Create$(tmp3_bitMask0, tmp4_local0, tmp5_local1, null);
  };
  $serializer_6.prototype.g1k = function (encoder, value) {
    var tmp0_desc = this.f1k_1;
    var tmp1_output = encoder.it(tmp0_desc);
    tmp1_output.qu(tmp0_desc, 0, value.h1k_1);
    tmp1_output.vu(tmp0_desc, 1, value.i1k_1);
    tmp1_output.jt(tmp0_desc);
  };
  $serializer_6.prototype.cq = function (encoder, value) {
    return this.g1k(encoder, value instanceof RenamePlayer ? value : THROW_CCE());
  };
  $serializer_6.$metadata$ = objectMeta('$serializer', [GeneratedSerializer]);
  var $serializer_instance_6;
  function $serializer_getInstance_6() {
    if ($serializer_instance_6 == null)
      new $serializer_6();
    return $serializer_instance_6;
  }
  function RenamePlayer_init_$Init$(seen1, id, name, serializationConstructorMarker, $this) {
    if (!(3 === (3 & seen1))) {
      throwMissingFieldException(seen1, 3, $serializer_getInstance_6().f1k_1);
    }
    Message_init_$Init$(seen1, serializationConstructorMarker, $this);
    $this.h1k_1 = id;
    $this.i1k_1 = name;
    return $this;
  }
  function RenamePlayer_init_$Create$(seen1, id, name, serializationConstructorMarker) {
    return RenamePlayer_init_$Init$(seen1, id, name, serializationConstructorMarker, Object.create(RenamePlayer.prototype));
  }
  function RenamePlayer(id, name) {
    Companion_getInstance_8();
    Message.call(this);
    this.h1k_1 = id;
    this.i1k_1 = name;
  }
  RenamePlayer.prototype.toString = function () {
    return 'RenamePlayer(id=' + this.h1k_1 + ', name=' + this.i1k_1 + ')';
  };
  RenamePlayer.prototype.hashCode = function () {
    var result = this.h1k_1;
    result = imul(result, 31) + getStringHashCode(this.i1k_1) | 0;
    return result;
  };
  RenamePlayer.prototype.equals = function (other) {
    if (this === other)
      return true;
    if (!(other instanceof RenamePlayer))
      return false;
    var tmp0_other_with_cast = other instanceof RenamePlayer ? other : THROW_CCE();
    if (!(this.h1k_1 === tmp0_other_with_cast.h1k_1))
      return false;
    if (!(this.i1k_1 === tmp0_other_with_cast.i1k_1))
      return false;
    return true;
  };
  RenamePlayer.$metadata$ = classMeta('RenamePlayer', undefined, undefined, {0: $serializer_getInstance_6}, undefined, Message.prototype);
  function Companion_8() {
    Companion_instance_8 = this;
  }
  Companion_8.$metadata$ = objectMeta('Companion');
  var Companion_instance_8;
  function Companion_getInstance_9() {
    if (Companion_instance_8 == null)
      new Companion_8();
    return Companion_instance_8;
  }
  function $serializer_7() {
    $serializer_instance_7 = this;
    var tmp0_serialDesc = new PluginGeneratedSerialDescriptor('AddObjects', this, 1);
    tmp0_serialDesc.g10('gameObjects', false);
    this.j1k_1 = tmp0_serialDesc;
  }
  $serializer_7.prototype.bq = function () {
    return this.j1k_1;
  };
  $serializer_7.prototype.x10 = function () {
    var tmp$ret$11;
    // Inline function 'kotlin.arrayOf' call
    var tmp = getKClass(GameObject);
    var tmp$ret$2;
    // Inline function 'kotlin.arrayOf' call
    var tmp0_arrayOf = [getKClass(Avatar), getKClass(FlippableImageObject), getKClass(GridImageObject), getKClass(ImageObject), getKClass(MultipleGridImageObject), getKClass(PieceAtPointCounter), getKClass(FlippableImageObject), getKClass(ImageObject), getKClass(TextObject)];
    var tmp$ret$1;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$0;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$0 = tmp0_arrayOf;
    tmp$ret$1 = tmp$ret$0;
    tmp$ret$2 = tmp$ret$1;
    var tmp_0 = tmp$ret$2;
    var tmp$ret$5;
    // Inline function 'kotlin.arrayOf' call
    var tmp1_arrayOf = [$serializer_getInstance_21(), $serializer_getInstance_25(), $serializer_getInstance_27(), $serializer_getInstance_28(), $serializer_getInstance_29(), $serializer_getInstance_30(), $serializer_getInstance_25(), $serializer_getInstance_28(), $serializer_getInstance_37()];
    var tmp$ret$4;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$3;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$3 = tmp1_arrayOf;
    tmp$ret$4 = tmp$ret$3;
    tmp$ret$5 = tmp$ret$4;
    var tmp_1 = tmp$ret$5;
    var tmp$ret$8;
    // Inline function 'kotlin.arrayOf' call
    var tmp$ret$7;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$6;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$6 = [];
    tmp$ret$7 = tmp$ret$6;
    tmp$ret$8 = tmp$ret$7;
    var tmp2_arrayOf = [new ArrayListSerializer(SealedClassSerializer_init_$Create$('uk.co.nickthecoder.gamescupboard.common.GameObject', tmp, tmp_0, tmp_1, tmp$ret$8))];
    var tmp$ret$10;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$9;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$9 = tmp2_arrayOf;
    tmp$ret$10 = tmp$ret$9;
    tmp$ret$11 = tmp$ret$10;
    return tmp$ret$11;
  };
  $serializer_7.prototype.dq = function (decoder) {
    var tmp0_desc = this.j1k_1;
    var tmp1_flag = true;
    var tmp2_index = 0;
    var tmp3_bitMask0 = 0;
    var tmp4_local0 = null;
    var tmp5_input = decoder.it(tmp0_desc);
    if (tmp5_input.wt()) {
      var tmp = getKClass(GameObject);
      var tmp$ret$2;
      // Inline function 'kotlin.arrayOf' call
      var tmp0_arrayOf = [getKClass(Avatar), getKClass(FlippableImageObject), getKClass(GridImageObject), getKClass(ImageObject), getKClass(MultipleGridImageObject), getKClass(PieceAtPointCounter), getKClass(FlippableImageObject), getKClass(ImageObject), getKClass(TextObject)];
      var tmp$ret$1;
      // Inline function 'kotlin.js.unsafeCast' call
      var tmp$ret$0;
      // Inline function 'kotlin.js.asDynamic' call
      tmp$ret$0 = tmp0_arrayOf;
      tmp$ret$1 = tmp$ret$0;
      tmp$ret$2 = tmp$ret$1;
      var tmp_0 = tmp$ret$2;
      var tmp$ret$5;
      // Inline function 'kotlin.arrayOf' call
      var tmp1_arrayOf = [$serializer_getInstance_21(), $serializer_getInstance_25(), $serializer_getInstance_27(), $serializer_getInstance_28(), $serializer_getInstance_29(), $serializer_getInstance_30(), $serializer_getInstance_25(), $serializer_getInstance_28(), $serializer_getInstance_37()];
      var tmp$ret$4;
      // Inline function 'kotlin.js.unsafeCast' call
      var tmp$ret$3;
      // Inline function 'kotlin.js.asDynamic' call
      tmp$ret$3 = tmp1_arrayOf;
      tmp$ret$4 = tmp$ret$3;
      tmp$ret$5 = tmp$ret$4;
      var tmp_1 = tmp$ret$5;
      var tmp$ret$8;
      // Inline function 'kotlin.arrayOf' call
      var tmp$ret$7;
      // Inline function 'kotlin.js.unsafeCast' call
      var tmp$ret$6;
      // Inline function 'kotlin.js.asDynamic' call
      tmp$ret$6 = [];
      tmp$ret$7 = tmp$ret$6;
      tmp$ret$8 = tmp$ret$7;
      tmp4_local0 = tmp5_input.tt(tmp0_desc, 0, new ArrayListSerializer(SealedClassSerializer_init_$Create$('uk.co.nickthecoder.gamescupboard.common.GameObject', tmp, tmp_0, tmp_1, tmp$ret$8)), tmp4_local0);
      tmp3_bitMask0 = tmp3_bitMask0 | 1;
    } else
      while (tmp1_flag) {
        tmp2_index = tmp5_input.xt(tmp0_desc);
        switch (tmp2_index) {
          case -1:
            tmp1_flag = false;
            break;
          case 0:
            var tmp_2 = getKClass(GameObject);
            var tmp$ret$11;
            // Inline function 'kotlin.arrayOf' call
            var tmp2_arrayOf = [getKClass(Avatar), getKClass(FlippableImageObject), getKClass(GridImageObject), getKClass(ImageObject), getKClass(MultipleGridImageObject), getKClass(PieceAtPointCounter), getKClass(FlippableImageObject), getKClass(ImageObject), getKClass(TextObject)];
            var tmp$ret$10;
            // Inline function 'kotlin.js.unsafeCast' call
            var tmp$ret$9;
            // Inline function 'kotlin.js.asDynamic' call
            tmp$ret$9 = tmp2_arrayOf;
            tmp$ret$10 = tmp$ret$9;
            tmp$ret$11 = tmp$ret$10;

            var tmp_3 = tmp$ret$11;
            var tmp$ret$14;
            // Inline function 'kotlin.arrayOf' call
            var tmp3_arrayOf = [$serializer_getInstance_21(), $serializer_getInstance_25(), $serializer_getInstance_27(), $serializer_getInstance_28(), $serializer_getInstance_29(), $serializer_getInstance_30(), $serializer_getInstance_25(), $serializer_getInstance_28(), $serializer_getInstance_37()];
            var tmp$ret$13;
            // Inline function 'kotlin.js.unsafeCast' call
            var tmp$ret$12;
            // Inline function 'kotlin.js.asDynamic' call
            tmp$ret$12 = tmp3_arrayOf;
            tmp$ret$13 = tmp$ret$12;
            tmp$ret$14 = tmp$ret$13;

            var tmp_4 = tmp$ret$14;
            var tmp$ret$17;
            // Inline function 'kotlin.arrayOf' call
            var tmp$ret$16;
            // Inline function 'kotlin.js.unsafeCast' call
            var tmp$ret$15;
            // Inline function 'kotlin.js.asDynamic' call
            tmp$ret$15 = [];
            tmp$ret$16 = tmp$ret$15;
            tmp$ret$17 = tmp$ret$16;

            tmp4_local0 = tmp5_input.tt(tmp0_desc, 0, new ArrayListSerializer(SealedClassSerializer_init_$Create$('uk.co.nickthecoder.gamescupboard.common.GameObject', tmp_2, tmp_3, tmp_4, tmp$ret$17)), tmp4_local0);
            tmp3_bitMask0 = tmp3_bitMask0 | 1;
            break;
          default:
            throw UnknownFieldException_init_$Create$(tmp2_index);
        }
      }
    tmp5_input.jt(tmp0_desc);
    return AddObjects_init_$Create$(tmp3_bitMask0, tmp4_local0, null);
  };
  $serializer_7.prototype.k1k = function (encoder, value) {
    var tmp0_desc = this.j1k_1;
    var tmp1_output = encoder.it(tmp0_desc);
    var tmp = getKClass(GameObject);
    var tmp$ret$2;
    // Inline function 'kotlin.arrayOf' call
    var tmp0_arrayOf = [getKClass(Avatar), getKClass(FlippableImageObject), getKClass(GridImageObject), getKClass(ImageObject), getKClass(MultipleGridImageObject), getKClass(PieceAtPointCounter), getKClass(FlippableImageObject), getKClass(ImageObject), getKClass(TextObject)];
    var tmp$ret$1;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$0;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$0 = tmp0_arrayOf;
    tmp$ret$1 = tmp$ret$0;
    tmp$ret$2 = tmp$ret$1;
    var tmp_0 = tmp$ret$2;
    var tmp$ret$5;
    // Inline function 'kotlin.arrayOf' call
    var tmp1_arrayOf = [$serializer_getInstance_21(), $serializer_getInstance_25(), $serializer_getInstance_27(), $serializer_getInstance_28(), $serializer_getInstance_29(), $serializer_getInstance_30(), $serializer_getInstance_25(), $serializer_getInstance_28(), $serializer_getInstance_37()];
    var tmp$ret$4;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$3;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$3 = tmp1_arrayOf;
    tmp$ret$4 = tmp$ret$3;
    tmp$ret$5 = tmp$ret$4;
    var tmp_1 = tmp$ret$5;
    var tmp$ret$8;
    // Inline function 'kotlin.arrayOf' call
    var tmp$ret$7;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$6;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$6 = [];
    tmp$ret$7 = tmp$ret$6;
    tmp$ret$8 = tmp$ret$7;
    tmp1_output.wu(tmp0_desc, 0, new ArrayListSerializer(SealedClassSerializer_init_$Create$('uk.co.nickthecoder.gamescupboard.common.GameObject', tmp, tmp_0, tmp_1, tmp$ret$8)), value.l1k_1);
    tmp1_output.jt(tmp0_desc);
  };
  $serializer_7.prototype.cq = function (encoder, value) {
    return this.k1k(encoder, value instanceof AddObjects ? value : THROW_CCE());
  };
  $serializer_7.$metadata$ = objectMeta('$serializer', [GeneratedSerializer]);
  var $serializer_instance_7;
  function $serializer_getInstance_7() {
    if ($serializer_instance_7 == null)
      new $serializer_7();
    return $serializer_instance_7;
  }
  function AddObjects_init_$Init$(seen1, gameObjects, serializationConstructorMarker, $this) {
    if (!(1 === (1 & seen1))) {
      throwMissingFieldException(seen1, 1, $serializer_getInstance_7().j1k_1);
    }
    Message_init_$Init$(seen1, serializationConstructorMarker, $this);
    $this.l1k_1 = gameObjects;
    return $this;
  }
  function AddObjects_init_$Create$(seen1, gameObjects, serializationConstructorMarker) {
    return AddObjects_init_$Init$(seen1, gameObjects, serializationConstructorMarker, Object.create(AddObjects.prototype));
  }
  function AddObjects(gameObjects) {
    Companion_getInstance_9();
    Message.call(this);
    this.l1k_1 = gameObjects;
  }
  AddObjects.prototype.toString = function () {
    return 'AddObjects(gameObjects=' + this.l1k_1 + ')';
  };
  AddObjects.prototype.hashCode = function () {
    return hashCode(this.l1k_1);
  };
  AddObjects.prototype.equals = function (other) {
    if (this === other)
      return true;
    if (!(other instanceof AddObjects))
      return false;
    var tmp0_other_with_cast = other instanceof AddObjects ? other : THROW_CCE();
    if (!equals(this.l1k_1, tmp0_other_with_cast.l1k_1))
      return false;
    return true;
  };
  AddObjects.$metadata$ = classMeta('AddObjects', undefined, undefined, {0: $serializer_getInstance_7}, undefined, Message.prototype);
  function Companion_9() {
    Companion_instance_9 = this;
  }
  Companion_9.$metadata$ = objectMeta('Companion');
  var Companion_instance_9;
  function Companion_getInstance_10() {
    if (Companion_instance_9 == null)
      new Companion_9();
    return Companion_instance_9;
  }
  function $serializer_8() {
    $serializer_instance_8 = this;
    var tmp0_serialDesc = new PluginGeneratedSerialDescriptor('RemoveObjects', this, 2);
    tmp0_serialDesc.g10('ids', false);
    tmp0_serialDesc.g10('saveToBin', true);
    this.m1k_1 = tmp0_serialDesc;
  }
  $serializer_8.prototype.bq = function () {
    return this.m1k_1;
  };
  $serializer_8.prototype.x10 = function () {
    var tmp$ret$2;
    // Inline function 'kotlin.arrayOf' call
    var tmp0_arrayOf = [new ArrayListSerializer(IntSerializer_getInstance()), BooleanSerializer_getInstance()];
    var tmp$ret$1;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$0;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$0 = tmp0_arrayOf;
    tmp$ret$1 = tmp$ret$0;
    tmp$ret$2 = tmp$ret$1;
    return tmp$ret$2;
  };
  $serializer_8.prototype.dq = function (decoder) {
    var tmp0_desc = this.m1k_1;
    var tmp1_flag = true;
    var tmp2_index = 0;
    var tmp3_bitMask0 = 0;
    var tmp4_local0 = null;
    var tmp5_local1 = false;
    var tmp6_input = decoder.it(tmp0_desc);
    if (tmp6_input.wt()) {
      tmp4_local0 = tmp6_input.tt(tmp0_desc, 0, new ArrayListSerializer(IntSerializer_getInstance()), tmp4_local0);
      tmp3_bitMask0 = tmp3_bitMask0 | 1;
      tmp5_local1 = tmp6_input.kt(tmp0_desc, 1);
      tmp3_bitMask0 = tmp3_bitMask0 | 2;
    } else
      while (tmp1_flag) {
        tmp2_index = tmp6_input.xt(tmp0_desc);
        switch (tmp2_index) {
          case -1:
            tmp1_flag = false;
            break;
          case 0:
            tmp4_local0 = tmp6_input.tt(tmp0_desc, 0, new ArrayListSerializer(IntSerializer_getInstance()), tmp4_local0);
            tmp3_bitMask0 = tmp3_bitMask0 | 1;
            break;
          case 1:
            tmp5_local1 = tmp6_input.kt(tmp0_desc, 1);
            tmp3_bitMask0 = tmp3_bitMask0 | 2;
            break;
          default:
            throw UnknownFieldException_init_$Create$(tmp2_index);
        }
      }
    tmp6_input.jt(tmp0_desc);
    return RemoveObjects_init_$Create$(tmp3_bitMask0, tmp4_local0, tmp5_local1, null);
  };
  $serializer_8.prototype.n1k = function (encoder, value) {
    var tmp0_desc = this.m1k_1;
    var tmp1_output = encoder.it(tmp0_desc);
    tmp1_output.wu(tmp0_desc, 0, new ArrayListSerializer(IntSerializer_getInstance()), value.o1k_1);
    if (tmp1_output.cv(tmp0_desc, 1) ? true : !(value.p1k_1 === false)) {
      tmp1_output.nu(tmp0_desc, 1, value.p1k_1);
    }
    tmp1_output.jt(tmp0_desc);
  };
  $serializer_8.prototype.cq = function (encoder, value) {
    return this.n1k(encoder, value instanceof RemoveObjects ? value : THROW_CCE());
  };
  $serializer_8.$metadata$ = objectMeta('$serializer', [GeneratedSerializer]);
  var $serializer_instance_8;
  function $serializer_getInstance_8() {
    if ($serializer_instance_8 == null)
      new $serializer_8();
    return $serializer_instance_8;
  }
  function RemoveObjects_init_$Init$(seen1, ids, saveToBin, serializationConstructorMarker, $this) {
    if (!(1 === (1 & seen1))) {
      throwMissingFieldException(seen1, 1, $serializer_getInstance_8().m1k_1);
    }
    Message_init_$Init$(seen1, serializationConstructorMarker, $this);
    $this.o1k_1 = ids;
    if (0 === (seen1 & 2))
      $this.p1k_1 = false;
    else
      $this.p1k_1 = saveToBin;
    return $this;
  }
  function RemoveObjects_init_$Create$(seen1, ids, saveToBin, serializationConstructorMarker) {
    return RemoveObjects_init_$Init$(seen1, ids, saveToBin, serializationConstructorMarker, Object.create(RemoveObjects.prototype));
  }
  function RemoveObjects(ids, saveToBin) {
    Companion_getInstance_10();
    Message.call(this);
    this.o1k_1 = ids;
    this.p1k_1 = saveToBin;
  }
  RemoveObjects.prototype.toString = function () {
    return 'RemoveObjects(ids=' + this.o1k_1 + ', saveToBin=' + this.p1k_1 + ')';
  };
  RemoveObjects.prototype.hashCode = function () {
    var result = hashCode(this.o1k_1);
    result = imul(result, 31) + (this.p1k_1 | 0) | 0;
    return result;
  };
  RemoveObjects.prototype.equals = function (other) {
    if (this === other)
      return true;
    if (!(other instanceof RemoveObjects))
      return false;
    var tmp0_other_with_cast = other instanceof RemoveObjects ? other : THROW_CCE();
    if (!equals(this.o1k_1, tmp0_other_with_cast.o1k_1))
      return false;
    if (!(this.p1k_1 === tmp0_other_with_cast.p1k_1))
      return false;
    return true;
  };
  RemoveObjects.$metadata$ = classMeta('RemoveObjects', undefined, undefined, {0: $serializer_getInstance_8}, undefined, Message.prototype);
  function MoveObject_init_$Init$(id, x, y, changeZOrder, $this) {
    MoveObject.call($this, id, numberToInt(x), numberToInt(y), changeZOrder);
    return $this;
  }
  function MoveObject_init_$Create$(id, x, y, changeZOrder) {
    return MoveObject_init_$Init$(id, x, y, changeZOrder, Object.create(MoveObject.prototype));
  }
  function Companion_10() {
    Companion_instance_10 = this;
  }
  Companion_10.$metadata$ = objectMeta('Companion');
  var Companion_instance_10;
  function Companion_getInstance_11() {
    if (Companion_instance_10 == null)
      new Companion_10();
    return Companion_instance_10;
  }
  function $serializer_9() {
    $serializer_instance_9 = this;
    var tmp0_serialDesc = new PluginGeneratedSerialDescriptor('MoveObject', this, 4);
    tmp0_serialDesc.g10('id', false);
    tmp0_serialDesc.g10('x', false);
    tmp0_serialDesc.g10('y', false);
    tmp0_serialDesc.g10('z', true);
    this.q1k_1 = tmp0_serialDesc;
  }
  $serializer_9.prototype.bq = function () {
    return this.q1k_1;
  };
  $serializer_9.prototype.x10 = function () {
    var tmp$ret$2;
    // Inline function 'kotlin.arrayOf' call
    var tmp0_arrayOf = [IntSerializer_getInstance(), IntSerializer_getInstance(), IntSerializer_getInstance(), $serializer_getInstance_19()];
    var tmp$ret$1;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$0;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$0 = tmp0_arrayOf;
    tmp$ret$1 = tmp$ret$0;
    tmp$ret$2 = tmp$ret$1;
    return tmp$ret$2;
  };
  $serializer_9.prototype.dq = function (decoder) {
    var tmp0_desc = this.q1k_1;
    var tmp1_flag = true;
    var tmp2_index = 0;
    var tmp3_bitMask0 = 0;
    var tmp4_local0 = 0;
    var tmp5_local1 = 0;
    var tmp6_local2 = 0;
    var tmp7_local3 = null;
    var tmp8_input = decoder.it(tmp0_desc);
    if (tmp8_input.wt()) {
      tmp4_local0 = tmp8_input.nt(tmp0_desc, 0);
      tmp3_bitMask0 = tmp3_bitMask0 | 1;
      tmp5_local1 = tmp8_input.nt(tmp0_desc, 1);
      tmp3_bitMask0 = tmp3_bitMask0 | 2;
      tmp6_local2 = tmp8_input.nt(tmp0_desc, 2);
      tmp3_bitMask0 = tmp3_bitMask0 | 4;
      tmp7_local3 = tmp8_input.tt(tmp0_desc, 3, $serializer_getInstance_19(), tmp7_local3);
      tmp3_bitMask0 = tmp3_bitMask0 | 8;
    } else
      while (tmp1_flag) {
        tmp2_index = tmp8_input.xt(tmp0_desc);
        switch (tmp2_index) {
          case -1:
            tmp1_flag = false;
            break;
          case 0:
            tmp4_local0 = tmp8_input.nt(tmp0_desc, 0);
            tmp3_bitMask0 = tmp3_bitMask0 | 1;
            break;
          case 1:
            tmp5_local1 = tmp8_input.nt(tmp0_desc, 1);
            tmp3_bitMask0 = tmp3_bitMask0 | 2;
            break;
          case 2:
            tmp6_local2 = tmp8_input.nt(tmp0_desc, 2);
            tmp3_bitMask0 = tmp3_bitMask0 | 4;
            break;
          case 3:
            tmp7_local3 = tmp8_input.tt(tmp0_desc, 3, $serializer_getInstance_19(), tmp7_local3);
            tmp3_bitMask0 = tmp3_bitMask0 | 8;
            break;
          default:
            throw UnknownFieldException_init_$Create$(tmp2_index);
        }
      }
    tmp8_input.jt(tmp0_desc);
    return MoveObject_init_$Create$_0(tmp3_bitMask0, tmp4_local0, tmp5_local1, tmp6_local2, tmp7_local3, null);
  };
  $serializer_9.prototype.r1k = function (encoder, value) {
    var tmp0_desc = this.q1k_1;
    var tmp1_output = encoder.it(tmp0_desc);
    tmp1_output.qu(tmp0_desc, 0, value.s1k_1);
    tmp1_output.qu(tmp0_desc, 1, value.t1k_1);
    tmp1_output.qu(tmp0_desc, 2, value.u1k_1);
    if (tmp1_output.cv(tmp0_desc, 3) ? true : !value.v1k_1.equals(ChangeZOrder_TOP_getInstance())) {
      tmp1_output.wu(tmp0_desc, 3, $serializer_getInstance_19(), value.v1k_1);
    }
    tmp1_output.jt(tmp0_desc);
  };
  $serializer_9.prototype.cq = function (encoder, value) {
    return this.r1k(encoder, value instanceof MoveObject ? value : THROW_CCE());
  };
  $serializer_9.$metadata$ = objectMeta('$serializer', [GeneratedSerializer]);
  var $serializer_instance_9;
  function $serializer_getInstance_9() {
    if ($serializer_instance_9 == null)
      new $serializer_9();
    return $serializer_instance_9;
  }
  function MoveObject_init_$Init$_0(seen1, id, x, y, z, serializationConstructorMarker, $this) {
    if (!(7 === (7 & seen1))) {
      throwMissingFieldException(seen1, 7, $serializer_getInstance_9().q1k_1);
    }
    Message_init_$Init$(seen1, serializationConstructorMarker, $this);
    $this.s1k_1 = id;
    $this.t1k_1 = x;
    $this.u1k_1 = y;
    if (0 === (seen1 & 8))
      $this.v1k_1 = ChangeZOrder_TOP_getInstance();
    else
      $this.v1k_1 = z;
    return $this;
  }
  function MoveObject_init_$Create$_0(seen1, id, x, y, z, serializationConstructorMarker) {
    return MoveObject_init_$Init$_0(seen1, id, x, y, z, serializationConstructorMarker, Object.create(MoveObject.prototype));
  }
  function MoveObject(id, x, y, z) {
    Companion_getInstance_11();
    Message.call(this);
    this.s1k_1 = id;
    this.t1k_1 = x;
    this.u1k_1 = y;
    this.v1k_1 = z;
  }
  MoveObject.prototype.toString = function () {
    return 'MoveObject(id=' + this.s1k_1 + ', x=' + this.t1k_1 + ', y=' + this.u1k_1 + ', z=' + this.v1k_1 + ')';
  };
  MoveObject.prototype.hashCode = function () {
    var result = this.s1k_1;
    result = imul(result, 31) + this.t1k_1 | 0;
    result = imul(result, 31) + this.u1k_1 | 0;
    result = imul(result, 31) + this.v1k_1.hashCode() | 0;
    return result;
  };
  MoveObject.prototype.equals = function (other) {
    if (this === other)
      return true;
    if (!(other instanceof MoveObject))
      return false;
    var tmp0_other_with_cast = other instanceof MoveObject ? other : THROW_CCE();
    if (!(this.s1k_1 === tmp0_other_with_cast.s1k_1))
      return false;
    if (!(this.t1k_1 === tmp0_other_with_cast.t1k_1))
      return false;
    if (!(this.u1k_1 === tmp0_other_with_cast.u1k_1))
      return false;
    if (!this.v1k_1.equals(tmp0_other_with_cast.v1k_1))
      return false;
    return true;
  };
  MoveObject.$metadata$ = classMeta('MoveObject', undefined, undefined, {0: $serializer_getInstance_9}, undefined, Message.prototype);
  function DragObject_init_$Init$(id, x, y, forceFaceDown, $this) {
    DragObject.call($this, id, numberToInt(x), numberToInt(y), forceFaceDown);
    return $this;
  }
  function DragObject_init_$Create$(id, x, y, forceFaceDown) {
    return DragObject_init_$Init$(id, x, y, forceFaceDown, Object.create(DragObject.prototype));
  }
  function Companion_11() {
    Companion_instance_11 = this;
  }
  Companion_11.$metadata$ = objectMeta('Companion');
  var Companion_instance_11;
  function Companion_getInstance_12() {
    if (Companion_instance_11 == null)
      new Companion_11();
    return Companion_instance_11;
  }
  function $serializer_10() {
    $serializer_instance_10 = this;
    var tmp0_serialDesc = new PluginGeneratedSerialDescriptor('DragObject', this, 4);
    tmp0_serialDesc.g10('id', false);
    tmp0_serialDesc.g10('x', false);
    tmp0_serialDesc.g10('y', false);
    tmp0_serialDesc.g10('forceFaceDown', false);
    this.w1k_1 = tmp0_serialDesc;
  }
  $serializer_10.prototype.bq = function () {
    return this.w1k_1;
  };
  $serializer_10.prototype.x10 = function () {
    var tmp$ret$2;
    // Inline function 'kotlin.arrayOf' call
    var tmp0_arrayOf = [IntSerializer_getInstance(), IntSerializer_getInstance(), IntSerializer_getInstance(), BooleanSerializer_getInstance()];
    var tmp$ret$1;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$0;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$0 = tmp0_arrayOf;
    tmp$ret$1 = tmp$ret$0;
    tmp$ret$2 = tmp$ret$1;
    return tmp$ret$2;
  };
  $serializer_10.prototype.dq = function (decoder) {
    var tmp0_desc = this.w1k_1;
    var tmp1_flag = true;
    var tmp2_index = 0;
    var tmp3_bitMask0 = 0;
    var tmp4_local0 = 0;
    var tmp5_local1 = 0;
    var tmp6_local2 = 0;
    var tmp7_local3 = false;
    var tmp8_input = decoder.it(tmp0_desc);
    if (tmp8_input.wt()) {
      tmp4_local0 = tmp8_input.nt(tmp0_desc, 0);
      tmp3_bitMask0 = tmp3_bitMask0 | 1;
      tmp5_local1 = tmp8_input.nt(tmp0_desc, 1);
      tmp3_bitMask0 = tmp3_bitMask0 | 2;
      tmp6_local2 = tmp8_input.nt(tmp0_desc, 2);
      tmp3_bitMask0 = tmp3_bitMask0 | 4;
      tmp7_local3 = tmp8_input.kt(tmp0_desc, 3);
      tmp3_bitMask0 = tmp3_bitMask0 | 8;
    } else
      while (tmp1_flag) {
        tmp2_index = tmp8_input.xt(tmp0_desc);
        switch (tmp2_index) {
          case -1:
            tmp1_flag = false;
            break;
          case 0:
            tmp4_local0 = tmp8_input.nt(tmp0_desc, 0);
            tmp3_bitMask0 = tmp3_bitMask0 | 1;
            break;
          case 1:
            tmp5_local1 = tmp8_input.nt(tmp0_desc, 1);
            tmp3_bitMask0 = tmp3_bitMask0 | 2;
            break;
          case 2:
            tmp6_local2 = tmp8_input.nt(tmp0_desc, 2);
            tmp3_bitMask0 = tmp3_bitMask0 | 4;
            break;
          case 3:
            tmp7_local3 = tmp8_input.kt(tmp0_desc, 3);
            tmp3_bitMask0 = tmp3_bitMask0 | 8;
            break;
          default:
            throw UnknownFieldException_init_$Create$(tmp2_index);
        }
      }
    tmp8_input.jt(tmp0_desc);
    return DragObject_init_$Create$_0(tmp3_bitMask0, tmp4_local0, tmp5_local1, tmp6_local2, tmp7_local3, null);
  };
  $serializer_10.prototype.x1k = function (encoder, value) {
    var tmp0_desc = this.w1k_1;
    var tmp1_output = encoder.it(tmp0_desc);
    tmp1_output.qu(tmp0_desc, 0, value.y1k_1);
    tmp1_output.qu(tmp0_desc, 1, value.z1k_1);
    tmp1_output.qu(tmp0_desc, 2, value.a1l_1);
    tmp1_output.nu(tmp0_desc, 3, value.b1l_1);
    tmp1_output.jt(tmp0_desc);
  };
  $serializer_10.prototype.cq = function (encoder, value) {
    return this.x1k(encoder, value instanceof DragObject ? value : THROW_CCE());
  };
  $serializer_10.$metadata$ = objectMeta('$serializer', [GeneratedSerializer]);
  var $serializer_instance_10;
  function $serializer_getInstance_10() {
    if ($serializer_instance_10 == null)
      new $serializer_10();
    return $serializer_instance_10;
  }
  function DragObject_init_$Init$_0(seen1, id, x, y, forceFaceDown, serializationConstructorMarker, $this) {
    if (!(15 === (15 & seen1))) {
      throwMissingFieldException(seen1, 15, $serializer_getInstance_10().w1k_1);
    }
    Message_init_$Init$(seen1, serializationConstructorMarker, $this);
    $this.y1k_1 = id;
    $this.z1k_1 = x;
    $this.a1l_1 = y;
    $this.b1l_1 = forceFaceDown;
    return $this;
  }
  function DragObject_init_$Create$_0(seen1, id, x, y, forceFaceDown, serializationConstructorMarker) {
    return DragObject_init_$Init$_0(seen1, id, x, y, forceFaceDown, serializationConstructorMarker, Object.create(DragObject.prototype));
  }
  function DragObject(id, x, y, forceFaceDown) {
    Companion_getInstance_12();
    Message.call(this);
    this.y1k_1 = id;
    this.z1k_1 = x;
    this.a1l_1 = y;
    this.b1l_1 = forceFaceDown;
  }
  DragObject.prototype.toString = function () {
    return 'DragObject(id=' + this.y1k_1 + ', x=' + this.z1k_1 + ', y=' + this.a1l_1 + ', forceFaceDown=' + this.b1l_1 + ')';
  };
  DragObject.prototype.hashCode = function () {
    var result = this.y1k_1;
    result = imul(result, 31) + this.z1k_1 | 0;
    result = imul(result, 31) + this.a1l_1 | 0;
    result = imul(result, 31) + (this.b1l_1 | 0) | 0;
    return result;
  };
  DragObject.prototype.equals = function (other) {
    if (this === other)
      return true;
    if (!(other instanceof DragObject))
      return false;
    var tmp0_other_with_cast = other instanceof DragObject ? other : THROW_CCE();
    if (!(this.y1k_1 === tmp0_other_with_cast.y1k_1))
      return false;
    if (!(this.z1k_1 === tmp0_other_with_cast.z1k_1))
      return false;
    if (!(this.a1l_1 === tmp0_other_with_cast.a1l_1))
      return false;
    if (!(this.b1l_1 === tmp0_other_with_cast.b1l_1))
      return false;
    return true;
  };
  DragObject.$metadata$ = classMeta('DragObject', undefined, undefined, {0: $serializer_getInstance_10}, undefined, Message.prototype);
  function Companion_12() {
    Companion_instance_12 = this;
  }
  Companion_12.$metadata$ = objectMeta('Companion');
  var Companion_instance_12;
  function Companion_getInstance_13() {
    if (Companion_instance_12 == null)
      new Companion_12();
    return Companion_instance_12;
  }
  function $serializer_11() {
    $serializer_instance_11 = this;
    var tmp0_serialDesc = new PluginGeneratedSerialDescriptor('ChangePrivacy', this, 2);
    tmp0_serialDesc.g10('id', false);
    tmp0_serialDesc.g10('privateToPlayerId', false);
    this.c1l_1 = tmp0_serialDesc;
  }
  $serializer_11.prototype.bq = function () {
    return this.c1l_1;
  };
  $serializer_11.prototype.x10 = function () {
    var tmp$ret$2;
    // Inline function 'kotlin.arrayOf' call
    var tmp0_arrayOf = [IntSerializer_getInstance(), get_nullable(IntSerializer_getInstance())];
    var tmp$ret$1;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$0;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$0 = tmp0_arrayOf;
    tmp$ret$1 = tmp$ret$0;
    tmp$ret$2 = tmp$ret$1;
    return tmp$ret$2;
  };
  $serializer_11.prototype.dq = function (decoder) {
    var tmp0_desc = this.c1l_1;
    var tmp1_flag = true;
    var tmp2_index = 0;
    var tmp3_bitMask0 = 0;
    var tmp4_local0 = 0;
    var tmp5_local1 = null;
    var tmp6_input = decoder.it(tmp0_desc);
    if (tmp6_input.wt()) {
      tmp4_local0 = tmp6_input.nt(tmp0_desc, 0);
      tmp3_bitMask0 = tmp3_bitMask0 | 1;
      tmp5_local1 = tmp6_input.vt(tmp0_desc, 1, IntSerializer_getInstance(), tmp5_local1);
      tmp3_bitMask0 = tmp3_bitMask0 | 2;
    } else
      while (tmp1_flag) {
        tmp2_index = tmp6_input.xt(tmp0_desc);
        switch (tmp2_index) {
          case -1:
            tmp1_flag = false;
            break;
          case 0:
            tmp4_local0 = tmp6_input.nt(tmp0_desc, 0);
            tmp3_bitMask0 = tmp3_bitMask0 | 1;
            break;
          case 1:
            tmp5_local1 = tmp6_input.vt(tmp0_desc, 1, IntSerializer_getInstance(), tmp5_local1);
            tmp3_bitMask0 = tmp3_bitMask0 | 2;
            break;
          default:
            throw UnknownFieldException_init_$Create$(tmp2_index);
        }
      }
    tmp6_input.jt(tmp0_desc);
    return ChangePrivacy_init_$Create$(tmp3_bitMask0, tmp4_local0, tmp5_local1, null);
  };
  $serializer_11.prototype.d1l = function (encoder, value) {
    var tmp0_desc = this.c1l_1;
    var tmp1_output = encoder.it(tmp0_desc);
    tmp1_output.qu(tmp0_desc, 0, value.e1l_1);
    tmp1_output.yu(tmp0_desc, 1, IntSerializer_getInstance(), value.f1l_1);
    tmp1_output.jt(tmp0_desc);
  };
  $serializer_11.prototype.cq = function (encoder, value) {
    return this.d1l(encoder, value instanceof ChangePrivacy ? value : THROW_CCE());
  };
  $serializer_11.$metadata$ = objectMeta('$serializer', [GeneratedSerializer]);
  var $serializer_instance_11;
  function $serializer_getInstance_11() {
    if ($serializer_instance_11 == null)
      new $serializer_11();
    return $serializer_instance_11;
  }
  function ChangePrivacy_init_$Init$(seen1, id, privateToPlayerId, serializationConstructorMarker, $this) {
    if (!(3 === (3 & seen1))) {
      throwMissingFieldException(seen1, 3, $serializer_getInstance_11().c1l_1);
    }
    Message_init_$Init$(seen1, serializationConstructorMarker, $this);
    $this.e1l_1 = id;
    $this.f1l_1 = privateToPlayerId;
    return $this;
  }
  function ChangePrivacy_init_$Create$(seen1, id, privateToPlayerId, serializationConstructorMarker) {
    return ChangePrivacy_init_$Init$(seen1, id, privateToPlayerId, serializationConstructorMarker, Object.create(ChangePrivacy.prototype));
  }
  function ChangePrivacy(id, privateToPlayerId) {
    Companion_getInstance_13();
    Message.call(this);
    this.e1l_1 = id;
    this.f1l_1 = privateToPlayerId;
  }
  ChangePrivacy.prototype.g1l = function () {
    return this.f1l_1;
  };
  ChangePrivacy.prototype.toString = function () {
    return 'ChangePrivacy(id=' + this.e1l_1 + ', privateToPlayerId=' + this.f1l_1 + ')';
  };
  ChangePrivacy.prototype.hashCode = function () {
    var result = this.e1l_1;
    result = imul(result, 31) + (this.f1l_1 == null ? 0 : this.f1l_1) | 0;
    return result;
  };
  ChangePrivacy.prototype.equals = function (other) {
    if (this === other)
      return true;
    if (!(other instanceof ChangePrivacy))
      return false;
    var tmp0_other_with_cast = other instanceof ChangePrivacy ? other : THROW_CCE();
    if (!(this.e1l_1 === tmp0_other_with_cast.e1l_1))
      return false;
    if (!(this.f1l_1 == tmp0_other_with_cast.f1l_1))
      return false;
    return true;
  };
  ChangePrivacy.$metadata$ = classMeta('ChangePrivacy', undefined, undefined, {0: $serializer_getInstance_11}, undefined, Message.prototype);
  function Companion_13() {
    Companion_instance_13 = this;
  }
  Companion_13.$metadata$ = objectMeta('Companion');
  var Companion_instance_13;
  function Companion_getInstance_14() {
    if (Companion_instance_13 == null)
      new Companion_13();
    return Companion_instance_13;
  }
  function $serializer_12() {
    $serializer_instance_12 = this;
    var tmp0_serialDesc = new PluginGeneratedSerialDescriptor('FaceUpOrDown', this, 2);
    tmp0_serialDesc.g10('id', false);
    tmp0_serialDesc.g10('isFaceUp', false);
    this.h1l_1 = tmp0_serialDesc;
  }
  $serializer_12.prototype.bq = function () {
    return this.h1l_1;
  };
  $serializer_12.prototype.x10 = function () {
    var tmp$ret$2;
    // Inline function 'kotlin.arrayOf' call
    var tmp0_arrayOf = [IntSerializer_getInstance(), BooleanSerializer_getInstance()];
    var tmp$ret$1;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$0;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$0 = tmp0_arrayOf;
    tmp$ret$1 = tmp$ret$0;
    tmp$ret$2 = tmp$ret$1;
    return tmp$ret$2;
  };
  $serializer_12.prototype.dq = function (decoder) {
    var tmp0_desc = this.h1l_1;
    var tmp1_flag = true;
    var tmp2_index = 0;
    var tmp3_bitMask0 = 0;
    var tmp4_local0 = 0;
    var tmp5_local1 = false;
    var tmp6_input = decoder.it(tmp0_desc);
    if (tmp6_input.wt()) {
      tmp4_local0 = tmp6_input.nt(tmp0_desc, 0);
      tmp3_bitMask0 = tmp3_bitMask0 | 1;
      tmp5_local1 = tmp6_input.kt(tmp0_desc, 1);
      tmp3_bitMask0 = tmp3_bitMask0 | 2;
    } else
      while (tmp1_flag) {
        tmp2_index = tmp6_input.xt(tmp0_desc);
        switch (tmp2_index) {
          case -1:
            tmp1_flag = false;
            break;
          case 0:
            tmp4_local0 = tmp6_input.nt(tmp0_desc, 0);
            tmp3_bitMask0 = tmp3_bitMask0 | 1;
            break;
          case 1:
            tmp5_local1 = tmp6_input.kt(tmp0_desc, 1);
            tmp3_bitMask0 = tmp3_bitMask0 | 2;
            break;
          default:
            throw UnknownFieldException_init_$Create$(tmp2_index);
        }
      }
    tmp6_input.jt(tmp0_desc);
    return FaceUpOrDown_init_$Create$(tmp3_bitMask0, tmp4_local0, tmp5_local1, null);
  };
  $serializer_12.prototype.i1l = function (encoder, value) {
    var tmp0_desc = this.h1l_1;
    var tmp1_output = encoder.it(tmp0_desc);
    tmp1_output.qu(tmp0_desc, 0, value.j1l_1);
    tmp1_output.nu(tmp0_desc, 1, value.k1l_1);
    tmp1_output.jt(tmp0_desc);
  };
  $serializer_12.prototype.cq = function (encoder, value) {
    return this.i1l(encoder, value instanceof FaceUpOrDown ? value : THROW_CCE());
  };
  $serializer_12.$metadata$ = objectMeta('$serializer', [GeneratedSerializer]);
  var $serializer_instance_12;
  function $serializer_getInstance_12() {
    if ($serializer_instance_12 == null)
      new $serializer_12();
    return $serializer_instance_12;
  }
  function FaceUpOrDown_init_$Init$(seen1, id, isFaceUp, serializationConstructorMarker, $this) {
    if (!(3 === (3 & seen1))) {
      throwMissingFieldException(seen1, 3, $serializer_getInstance_12().h1l_1);
    }
    Message_init_$Init$(seen1, serializationConstructorMarker, $this);
    $this.j1l_1 = id;
    $this.k1l_1 = isFaceUp;
    return $this;
  }
  function FaceUpOrDown_init_$Create$(seen1, id, isFaceUp, serializationConstructorMarker) {
    return FaceUpOrDown_init_$Init$(seen1, id, isFaceUp, serializationConstructorMarker, Object.create(FaceUpOrDown.prototype));
  }
  function FaceUpOrDown(id, isFaceUp) {
    Companion_getInstance_14();
    Message.call(this);
    this.j1l_1 = id;
    this.k1l_1 = isFaceUp;
  }
  FaceUpOrDown.prototype.toString = function () {
    return 'FaceUpOrDown(id=' + this.j1l_1 + ', isFaceUp=' + this.k1l_1 + ')';
  };
  FaceUpOrDown.prototype.hashCode = function () {
    var result = this.j1l_1;
    result = imul(result, 31) + (this.k1l_1 | 0) | 0;
    return result;
  };
  FaceUpOrDown.prototype.equals = function (other) {
    if (this === other)
      return true;
    if (!(other instanceof FaceUpOrDown))
      return false;
    var tmp0_other_with_cast = other instanceof FaceUpOrDown ? other : THROW_CCE();
    if (!(this.j1l_1 === tmp0_other_with_cast.j1l_1))
      return false;
    if (!(this.k1l_1 === tmp0_other_with_cast.k1l_1))
      return false;
    return true;
  };
  FaceUpOrDown.$metadata$ = classMeta('FaceUpOrDown', undefined, undefined, {0: $serializer_getInstance_12}, undefined, Message.prototype);
  function Companion_14() {
    Companion_instance_14 = this;
  }
  Companion_14.$metadata$ = objectMeta('Companion');
  var Companion_instance_14;
  function Companion_getInstance_15() {
    if (Companion_instance_14 == null)
      new Companion_14();
    return Companion_instance_14;
  }
  function $serializer_13() {
    $serializer_instance_13 = this;
    var tmp0_serialDesc = new PluginGeneratedSerialDescriptor('ScaleObject', this, 2);
    tmp0_serialDesc.g10('id', false);
    tmp0_serialDesc.g10('scale', false);
    this.l1l_1 = tmp0_serialDesc;
  }
  $serializer_13.prototype.bq = function () {
    return this.l1l_1;
  };
  $serializer_13.prototype.x10 = function () {
    var tmp$ret$2;
    // Inline function 'kotlin.arrayOf' call
    var tmp0_arrayOf = [IntSerializer_getInstance(), DoubleSerializer_getInstance()];
    var tmp$ret$1;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$0;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$0 = tmp0_arrayOf;
    tmp$ret$1 = tmp$ret$0;
    tmp$ret$2 = tmp$ret$1;
    return tmp$ret$2;
  };
  $serializer_13.prototype.dq = function (decoder) {
    var tmp0_desc = this.l1l_1;
    var tmp1_flag = true;
    var tmp2_index = 0;
    var tmp3_bitMask0 = 0;
    var tmp4_local0 = 0;
    var tmp5_local1 = 0.0;
    var tmp6_input = decoder.it(tmp0_desc);
    if (tmp6_input.wt()) {
      tmp4_local0 = tmp6_input.nt(tmp0_desc, 0);
      tmp3_bitMask0 = tmp3_bitMask0 | 1;
      tmp5_local1 = tmp6_input.qt(tmp0_desc, 1);
      tmp3_bitMask0 = tmp3_bitMask0 | 2;
    } else
      while (tmp1_flag) {
        tmp2_index = tmp6_input.xt(tmp0_desc);
        switch (tmp2_index) {
          case -1:
            tmp1_flag = false;
            break;
          case 0:
            tmp4_local0 = tmp6_input.nt(tmp0_desc, 0);
            tmp3_bitMask0 = tmp3_bitMask0 | 1;
            break;
          case 1:
            tmp5_local1 = tmp6_input.qt(tmp0_desc, 1);
            tmp3_bitMask0 = tmp3_bitMask0 | 2;
            break;
          default:
            throw UnknownFieldException_init_$Create$(tmp2_index);
        }
      }
    tmp6_input.jt(tmp0_desc);
    return ScaleObject_init_$Create$(tmp3_bitMask0, tmp4_local0, tmp5_local1, null);
  };
  $serializer_13.prototype.m1l = function (encoder, value) {
    var tmp0_desc = this.l1l_1;
    var tmp1_output = encoder.it(tmp0_desc);
    tmp1_output.qu(tmp0_desc, 0, value.n1l_1);
    tmp1_output.tu(tmp0_desc, 1, value.o1l_1);
    tmp1_output.jt(tmp0_desc);
  };
  $serializer_13.prototype.cq = function (encoder, value) {
    return this.m1l(encoder, value instanceof ScaleObject ? value : THROW_CCE());
  };
  $serializer_13.$metadata$ = objectMeta('$serializer', [GeneratedSerializer]);
  var $serializer_instance_13;
  function $serializer_getInstance_13() {
    if ($serializer_instance_13 == null)
      new $serializer_13();
    return $serializer_instance_13;
  }
  function ScaleObject_init_$Init$(seen1, id, scale, serializationConstructorMarker, $this) {
    if (!(3 === (3 & seen1))) {
      throwMissingFieldException(seen1, 3, $serializer_getInstance_13().l1l_1);
    }
    Message_init_$Init$(seen1, serializationConstructorMarker, $this);
    $this.n1l_1 = id;
    $this.o1l_1 = scale;
    return $this;
  }
  function ScaleObject_init_$Create$(seen1, id, scale, serializationConstructorMarker) {
    return ScaleObject_init_$Init$(seen1, id, scale, serializationConstructorMarker, Object.create(ScaleObject.prototype));
  }
  function ScaleObject(id, scale) {
    Companion_getInstance_15();
    Message.call(this);
    this.n1l_1 = id;
    this.o1l_1 = scale;
  }
  ScaleObject.prototype.toString = function () {
    return 'ScaleObject(id=' + this.n1l_1 + ', scale=' + this.o1l_1 + ')';
  };
  ScaleObject.prototype.hashCode = function () {
    var result = this.n1l_1;
    result = imul(result, 31) + getNumberHashCode(this.o1l_1) | 0;
    return result;
  };
  ScaleObject.prototype.equals = function (other) {
    if (this === other)
      return true;
    if (!(other instanceof ScaleObject))
      return false;
    var tmp0_other_with_cast = other instanceof ScaleObject ? other : THROW_CCE();
    if (!(this.n1l_1 === tmp0_other_with_cast.n1l_1))
      return false;
    if (!equals(this.o1l_1, tmp0_other_with_cast.o1l_1))
      return false;
    return true;
  };
  ScaleObject.$metadata$ = classMeta('ScaleObject', undefined, undefined, {0: $serializer_getInstance_13}, undefined, Message.prototype);
  function Companion_15() {
    Companion_instance_15 = this;
  }
  Companion_15.$metadata$ = objectMeta('Companion');
  var Companion_instance_15;
  function Companion_getInstance_16() {
    if (Companion_instance_15 == null)
      new Companion_15();
    return Companion_instance_15;
  }
  function $serializer_14() {
    $serializer_instance_14 = this;
    var tmp0_serialDesc = new PluginGeneratedSerialDescriptor('CycleText', this, 2);
    tmp0_serialDesc.g10('id', false);
    tmp0_serialDesc.g10('cyclicIndex', false);
    this.p1l_1 = tmp0_serialDesc;
  }
  $serializer_14.prototype.bq = function () {
    return this.p1l_1;
  };
  $serializer_14.prototype.x10 = function () {
    var tmp$ret$2;
    // Inline function 'kotlin.arrayOf' call
    var tmp0_arrayOf = [IntSerializer_getInstance(), IntSerializer_getInstance()];
    var tmp$ret$1;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$0;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$0 = tmp0_arrayOf;
    tmp$ret$1 = tmp$ret$0;
    tmp$ret$2 = tmp$ret$1;
    return tmp$ret$2;
  };
  $serializer_14.prototype.dq = function (decoder) {
    var tmp0_desc = this.p1l_1;
    var tmp1_flag = true;
    var tmp2_index = 0;
    var tmp3_bitMask0 = 0;
    var tmp4_local0 = 0;
    var tmp5_local1 = 0;
    var tmp6_input = decoder.it(tmp0_desc);
    if (tmp6_input.wt()) {
      tmp4_local0 = tmp6_input.nt(tmp0_desc, 0);
      tmp3_bitMask0 = tmp3_bitMask0 | 1;
      tmp5_local1 = tmp6_input.nt(tmp0_desc, 1);
      tmp3_bitMask0 = tmp3_bitMask0 | 2;
    } else
      while (tmp1_flag) {
        tmp2_index = tmp6_input.xt(tmp0_desc);
        switch (tmp2_index) {
          case -1:
            tmp1_flag = false;
            break;
          case 0:
            tmp4_local0 = tmp6_input.nt(tmp0_desc, 0);
            tmp3_bitMask0 = tmp3_bitMask0 | 1;
            break;
          case 1:
            tmp5_local1 = tmp6_input.nt(tmp0_desc, 1);
            tmp3_bitMask0 = tmp3_bitMask0 | 2;
            break;
          default:
            throw UnknownFieldException_init_$Create$(tmp2_index);
        }
      }
    tmp6_input.jt(tmp0_desc);
    return CycleText_init_$Create$(tmp3_bitMask0, tmp4_local0, tmp5_local1, null);
  };
  $serializer_14.prototype.q1l = function (encoder, value) {
    var tmp0_desc = this.p1l_1;
    var tmp1_output = encoder.it(tmp0_desc);
    tmp1_output.qu(tmp0_desc, 0, value.r1l_1);
    tmp1_output.qu(tmp0_desc, 1, value.s1l_1);
    tmp1_output.jt(tmp0_desc);
  };
  $serializer_14.prototype.cq = function (encoder, value) {
    return this.q1l(encoder, value instanceof CycleText ? value : THROW_CCE());
  };
  $serializer_14.$metadata$ = objectMeta('$serializer', [GeneratedSerializer]);
  var $serializer_instance_14;
  function $serializer_getInstance_14() {
    if ($serializer_instance_14 == null)
      new $serializer_14();
    return $serializer_instance_14;
  }
  function CycleText_init_$Init$(seen1, id, cyclicIndex, serializationConstructorMarker, $this) {
    if (!(3 === (3 & seen1))) {
      throwMissingFieldException(seen1, 3, $serializer_getInstance_14().p1l_1);
    }
    Message_init_$Init$(seen1, serializationConstructorMarker, $this);
    $this.r1l_1 = id;
    $this.s1l_1 = cyclicIndex;
    return $this;
  }
  function CycleText_init_$Create$(seen1, id, cyclicIndex, serializationConstructorMarker) {
    return CycleText_init_$Init$(seen1, id, cyclicIndex, serializationConstructorMarker, Object.create(CycleText.prototype));
  }
  function CycleText(id, cyclicIndex) {
    Companion_getInstance_16();
    Message.call(this);
    this.r1l_1 = id;
    this.s1l_1 = cyclicIndex;
  }
  CycleText.prototype.toString = function () {
    return 'CycleText(id=' + this.r1l_1 + ', cyclicIndex=' + this.s1l_1 + ')';
  };
  CycleText.prototype.hashCode = function () {
    var result = this.r1l_1;
    result = imul(result, 31) + this.s1l_1 | 0;
    return result;
  };
  CycleText.prototype.equals = function (other) {
    if (this === other)
      return true;
    if (!(other instanceof CycleText))
      return false;
    var tmp0_other_with_cast = other instanceof CycleText ? other : THROW_CCE();
    if (!(this.r1l_1 === tmp0_other_with_cast.r1l_1))
      return false;
    if (!(this.s1l_1 === tmp0_other_with_cast.s1l_1))
      return false;
    return true;
  };
  CycleText.$metadata$ = classMeta('CycleText', undefined, undefined, {0: $serializer_getInstance_14}, undefined, Message.prototype);
  function Companion_16() {
    Companion_instance_16 = this;
  }
  Companion_16.$metadata$ = objectMeta('Companion');
  var Companion_instance_16;
  function Companion_getInstance_17() {
    if (Companion_instance_16 == null)
      new Companion_16();
    return Companion_instance_16;
  }
  function $serializer_15() {
    $serializer_instance_15 = this;
    var tmp0_serialDesc = new PluginGeneratedSerialDescriptor('ChangeImage', this, 2);
    tmp0_serialDesc.g10('id', false);
    tmp0_serialDesc.g10('imageNumber', false);
    this.t1l_1 = tmp0_serialDesc;
  }
  $serializer_15.prototype.bq = function () {
    return this.t1l_1;
  };
  $serializer_15.prototype.x10 = function () {
    var tmp$ret$2;
    // Inline function 'kotlin.arrayOf' call
    var tmp0_arrayOf = [IntSerializer_getInstance(), IntSerializer_getInstance()];
    var tmp$ret$1;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$0;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$0 = tmp0_arrayOf;
    tmp$ret$1 = tmp$ret$0;
    tmp$ret$2 = tmp$ret$1;
    return tmp$ret$2;
  };
  $serializer_15.prototype.dq = function (decoder) {
    var tmp0_desc = this.t1l_1;
    var tmp1_flag = true;
    var tmp2_index = 0;
    var tmp3_bitMask0 = 0;
    var tmp4_local0 = 0;
    var tmp5_local1 = 0;
    var tmp6_input = decoder.it(tmp0_desc);
    if (tmp6_input.wt()) {
      tmp4_local0 = tmp6_input.nt(tmp0_desc, 0);
      tmp3_bitMask0 = tmp3_bitMask0 | 1;
      tmp5_local1 = tmp6_input.nt(tmp0_desc, 1);
      tmp3_bitMask0 = tmp3_bitMask0 | 2;
    } else
      while (tmp1_flag) {
        tmp2_index = tmp6_input.xt(tmp0_desc);
        switch (tmp2_index) {
          case -1:
            tmp1_flag = false;
            break;
          case 0:
            tmp4_local0 = tmp6_input.nt(tmp0_desc, 0);
            tmp3_bitMask0 = tmp3_bitMask0 | 1;
            break;
          case 1:
            tmp5_local1 = tmp6_input.nt(tmp0_desc, 1);
            tmp3_bitMask0 = tmp3_bitMask0 | 2;
            break;
          default:
            throw UnknownFieldException_init_$Create$(tmp2_index);
        }
      }
    tmp6_input.jt(tmp0_desc);
    return ChangeImage_init_$Create$(tmp3_bitMask0, tmp4_local0, tmp5_local1, null);
  };
  $serializer_15.prototype.u1l = function (encoder, value) {
    var tmp0_desc = this.t1l_1;
    var tmp1_output = encoder.it(tmp0_desc);
    tmp1_output.qu(tmp0_desc, 0, value.v1l_1);
    tmp1_output.qu(tmp0_desc, 1, value.w1l_1);
    tmp1_output.jt(tmp0_desc);
  };
  $serializer_15.prototype.cq = function (encoder, value) {
    return this.u1l(encoder, value instanceof ChangeImage ? value : THROW_CCE());
  };
  $serializer_15.$metadata$ = objectMeta('$serializer', [GeneratedSerializer]);
  var $serializer_instance_15;
  function $serializer_getInstance_15() {
    if ($serializer_instance_15 == null)
      new $serializer_15();
    return $serializer_instance_15;
  }
  function ChangeImage_init_$Init$(seen1, id, imageNumber, serializationConstructorMarker, $this) {
    if (!(3 === (3 & seen1))) {
      throwMissingFieldException(seen1, 3, $serializer_getInstance_15().t1l_1);
    }
    Message_init_$Init$(seen1, serializationConstructorMarker, $this);
    $this.v1l_1 = id;
    $this.w1l_1 = imageNumber;
    return $this;
  }
  function ChangeImage_init_$Create$(seen1, id, imageNumber, serializationConstructorMarker) {
    return ChangeImage_init_$Init$(seen1, id, imageNumber, serializationConstructorMarker, Object.create(ChangeImage.prototype));
  }
  function ChangeImage(id, imageNumber) {
    Companion_getInstance_17();
    Message.call(this);
    this.v1l_1 = id;
    this.w1l_1 = imageNumber;
  }
  ChangeImage.prototype.toString = function () {
    return 'ChangeImage(id=' + this.v1l_1 + ', imageNumber=' + this.w1l_1 + ')';
  };
  ChangeImage.prototype.hashCode = function () {
    var result = this.v1l_1;
    result = imul(result, 31) + this.w1l_1 | 0;
    return result;
  };
  ChangeImage.prototype.equals = function (other) {
    if (this === other)
      return true;
    if (!(other instanceof ChangeImage))
      return false;
    var tmp0_other_with_cast = other instanceof ChangeImage ? other : THROW_CCE();
    if (!(this.v1l_1 === tmp0_other_with_cast.v1l_1))
      return false;
    if (!(this.w1l_1 === tmp0_other_with_cast.w1l_1))
      return false;
    return true;
  };
  ChangeImage.$metadata$ = classMeta('ChangeImage', undefined, undefined, {0: $serializer_getInstance_15}, undefined, Message.prototype);
  function CommandOk$$cachedSerializer$delegate$_anonymous__uwk97b() {
    var tmp = CommandOk_getInstance();
    var tmp$ret$2;
    // Inline function 'kotlin.arrayOf' call
    var tmp$ret$1;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$0;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$0 = [];
    tmp$ret$1 = tmp$ret$0;
    tmp$ret$2 = tmp$ret$1;
    return ObjectSerializer_init_$Create$('CommandOk', tmp, tmp$ret$2);
  }
  function CommandOk() {
    CommandOk_instance = this;
    Message.call(this);
    var tmp = this;
    var tmp_0 = LazyThreadSafetyMode_PUBLICATION_getInstance();
    tmp.x1l_1 = lazy(tmp_0, CommandOk$$cachedSerializer$delegate$_anonymous__uwk97b);
  }
  CommandOk.prototype.i19 = function () {
    return this.x1l_1.l1();
  };
  CommandOk.prototype.f11 = function (typeParamsSerializers) {
    return this.i19();
  };
  CommandOk.$metadata$ = objectMeta('CommandOk', [SerializerFactory], undefined, {0: CommandOk_getInstance}, undefined, Message.prototype);
  var CommandOk_instance;
  function CommandOk_getInstance() {
    if (CommandOk_instance == null)
      new CommandOk();
    return CommandOk_instance;
  }
  function Companion_17() {
    Companion_instance_17 = this;
  }
  Companion_17.$metadata$ = objectMeta('Companion');
  var Companion_instance_17;
  function Companion_getInstance_18() {
    if (Companion_instance_17 == null)
      new Companion_17();
    return Companion_instance_17;
  }
  function $serializer_16() {
    $serializer_instance_16 = this;
    var tmp0_serialDesc = new PluginGeneratedSerialDescriptor('CommandError', this, 1);
    tmp0_serialDesc.g10('message', false);
    this.y1l_1 = tmp0_serialDesc;
  }
  $serializer_16.prototype.bq = function () {
    return this.y1l_1;
  };
  $serializer_16.prototype.x10 = function () {
    var tmp$ret$2;
    // Inline function 'kotlin.arrayOf' call
    var tmp0_arrayOf = [StringSerializer_getInstance()];
    var tmp$ret$1;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$0;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$0 = tmp0_arrayOf;
    tmp$ret$1 = tmp$ret$0;
    tmp$ret$2 = tmp$ret$1;
    return tmp$ret$2;
  };
  $serializer_16.prototype.dq = function (decoder) {
    var tmp0_desc = this.y1l_1;
    var tmp1_flag = true;
    var tmp2_index = 0;
    var tmp3_bitMask0 = 0;
    var tmp4_local0 = null;
    var tmp5_input = decoder.it(tmp0_desc);
    if (tmp5_input.wt()) {
      tmp4_local0 = tmp5_input.st(tmp0_desc, 0);
      tmp3_bitMask0 = tmp3_bitMask0 | 1;
    } else
      while (tmp1_flag) {
        tmp2_index = tmp5_input.xt(tmp0_desc);
        switch (tmp2_index) {
          case -1:
            tmp1_flag = false;
            break;
          case 0:
            tmp4_local0 = tmp5_input.st(tmp0_desc, 0);
            tmp3_bitMask0 = tmp3_bitMask0 | 1;
            break;
          default:
            throw UnknownFieldException_init_$Create$(tmp2_index);
        }
      }
    tmp5_input.jt(tmp0_desc);
    return CommandError_init_$Create$(tmp3_bitMask0, tmp4_local0, null);
  };
  $serializer_16.prototype.z1l = function (encoder, value) {
    var tmp0_desc = this.y1l_1;
    var tmp1_output = encoder.it(tmp0_desc);
    tmp1_output.vu(tmp0_desc, 0, value.a1m_1);
    tmp1_output.jt(tmp0_desc);
  };
  $serializer_16.prototype.cq = function (encoder, value) {
    return this.z1l(encoder, value instanceof CommandError ? value : THROW_CCE());
  };
  $serializer_16.$metadata$ = objectMeta('$serializer', [GeneratedSerializer]);
  var $serializer_instance_16;
  function $serializer_getInstance_16() {
    if ($serializer_instance_16 == null)
      new $serializer_16();
    return $serializer_instance_16;
  }
  function CommandError_init_$Init$(seen1, message, serializationConstructorMarker, $this) {
    if (!(1 === (1 & seen1))) {
      throwMissingFieldException(seen1, 1, $serializer_getInstance_16().y1l_1);
    }
    Message_init_$Init$(seen1, serializationConstructorMarker, $this);
    $this.a1m_1 = message;
    return $this;
  }
  function CommandError_init_$Create$(seen1, message, serializationConstructorMarker) {
    return CommandError_init_$Init$(seen1, message, serializationConstructorMarker, Object.create(CommandError.prototype));
  }
  function CommandError(message) {
    Companion_getInstance_18();
    Message.call(this);
    this.a1m_1 = message;
  }
  CommandError.$metadata$ = classMeta('CommandError', undefined, undefined, {0: $serializer_getInstance_16}, undefined, Message.prototype);
  function Companion_18() {
    Companion_instance_18 = this;
  }
  Companion_18.$metadata$ = objectMeta('Companion');
  var Companion_instance_18;
  function Companion_getInstance_19() {
    if (Companion_instance_18 == null)
      new Companion_18();
    return Companion_instance_18;
  }
  function $serializer_17() {
    $serializer_instance_17 = this;
    var tmp0_serialDesc = new PluginGeneratedSerialDescriptor('ScoreSheetData', this, 1);
    tmp0_serialDesc.g10('scores', false);
    this.b1m_1 = tmp0_serialDesc;
  }
  $serializer_17.prototype.bq = function () {
    return this.b1m_1;
  };
  $serializer_17.prototype.x10 = function () {
    var tmp$ret$2;
    // Inline function 'kotlin.arrayOf' call
    var tmp0_arrayOf = [new ArrayListSerializer(new ArrayListSerializer(DoubleSerializer_getInstance()))];
    var tmp$ret$1;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$0;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$0 = tmp0_arrayOf;
    tmp$ret$1 = tmp$ret$0;
    tmp$ret$2 = tmp$ret$1;
    return tmp$ret$2;
  };
  $serializer_17.prototype.dq = function (decoder) {
    var tmp0_desc = this.b1m_1;
    var tmp1_flag = true;
    var tmp2_index = 0;
    var tmp3_bitMask0 = 0;
    var tmp4_local0 = null;
    var tmp5_input = decoder.it(tmp0_desc);
    if (tmp5_input.wt()) {
      tmp4_local0 = tmp5_input.tt(tmp0_desc, 0, new ArrayListSerializer(new ArrayListSerializer(DoubleSerializer_getInstance())), tmp4_local0);
      tmp3_bitMask0 = tmp3_bitMask0 | 1;
    } else
      while (tmp1_flag) {
        tmp2_index = tmp5_input.xt(tmp0_desc);
        switch (tmp2_index) {
          case -1:
            tmp1_flag = false;
            break;
          case 0:
            tmp4_local0 = tmp5_input.tt(tmp0_desc, 0, new ArrayListSerializer(new ArrayListSerializer(DoubleSerializer_getInstance())), tmp4_local0);
            tmp3_bitMask0 = tmp3_bitMask0 | 1;
            break;
          default:
            throw UnknownFieldException_init_$Create$(tmp2_index);
        }
      }
    tmp5_input.jt(tmp0_desc);
    return ScoreSheetData_init_$Create$(tmp3_bitMask0, tmp4_local0, null);
  };
  $serializer_17.prototype.c1m = function (encoder, value) {
    var tmp0_desc = this.b1m_1;
    var tmp1_output = encoder.it(tmp0_desc);
    tmp1_output.wu(tmp0_desc, 0, new ArrayListSerializer(new ArrayListSerializer(DoubleSerializer_getInstance())), value.d1m_1);
    tmp1_output.jt(tmp0_desc);
  };
  $serializer_17.prototype.cq = function (encoder, value) {
    return this.c1m(encoder, value instanceof ScoreSheetData ? value : THROW_CCE());
  };
  $serializer_17.$metadata$ = objectMeta('$serializer', [GeneratedSerializer]);
  var $serializer_instance_17;
  function $serializer_getInstance_17() {
    if ($serializer_instance_17 == null)
      new $serializer_17();
    return $serializer_instance_17;
  }
  function ScoreSheetData_init_$Init$(seen1, scores, serializationConstructorMarker, $this) {
    if (!(1 === (1 & seen1))) {
      throwMissingFieldException(seen1, 1, $serializer_getInstance_17().b1m_1);
    }
    Message_init_$Init$(seen1, serializationConstructorMarker, $this);
    $this.d1m_1 = scores;
    return $this;
  }
  function ScoreSheetData_init_$Create$(seen1, scores, serializationConstructorMarker) {
    return ScoreSheetData_init_$Init$(seen1, scores, serializationConstructorMarker, Object.create(ScoreSheetData.prototype));
  }
  function ScoreSheetData(scores) {
    Companion_getInstance_19();
    Message.call(this);
    this.d1m_1 = scores;
  }
  ScoreSheetData.prototype.toString = function () {
    return 'ScoreSheetData(scores=' + this.d1m_1 + ')';
  };
  ScoreSheetData.prototype.hashCode = function () {
    return hashCode(this.d1m_1);
  };
  ScoreSheetData.prototype.equals = function (other) {
    if (this === other)
      return true;
    if (!(other instanceof ScoreSheetData))
      return false;
    var tmp0_other_with_cast = other instanceof ScoreSheetData ? other : THROW_CCE();
    if (!equals(this.d1m_1, tmp0_other_with_cast.d1m_1))
      return false;
    return true;
  };
  ScoreSheetData.$metadata$ = classMeta('ScoreSheetData', undefined, undefined, {0: $serializer_getInstance_17}, undefined, Message.prototype);
  function AddBin$$cachedSerializer$delegate$_anonymous__xx1qag() {
    var tmp = AddBin_getInstance();
    var tmp$ret$2;
    // Inline function 'kotlin.arrayOf' call
    var tmp$ret$1;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$0;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$0 = [];
    tmp$ret$1 = tmp$ret$0;
    tmp$ret$2 = tmp$ret$1;
    return ObjectSerializer_init_$Create$('AddBin', tmp, tmp$ret$2);
  }
  function AddBin() {
    AddBin_instance = this;
    Message.call(this);
    var tmp = this;
    var tmp_0 = LazyThreadSafetyMode_PUBLICATION_getInstance();
    tmp.e1m_1 = lazy(tmp_0, AddBin$$cachedSerializer$delegate$_anonymous__xx1qag);
  }
  AddBin.prototype.i19 = function () {
    return this.e1m_1.l1();
  };
  AddBin.prototype.f11 = function (typeParamsSerializers) {
    return this.i19();
  };
  AddBin.$metadata$ = objectMeta('AddBin', [SerializerFactory], undefined, {0: AddBin_getInstance}, undefined, Message.prototype);
  var AddBin_instance;
  function AddBin_getInstance() {
    if (AddBin_instance == null)
      new AddBin();
    return AddBin_instance;
  }
  function Companion_19() {
    Companion_instance_19 = this;
  }
  Companion_19.$metadata$ = objectMeta('Companion');
  var Companion_instance_19;
  function Companion_getInstance_20() {
    if (Companion_instance_19 == null)
      new Companion_19();
    return Companion_instance_19;
  }
  function $serializer_18() {
    $serializer_instance_18 = this;
    var tmp0_serialDesc = new PluginGeneratedSerialDescriptor('HighlightMouse', this, 4);
    tmp0_serialDesc.g10('playerId', false);
    tmp0_serialDesc.g10('x', false);
    tmp0_serialDesc.g10('y', false);
    tmp0_serialDesc.g10('state', false);
    this.f1m_1 = tmp0_serialDesc;
  }
  $serializer_18.prototype.bq = function () {
    return this.f1m_1;
  };
  $serializer_18.prototype.x10 = function () {
    var tmp$ret$2;
    // Inline function 'kotlin.arrayOf' call
    var tmp0_arrayOf = [IntSerializer_getInstance(), IntSerializer_getInstance(), IntSerializer_getInstance(), get_nullable(BooleanSerializer_getInstance())];
    var tmp$ret$1;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$0;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$0 = tmp0_arrayOf;
    tmp$ret$1 = tmp$ret$0;
    tmp$ret$2 = tmp$ret$1;
    return tmp$ret$2;
  };
  $serializer_18.prototype.dq = function (decoder) {
    var tmp0_desc = this.f1m_1;
    var tmp1_flag = true;
    var tmp2_index = 0;
    var tmp3_bitMask0 = 0;
    var tmp4_local0 = 0;
    var tmp5_local1 = 0;
    var tmp6_local2 = 0;
    var tmp7_local3 = null;
    var tmp8_input = decoder.it(tmp0_desc);
    if (tmp8_input.wt()) {
      tmp4_local0 = tmp8_input.nt(tmp0_desc, 0);
      tmp3_bitMask0 = tmp3_bitMask0 | 1;
      tmp5_local1 = tmp8_input.nt(tmp0_desc, 1);
      tmp3_bitMask0 = tmp3_bitMask0 | 2;
      tmp6_local2 = tmp8_input.nt(tmp0_desc, 2);
      tmp3_bitMask0 = tmp3_bitMask0 | 4;
      tmp7_local3 = tmp8_input.vt(tmp0_desc, 3, BooleanSerializer_getInstance(), tmp7_local3);
      tmp3_bitMask0 = tmp3_bitMask0 | 8;
    } else
      while (tmp1_flag) {
        tmp2_index = tmp8_input.xt(tmp0_desc);
        switch (tmp2_index) {
          case -1:
            tmp1_flag = false;
            break;
          case 0:
            tmp4_local0 = tmp8_input.nt(tmp0_desc, 0);
            tmp3_bitMask0 = tmp3_bitMask0 | 1;
            break;
          case 1:
            tmp5_local1 = tmp8_input.nt(tmp0_desc, 1);
            tmp3_bitMask0 = tmp3_bitMask0 | 2;
            break;
          case 2:
            tmp6_local2 = tmp8_input.nt(tmp0_desc, 2);
            tmp3_bitMask0 = tmp3_bitMask0 | 4;
            break;
          case 3:
            tmp7_local3 = tmp8_input.vt(tmp0_desc, 3, BooleanSerializer_getInstance(), tmp7_local3);
            tmp3_bitMask0 = tmp3_bitMask0 | 8;
            break;
          default:
            throw UnknownFieldException_init_$Create$(tmp2_index);
        }
      }
    tmp8_input.jt(tmp0_desc);
    return HighlightMouse_init_$Create$(tmp3_bitMask0, tmp4_local0, tmp5_local1, tmp6_local2, tmp7_local3, null);
  };
  $serializer_18.prototype.g1m = function (encoder, value) {
    var tmp0_desc = this.f1m_1;
    var tmp1_output = encoder.it(tmp0_desc);
    tmp1_output.qu(tmp0_desc, 0, value.h1m_1);
    tmp1_output.qu(tmp0_desc, 1, value.i1m_1);
    tmp1_output.qu(tmp0_desc, 2, value.j1m_1);
    tmp1_output.yu(tmp0_desc, 3, BooleanSerializer_getInstance(), value.k1m_1);
    tmp1_output.jt(tmp0_desc);
  };
  $serializer_18.prototype.cq = function (encoder, value) {
    return this.g1m(encoder, value instanceof HighlightMouse ? value : THROW_CCE());
  };
  $serializer_18.$metadata$ = objectMeta('$serializer', [GeneratedSerializer]);
  var $serializer_instance_18;
  function $serializer_getInstance_18() {
    if ($serializer_instance_18 == null)
      new $serializer_18();
    return $serializer_instance_18;
  }
  function HighlightMouse_init_$Init$(seen1, playerId, x, y, state, serializationConstructorMarker, $this) {
    if (!(15 === (15 & seen1))) {
      throwMissingFieldException(seen1, 15, $serializer_getInstance_18().f1m_1);
    }
    Message_init_$Init$(seen1, serializationConstructorMarker, $this);
    $this.h1m_1 = playerId;
    $this.i1m_1 = x;
    $this.j1m_1 = y;
    $this.k1m_1 = state;
    return $this;
  }
  function HighlightMouse_init_$Create$(seen1, playerId, x, y, state, serializationConstructorMarker) {
    return HighlightMouse_init_$Init$(seen1, playerId, x, y, state, serializationConstructorMarker, Object.create(HighlightMouse.prototype));
  }
  function HighlightMouse(playerId, x, y, state) {
    Companion_getInstance_20();
    Message.call(this);
    this.h1m_1 = playerId;
    this.i1m_1 = x;
    this.j1m_1 = y;
    this.k1m_1 = state;
  }
  HighlightMouse.prototype.toString = function () {
    return 'HighlightMouse(playerId=' + this.h1m_1 + ', x=' + this.i1m_1 + ', y=' + this.j1m_1 + ', state=' + this.k1m_1 + ')';
  };
  HighlightMouse.prototype.hashCode = function () {
    var result = this.h1m_1;
    result = imul(result, 31) + this.i1m_1 | 0;
    result = imul(result, 31) + this.j1m_1 | 0;
    result = imul(result, 31) + (this.k1m_1 == null ? 0 : this.k1m_1 | 0) | 0;
    return result;
  };
  HighlightMouse.prototype.equals = function (other) {
    if (this === other)
      return true;
    if (!(other instanceof HighlightMouse))
      return false;
    var tmp0_other_with_cast = other instanceof HighlightMouse ? other : THROW_CCE();
    if (!(this.h1m_1 === tmp0_other_with_cast.h1m_1))
      return false;
    if (!(this.i1m_1 === tmp0_other_with_cast.i1m_1))
      return false;
    if (!(this.j1m_1 === tmp0_other_with_cast.j1m_1))
      return false;
    if (!(this.k1m_1 == tmp0_other_with_cast.k1m_1))
      return false;
    return true;
  };
  HighlightMouse.$metadata$ = classMeta('HighlightMouse', undefined, undefined, {0: $serializer_getInstance_18}, undefined, Message.prototype);
  function ChangeZOrder$Companion$$cachedSerializer$delegate$_anonymous__lgp9o2() {
    return $serializer_getInstance_19();
  }
  var ChangeZOrder_BOTTOM_instance;
  var ChangeZOrder_NO_CHANGE_instance;
  var ChangeZOrder_TOP_instance;
  function Companion_20() {
    Companion_instance_20 = this;
    var tmp = this;
    var tmp_0 = LazyThreadSafetyMode_PUBLICATION_getInstance();
    tmp.l1m_1 = lazy(tmp_0, ChangeZOrder$Companion$$cachedSerializer$delegate$_anonymous__lgp9o2);
  }
  Companion_20.prototype.i19 = function () {
    return this.l1m_1.l1();
  };
  Companion_20.prototype.f11 = function (typeParamsSerializers) {
    return this.i19();
  };
  Companion_20.$metadata$ = objectMeta('Companion', [SerializerFactory]);
  var Companion_instance_20;
  function Companion_getInstance_21() {
    ChangeZOrder_initEntries();
    if (Companion_instance_20 == null)
      new Companion_20();
    return Companion_instance_20;
  }
  function $serializer_19() {
    $serializer_instance_19 = this;
    var tmp0_serialDesc = new EnumDescriptor('ChangeZOrder', 3);
    tmp0_serialDesc.g10('BOTTOM', false);
    tmp0_serialDesc.g10('NO_CHANGE', false);
    tmp0_serialDesc.g10('TOP', false);
    this.m1m_1 = tmp0_serialDesc;
  }
  $serializer_19.prototype.bq = function () {
    return this.m1m_1;
  };
  $serializer_19.prototype.x10 = function () {
    var tmp$ret$2;
    // Inline function 'kotlin.arrayOf' call
    var tmp$ret$1;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$0;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$0 = [];
    tmp$ret$1 = tmp$ret$0;
    tmp$ret$2 = tmp$ret$1;
    return tmp$ret$2;
  };
  $serializer_19.prototype.dq = function (decoder) {
    return values()[decoder.et(this.m1m_1)];
  };
  $serializer_19.prototype.n1m = function (encoder, value) {
    encoder.lu(this.m1m_1, value.q2_1);
  };
  $serializer_19.prototype.cq = function (encoder, value) {
    return this.n1m(encoder, value instanceof ChangeZOrder ? value : THROW_CCE());
  };
  $serializer_19.$metadata$ = objectMeta('$serializer', [GeneratedSerializer]);
  var $serializer_instance_19;
  function $serializer_getInstance_19() {
    ChangeZOrder_initEntries();
    if ($serializer_instance_19 == null)
      new $serializer_19();
    return $serializer_instance_19;
  }
  function values() {
    return [ChangeZOrder_BOTTOM_getInstance(), ChangeZOrder_NO_CHANGE_getInstance(), ChangeZOrder_TOP_getInstance()];
  }
  var ChangeZOrder_entriesInitialized;
  function ChangeZOrder_initEntries() {
    if (ChangeZOrder_entriesInitialized)
      return Unit_getInstance();
    ChangeZOrder_entriesInitialized = true;
    ChangeZOrder_BOTTOM_instance = new ChangeZOrder('BOTTOM', 0);
    ChangeZOrder_NO_CHANGE_instance = new ChangeZOrder('NO_CHANGE', 1);
    ChangeZOrder_TOP_instance = new ChangeZOrder('TOP', 2);
    Companion_getInstance_21();
  }
  function ChangeZOrder(name, ordinal) {
    Enum.call(this, name, ordinal);
  }
  ChangeZOrder.$metadata$ = classMeta('ChangeZOrder', undefined, undefined, {0: $serializer_getInstance_19}, undefined, Enum.prototype);
  function RestoreFromBin$$cachedSerializer$delegate$_anonymous__jny0jz() {
    var tmp = RestoreFromBin_getInstance();
    var tmp$ret$2;
    // Inline function 'kotlin.arrayOf' call
    var tmp$ret$1;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$0;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$0 = [];
    tmp$ret$1 = tmp$ret$0;
    tmp$ret$2 = tmp$ret$1;
    return ObjectSerializer_init_$Create$('RestoreFromBin', tmp, tmp$ret$2);
  }
  function RestoreFromBin() {
    RestoreFromBin_instance = this;
    Message.call(this);
    var tmp = this;
    var tmp_0 = LazyThreadSafetyMode_PUBLICATION_getInstance();
    tmp.o1m_1 = lazy(tmp_0, RestoreFromBin$$cachedSerializer$delegate$_anonymous__jny0jz);
  }
  RestoreFromBin.prototype.i19 = function () {
    return this.o1m_1.l1();
  };
  RestoreFromBin.prototype.f11 = function (typeParamsSerializers) {
    return this.i19();
  };
  RestoreFromBin.$metadata$ = objectMeta('RestoreFromBin', [SerializerFactory], undefined, {0: RestoreFromBin_getInstance}, undefined, Message.prototype);
  var RestoreFromBin_instance;
  function RestoreFromBin_getInstance() {
    if (RestoreFromBin_instance == null)
      new RestoreFromBin();
    return RestoreFromBin_instance;
  }
  function Companion_21() {
    Companion_instance_21 = this;
  }
  Companion_21.$metadata$ = objectMeta('Companion');
  var Companion_instance_21;
  function Companion_getInstance_22() {
    if (Companion_instance_21 == null)
      new Companion_21();
    return Companion_instance_21;
  }
  function $serializer_20() {
    $serializer_instance_20 = this;
    var tmp0_serialDesc = new PluginGeneratedSerialDescriptor('AddToBin', this, 1);
    tmp0_serialDesc.g10('id', false);
    this.p1m_1 = tmp0_serialDesc;
  }
  $serializer_20.prototype.bq = function () {
    return this.p1m_1;
  };
  $serializer_20.prototype.x10 = function () {
    var tmp$ret$2;
    // Inline function 'kotlin.arrayOf' call
    var tmp0_arrayOf = [IntSerializer_getInstance()];
    var tmp$ret$1;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$0;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$0 = tmp0_arrayOf;
    tmp$ret$1 = tmp$ret$0;
    tmp$ret$2 = tmp$ret$1;
    return tmp$ret$2;
  };
  $serializer_20.prototype.dq = function (decoder) {
    var tmp0_desc = this.p1m_1;
    var tmp1_flag = true;
    var tmp2_index = 0;
    var tmp3_bitMask0 = 0;
    var tmp4_local0 = 0;
    var tmp5_input = decoder.it(tmp0_desc);
    if (tmp5_input.wt()) {
      tmp4_local0 = tmp5_input.nt(tmp0_desc, 0);
      tmp3_bitMask0 = tmp3_bitMask0 | 1;
    } else
      while (tmp1_flag) {
        tmp2_index = tmp5_input.xt(tmp0_desc);
        switch (tmp2_index) {
          case -1:
            tmp1_flag = false;
            break;
          case 0:
            tmp4_local0 = tmp5_input.nt(tmp0_desc, 0);
            tmp3_bitMask0 = tmp3_bitMask0 | 1;
            break;
          default:
            throw UnknownFieldException_init_$Create$(tmp2_index);
        }
      }
    tmp5_input.jt(tmp0_desc);
    return AddToBin_init_$Create$(tmp3_bitMask0, tmp4_local0, null);
  };
  $serializer_20.prototype.q1m = function (encoder, value) {
    var tmp0_desc = this.p1m_1;
    var tmp1_output = encoder.it(tmp0_desc);
    tmp1_output.qu(tmp0_desc, 0, value.r1m_1);
    tmp1_output.jt(tmp0_desc);
  };
  $serializer_20.prototype.cq = function (encoder, value) {
    return this.q1m(encoder, value instanceof AddToBin ? value : THROW_CCE());
  };
  $serializer_20.$metadata$ = objectMeta('$serializer', [GeneratedSerializer]);
  var $serializer_instance_20;
  function $serializer_getInstance_20() {
    if ($serializer_instance_20 == null)
      new $serializer_20();
    return $serializer_instance_20;
  }
  function AddToBin_init_$Init$(seen1, id, serializationConstructorMarker, $this) {
    if (!(1 === (1 & seen1))) {
      throwMissingFieldException(seen1, 1, $serializer_getInstance_20().p1m_1);
    }
    Message_init_$Init$(seen1, serializationConstructorMarker, $this);
    $this.r1m_1 = id;
    return $this;
  }
  function AddToBin_init_$Create$(seen1, id, serializationConstructorMarker) {
    return AddToBin_init_$Init$(seen1, id, serializationConstructorMarker, Object.create(AddToBin.prototype));
  }
  function AddToBin(id) {
    Companion_getInstance_22();
    Message.call(this);
    this.r1m_1 = id;
  }
  AddToBin.$metadata$ = classMeta('AddToBin', undefined, undefined, {0: $serializer_getInstance_20}, undefined, Message.prototype);
  function ChangeZOrder_BOTTOM_getInstance() {
    ChangeZOrder_initEntries();
    return ChangeZOrder_BOTTOM_instance;
  }
  function ChangeZOrder_NO_CHANGE_getInstance() {
    ChangeZOrder_initEntries();
    return ChangeZOrder_NO_CHANGE_instance;
  }
  function ChangeZOrder_TOP_getInstance() {
    ChangeZOrder_initEntries();
    return ChangeZOrder_TOP_instance;
  }
  function Companion_22() {
    Companion_instance_22 = this;
  }
  Companion_22.$metadata$ = objectMeta('Companion');
  var Companion_instance_22;
  function Companion_getInstance_23() {
    if (Companion_instance_22 == null)
      new Companion_22();
    return Companion_instance_22;
  }
  function $serializer_21() {
    $serializer_instance_21 = this;
    var tmp0_serialDesc = new PluginGeneratedSerialDescriptor('uk.co.nickthecoder.gamescupboard.common.Avatar', this, 8);
    tmp0_serialDesc.g10('id', false);
    tmp0_serialDesc.g10('x', false);
    tmp0_serialDesc.g10('y', false);
    tmp0_serialDesc.g10('playerId', false);
    tmp0_serialDesc.g10('draggable', true);
    tmp0_serialDesc.g10('privateToPlayerId', true);
    tmp0_serialDesc.g10('draggingByPlayerId', true);
    tmp0_serialDesc.g10('side', true);
    this.s1m_1 = tmp0_serialDesc;
  }
  $serializer_21.prototype.bq = function () {
    return this.s1m_1;
  };
  $serializer_21.prototype.x10 = function () {
    var tmp$ret$2;
    // Inline function 'kotlin.arrayOf' call
    var tmp0_arrayOf = [IntSerializer_getInstance(), IntSerializer_getInstance(), IntSerializer_getInstance(), IntSerializer_getInstance(), BooleanSerializer_getInstance(), get_nullable(IntSerializer_getInstance()), get_nullable(IntSerializer_getInstance()), IntSerializer_getInstance()];
    var tmp$ret$1;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$0;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$0 = tmp0_arrayOf;
    tmp$ret$1 = tmp$ret$0;
    tmp$ret$2 = tmp$ret$1;
    return tmp$ret$2;
  };
  $serializer_21.prototype.dq = function (decoder) {
    var tmp0_desc = this.s1m_1;
    var tmp1_flag = true;
    var tmp2_index = 0;
    var tmp3_bitMask0 = 0;
    var tmp4_local0 = 0;
    var tmp5_local1 = 0;
    var tmp6_local2 = 0;
    var tmp7_local3 = 0;
    var tmp8_local4 = false;
    var tmp9_local5 = null;
    var tmp10_local6 = null;
    var tmp11_local7 = 0;
    var tmp12_input = decoder.it(tmp0_desc);
    if (tmp12_input.wt()) {
      tmp4_local0 = tmp12_input.nt(tmp0_desc, 0);
      tmp3_bitMask0 = tmp3_bitMask0 | 1;
      tmp5_local1 = tmp12_input.nt(tmp0_desc, 1);
      tmp3_bitMask0 = tmp3_bitMask0 | 2;
      tmp6_local2 = tmp12_input.nt(tmp0_desc, 2);
      tmp3_bitMask0 = tmp3_bitMask0 | 4;
      tmp7_local3 = tmp12_input.nt(tmp0_desc, 3);
      tmp3_bitMask0 = tmp3_bitMask0 | 8;
      tmp8_local4 = tmp12_input.kt(tmp0_desc, 4);
      tmp3_bitMask0 = tmp3_bitMask0 | 16;
      tmp9_local5 = tmp12_input.vt(tmp0_desc, 5, IntSerializer_getInstance(), tmp9_local5);
      tmp3_bitMask0 = tmp3_bitMask0 | 32;
      tmp10_local6 = tmp12_input.vt(tmp0_desc, 6, IntSerializer_getInstance(), tmp10_local6);
      tmp3_bitMask0 = tmp3_bitMask0 | 64;
      tmp11_local7 = tmp12_input.nt(tmp0_desc, 7);
      tmp3_bitMask0 = tmp3_bitMask0 | 128;
    } else
      while (tmp1_flag) {
        tmp2_index = tmp12_input.xt(tmp0_desc);
        switch (tmp2_index) {
          case -1:
            tmp1_flag = false;
            break;
          case 0:
            tmp4_local0 = tmp12_input.nt(tmp0_desc, 0);
            tmp3_bitMask0 = tmp3_bitMask0 | 1;
            break;
          case 1:
            tmp5_local1 = tmp12_input.nt(tmp0_desc, 1);
            tmp3_bitMask0 = tmp3_bitMask0 | 2;
            break;
          case 2:
            tmp6_local2 = tmp12_input.nt(tmp0_desc, 2);
            tmp3_bitMask0 = tmp3_bitMask0 | 4;
            break;
          case 3:
            tmp7_local3 = tmp12_input.nt(tmp0_desc, 3);
            tmp3_bitMask0 = tmp3_bitMask0 | 8;
            break;
          case 4:
            tmp8_local4 = tmp12_input.kt(tmp0_desc, 4);
            tmp3_bitMask0 = tmp3_bitMask0 | 16;
            break;
          case 5:
            tmp9_local5 = tmp12_input.vt(tmp0_desc, 5, IntSerializer_getInstance(), tmp9_local5);
            tmp3_bitMask0 = tmp3_bitMask0 | 32;
            break;
          case 6:
            tmp10_local6 = tmp12_input.vt(tmp0_desc, 6, IntSerializer_getInstance(), tmp10_local6);
            tmp3_bitMask0 = tmp3_bitMask0 | 64;
            break;
          case 7:
            tmp11_local7 = tmp12_input.nt(tmp0_desc, 7);
            tmp3_bitMask0 = tmp3_bitMask0 | 128;
            break;
          default:
            throw UnknownFieldException_init_$Create$(tmp2_index);
        }
      }
    tmp12_input.jt(tmp0_desc);
    return Avatar_init_$Create$(tmp3_bitMask0, tmp4_local0, tmp5_local1, tmp6_local2, tmp7_local3, tmp8_local4, tmp9_local5, tmp10_local6, tmp11_local7, null);
  };
  $serializer_21.prototype.t1m = function (encoder, value) {
    var tmp0_desc = this.s1m_1;
    var tmp1_output = encoder.it(tmp0_desc);
    tmp1_output.qu(tmp0_desc, 0, value.u1m_1);
    tmp1_output.qu(tmp0_desc, 1, value.v1m_1);
    tmp1_output.qu(tmp0_desc, 2, value.w1m_1);
    tmp1_output.qu(tmp0_desc, 3, value.x1m_1);
    if (tmp1_output.cv(tmp0_desc, 4) ? true : !(value.y1m_1 === false)) {
      tmp1_output.nu(tmp0_desc, 4, value.y1m_1);
    }
    if (tmp1_output.cv(tmp0_desc, 5) ? true : !(value.z1m_1 == null)) {
      tmp1_output.yu(tmp0_desc, 5, IntSerializer_getInstance(), value.z1m_1);
    }
    if (tmp1_output.cv(tmp0_desc, 6) ? true : !(value.a1n_1 == null)) {
      tmp1_output.yu(tmp0_desc, 6, IntSerializer_getInstance(), value.a1n_1);
    }
    if (tmp1_output.cv(tmp0_desc, 7) ? true : !(value.b1n_1 === 0)) {
      tmp1_output.qu(tmp0_desc, 7, value.b1n_1);
    }
    tmp1_output.jt(tmp0_desc);
  };
  $serializer_21.prototype.cq = function (encoder, value) {
    return this.t1m(encoder, value instanceof Avatar ? value : THROW_CCE());
  };
  $serializer_21.$metadata$ = objectMeta('$serializer', [GeneratedSerializer]);
  var $serializer_instance_21;
  function $serializer_getInstance_21() {
    if ($serializer_instance_21 == null)
      new $serializer_21();
    return $serializer_instance_21;
  }
  function Avatar_init_$Init$(seen1, id, x, y, playerId, draggable, privateToPlayerId, draggingByPlayerId, side, serializationConstructorMarker, $this) {
    if (!(15 === (15 & seen1))) {
      throwMissingFieldException(seen1, 15, $serializer_getInstance_21().s1m_1);
    }
    $this.u1m_1 = id;
    $this.v1m_1 = x;
    $this.w1m_1 = y;
    $this.x1m_1 = playerId;
    if (0 === (seen1 & 16))
      $this.y1m_1 = false;
    else
      $this.y1m_1 = draggable;
    if (0 === (seen1 & 32))
      $this.z1m_1 = null;
    else
      $this.z1m_1 = privateToPlayerId;
    if (0 === (seen1 & 64))
      $this.a1n_1 = null;
    else
      $this.a1n_1 = draggingByPlayerId;
    if (0 === (seen1 & 128))
      $this.b1n_1 = 0;
    else
      $this.b1n_1 = side;
    return $this;
  }
  function Avatar_init_$Create$(seen1, id, x, y, playerId, draggable, privateToPlayerId, draggingByPlayerId, side, serializationConstructorMarker) {
    return Avatar_init_$Init$(seen1, id, x, y, playerId, draggable, privateToPlayerId, draggingByPlayerId, side, serializationConstructorMarker, Object.create(Avatar.prototype));
  }
  function Avatar(id, x, y, playerId, draggable) {
    Companion_getInstance_23();
    this.u1m_1 = id;
    this.v1m_1 = x;
    this.w1m_1 = y;
    this.x1m_1 = playerId;
    this.y1m_1 = draggable;
    this.z1m_1 = null;
    this.a1n_1 = null;
    this.b1n_1 = 0;
  }
  Avatar.prototype.c1n = function () {
    return this.u1m_1;
  };
  Avatar.prototype.d1n = function () {
    return this.v1m_1;
  };
  Avatar.prototype.e1n = function () {
    return this.w1m_1;
  };
  Avatar.prototype.f1n = function () {
    return this.y1m_1;
  };
  Avatar.prototype.t2 = function () {
    return 'avatar' + this.x1m_1;
  };
  Avatar.prototype.g1l = function () {
    return this.z1m_1;
  };
  Avatar.prototype.toString = function () {
    return 'Avatar#' + this.u1m_1 + ' : player#' + this.x1m_1 + ' @ ' + this.v1m_1 + ',' + this.w1m_1;
  };
  Avatar.$metadata$ = classMeta('Avatar', [GameObject], undefined, {0: $serializer_getInstance_21});
  function $serializer_22() {
    $serializer_instance_22 = this;
    var tmp0_serialDesc = new PluginGeneratedSerialDescriptor('uk.co.nickthecoder.gamescupboard.common.CommandButton', this, 4);
    tmp0_serialDesc.g10('label', false);
    tmp0_serialDesc.g10('commandPrototype', false);
    tmp0_serialDesc.g10('x', false);
    tmp0_serialDesc.g10('y', false);
    this.g1n_1 = tmp0_serialDesc;
  }
  $serializer_22.prototype.bq = function () {
    return this.g1n_1;
  };
  $serializer_22.prototype.x10 = function () {
    var tmp$ret$2;
    // Inline function 'kotlin.arrayOf' call
    var tmp0_arrayOf = [StringSerializer_getInstance(), $serializer_getInstance_24(), IntSerializer_getInstance(), IntSerializer_getInstance()];
    var tmp$ret$1;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$0;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$0 = tmp0_arrayOf;
    tmp$ret$1 = tmp$ret$0;
    tmp$ret$2 = tmp$ret$1;
    return tmp$ret$2;
  };
  $serializer_22.prototype.dq = function (decoder) {
    var tmp0_desc = this.g1n_1;
    var tmp1_flag = true;
    var tmp2_index = 0;
    var tmp3_bitMask0 = 0;
    var tmp4_local0 = null;
    var tmp5_local1 = null;
    var tmp6_local2 = 0;
    var tmp7_local3 = 0;
    var tmp8_input = decoder.it(tmp0_desc);
    if (tmp8_input.wt()) {
      tmp4_local0 = tmp8_input.st(tmp0_desc, 0);
      tmp3_bitMask0 = tmp3_bitMask0 | 1;
      tmp5_local1 = tmp8_input.tt(tmp0_desc, 1, $serializer_getInstance_24(), tmp5_local1);
      tmp3_bitMask0 = tmp3_bitMask0 | 2;
      tmp6_local2 = tmp8_input.nt(tmp0_desc, 2);
      tmp3_bitMask0 = tmp3_bitMask0 | 4;
      tmp7_local3 = tmp8_input.nt(tmp0_desc, 3);
      tmp3_bitMask0 = tmp3_bitMask0 | 8;
    } else
      while (tmp1_flag) {
        tmp2_index = tmp8_input.xt(tmp0_desc);
        switch (tmp2_index) {
          case -1:
            tmp1_flag = false;
            break;
          case 0:
            tmp4_local0 = tmp8_input.st(tmp0_desc, 0);
            tmp3_bitMask0 = tmp3_bitMask0 | 1;
            break;
          case 1:
            tmp5_local1 = tmp8_input.tt(tmp0_desc, 1, $serializer_getInstance_24(), tmp5_local1);
            tmp3_bitMask0 = tmp3_bitMask0 | 2;
            break;
          case 2:
            tmp6_local2 = tmp8_input.nt(tmp0_desc, 2);
            tmp3_bitMask0 = tmp3_bitMask0 | 4;
            break;
          case 3:
            tmp7_local3 = tmp8_input.nt(tmp0_desc, 3);
            tmp3_bitMask0 = tmp3_bitMask0 | 8;
            break;
          default:
            throw UnknownFieldException_init_$Create$(tmp2_index);
        }
      }
    tmp8_input.jt(tmp0_desc);
    return CommandButton_init_$Create$(tmp3_bitMask0, tmp4_local0, tmp5_local1, tmp6_local2, tmp7_local3, null);
  };
  $serializer_22.prototype.h1n = function (encoder, value) {
    var tmp0_desc = this.g1n_1;
    var tmp1_output = encoder.it(tmp0_desc);
    tmp1_output.vu(tmp0_desc, 0, value.i1n_1);
    tmp1_output.wu(tmp0_desc, 1, $serializer_getInstance_24(), value.j1n_1);
    tmp1_output.qu(tmp0_desc, 2, value.k1n_1);
    tmp1_output.qu(tmp0_desc, 3, value.l1n_1);
    tmp1_output.jt(tmp0_desc);
  };
  $serializer_22.prototype.cq = function (encoder, value) {
    return this.h1n(encoder, value instanceof CommandButton ? value : THROW_CCE());
  };
  $serializer_22.$metadata$ = objectMeta('$serializer', [GeneratedSerializer]);
  var $serializer_instance_22;
  function $serializer_getInstance_22() {
    if ($serializer_instance_22 == null)
      new $serializer_22();
    return $serializer_instance_22;
  }
  function CommandButton_init_$Init$(seen1, label, commandPrototype, x, y, serializationConstructorMarker, $this) {
    if (!(15 === (15 & seen1))) {
      throwMissingFieldException(seen1, 15, $serializer_getInstance_22().g1n_1);
    }
    $this.i1n_1 = label;
    $this.j1n_1 = commandPrototype;
    $this.k1n_1 = x;
    $this.l1n_1 = y;
    return $this;
  }
  function CommandButton_init_$Create$(seen1, label, commandPrototype, x, y, serializationConstructorMarker) {
    return CommandButton_init_$Init$(seen1, label, commandPrototype, x, y, serializationConstructorMarker, Object.create(CommandButton.prototype));
  }
  function CommandButton() {
  }
  CommandButton.prototype.toString = function () {
    return 'CommandButton(label=' + this.i1n_1 + ', commandPrototype=' + this.j1n_1 + ', x=' + this.k1n_1 + ', y=' + this.l1n_1 + ')';
  };
  CommandButton.prototype.hashCode = function () {
    var result = getStringHashCode(this.i1n_1);
    result = imul(result, 31) + this.j1n_1.hashCode() | 0;
    result = imul(result, 31) + this.k1n_1 | 0;
    result = imul(result, 31) + this.l1n_1 | 0;
    return result;
  };
  CommandButton.prototype.equals = function (other) {
    if (this === other)
      return true;
    if (!(other instanceof CommandButton))
      return false;
    var tmp0_other_with_cast = other instanceof CommandButton ? other : THROW_CCE();
    if (!(this.i1n_1 === tmp0_other_with_cast.i1n_1))
      return false;
    if (!this.j1n_1.equals(tmp0_other_with_cast.j1n_1))
      return false;
    if (!(this.k1n_1 === tmp0_other_with_cast.k1n_1))
      return false;
    if (!(this.l1n_1 === tmp0_other_with_cast.l1n_1))
      return false;
    return true;
  };
  CommandButton.$metadata$ = classMeta('CommandButton', undefined, undefined, {0: $serializer_getInstance_22});
  function $serializer_23() {
    $serializer_instance_23 = this;
    var tmp0_serialDesc = new PluginGeneratedSerialDescriptor('uk.co.nickthecoder.gamescupboard.common.CommandInfo', this, 5);
    tmp0_serialDesc.g10('name', false);
    tmp0_serialDesc.g10('helpText', false);
    tmp0_serialDesc.g10('minParameters', true);
    tmp0_serialDesc.g10('maxParameters', true);
    tmp0_serialDesc.g10('parameterHelp', true);
    this.m1n_1 = tmp0_serialDesc;
  }
  $serializer_23.prototype.bq = function () {
    return this.m1n_1;
  };
  $serializer_23.prototype.x10 = function () {
    var tmp$ret$2;
    // Inline function 'kotlin.arrayOf' call
    var tmp0_arrayOf = [StringSerializer_getInstance(), StringSerializer_getInstance(), IntSerializer_getInstance(), IntSerializer_getInstance(), new ArrayListSerializer(StringSerializer_getInstance())];
    var tmp$ret$1;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$0;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$0 = tmp0_arrayOf;
    tmp$ret$1 = tmp$ret$0;
    tmp$ret$2 = tmp$ret$1;
    return tmp$ret$2;
  };
  $serializer_23.prototype.dq = function (decoder) {
    var tmp0_desc = this.m1n_1;
    var tmp1_flag = true;
    var tmp2_index = 0;
    var tmp3_bitMask0 = 0;
    var tmp4_local0 = null;
    var tmp5_local1 = null;
    var tmp6_local2 = 0;
    var tmp7_local3 = 0;
    var tmp8_local4 = null;
    var tmp9_input = decoder.it(tmp0_desc);
    if (tmp9_input.wt()) {
      tmp4_local0 = tmp9_input.st(tmp0_desc, 0);
      tmp3_bitMask0 = tmp3_bitMask0 | 1;
      tmp5_local1 = tmp9_input.st(tmp0_desc, 1);
      tmp3_bitMask0 = tmp3_bitMask0 | 2;
      tmp6_local2 = tmp9_input.nt(tmp0_desc, 2);
      tmp3_bitMask0 = tmp3_bitMask0 | 4;
      tmp7_local3 = tmp9_input.nt(tmp0_desc, 3);
      tmp3_bitMask0 = tmp3_bitMask0 | 8;
      tmp8_local4 = tmp9_input.tt(tmp0_desc, 4, new ArrayListSerializer(StringSerializer_getInstance()), tmp8_local4);
      tmp3_bitMask0 = tmp3_bitMask0 | 16;
    } else
      while (tmp1_flag) {
        tmp2_index = tmp9_input.xt(tmp0_desc);
        switch (tmp2_index) {
          case -1:
            tmp1_flag = false;
            break;
          case 0:
            tmp4_local0 = tmp9_input.st(tmp0_desc, 0);
            tmp3_bitMask0 = tmp3_bitMask0 | 1;
            break;
          case 1:
            tmp5_local1 = tmp9_input.st(tmp0_desc, 1);
            tmp3_bitMask0 = tmp3_bitMask0 | 2;
            break;
          case 2:
            tmp6_local2 = tmp9_input.nt(tmp0_desc, 2);
            tmp3_bitMask0 = tmp3_bitMask0 | 4;
            break;
          case 3:
            tmp7_local3 = tmp9_input.nt(tmp0_desc, 3);
            tmp3_bitMask0 = tmp3_bitMask0 | 8;
            break;
          case 4:
            tmp8_local4 = tmp9_input.tt(tmp0_desc, 4, new ArrayListSerializer(StringSerializer_getInstance()), tmp8_local4);
            tmp3_bitMask0 = tmp3_bitMask0 | 16;
            break;
          default:
            throw UnknownFieldException_init_$Create$(tmp2_index);
        }
      }
    tmp9_input.jt(tmp0_desc);
    return CommandInfo_init_$Create$(tmp3_bitMask0, tmp4_local0, tmp5_local1, tmp6_local2, tmp7_local3, tmp8_local4, null);
  };
  $serializer_23.prototype.n1n = function (encoder, value) {
    var tmp0_desc = this.m1n_1;
    var tmp1_output = encoder.it(tmp0_desc);
    tmp1_output.vu(tmp0_desc, 0, value.o1n_1);
    tmp1_output.vu(tmp0_desc, 1, value.p1n_1);
    if (tmp1_output.cv(tmp0_desc, 2) ? true : !(value.q1n_1 === 0)) {
      tmp1_output.qu(tmp0_desc, 2, value.q1n_1);
    }
    if (tmp1_output.cv(tmp0_desc, 3) ? true : !(value.r1n_1 === value.q1n_1)) {
      tmp1_output.qu(tmp0_desc, 3, value.r1n_1);
    }
    if (tmp1_output.cv(tmp0_desc, 4) ? true : !equals(value.s1n_1, emptyList())) {
      tmp1_output.wu(tmp0_desc, 4, new ArrayListSerializer(StringSerializer_getInstance()), value.s1n_1);
    }
    tmp1_output.jt(tmp0_desc);
  };
  $serializer_23.prototype.cq = function (encoder, value) {
    return this.n1n(encoder, value instanceof CommandInfo ? value : THROW_CCE());
  };
  $serializer_23.$metadata$ = objectMeta('$serializer', [GeneratedSerializer]);
  var $serializer_instance_23;
  function $serializer_getInstance_23() {
    if ($serializer_instance_23 == null)
      new $serializer_23();
    return $serializer_instance_23;
  }
  function CommandInfo_init_$Init$(seen1, name, helpText, minParameters, maxParameters, parameterHelp, serializationConstructorMarker, $this) {
    if (!(3 === (3 & seen1))) {
      throwMissingFieldException(seen1, 3, $serializer_getInstance_23().m1n_1);
    }
    $this.o1n_1 = name;
    $this.p1n_1 = helpText;
    if (0 === (seen1 & 4))
      $this.q1n_1 = 0;
    else
      $this.q1n_1 = minParameters;
    if (0 === (seen1 & 8))
      $this.r1n_1 = $this.q1n_1;
    else
      $this.r1n_1 = maxParameters;
    if (0 === (seen1 & 16))
      $this.s1n_1 = emptyList();
    else
      $this.s1n_1 = parameterHelp;
    return $this;
  }
  function CommandInfo_init_$Create$(seen1, name, helpText, minParameters, maxParameters, parameterHelp, serializationConstructorMarker) {
    return CommandInfo_init_$Init$(seen1, name, helpText, minParameters, maxParameters, parameterHelp, serializationConstructorMarker, Object.create(CommandInfo.prototype));
  }
  function CommandInfo() {
  }
  CommandInfo.prototype.t2 = function () {
    return this.o1n_1;
  };
  CommandInfo.prototype.t1n = function () {
    return this.p1n_1;
  };
  CommandInfo.prototype.u1n = function () {
    return this.s1n_1;
  };
  CommandInfo.prototype.toString = function () {
    return 'CommandInfo(name=' + this.o1n_1 + ', helpText=' + this.p1n_1 + ', minParameters=' + this.q1n_1 + ', maxParameters=' + this.r1n_1 + ', parameterHelp=' + this.s1n_1 + ')';
  };
  CommandInfo.prototype.hashCode = function () {
    var result = getStringHashCode(this.o1n_1);
    result = imul(result, 31) + getStringHashCode(this.p1n_1) | 0;
    result = imul(result, 31) + this.q1n_1 | 0;
    result = imul(result, 31) + this.r1n_1 | 0;
    result = imul(result, 31) + hashCode(this.s1n_1) | 0;
    return result;
  };
  CommandInfo.prototype.equals = function (other) {
    if (this === other)
      return true;
    if (!(other instanceof CommandInfo))
      return false;
    var tmp0_other_with_cast = other instanceof CommandInfo ? other : THROW_CCE();
    if (!(this.o1n_1 === tmp0_other_with_cast.o1n_1))
      return false;
    if (!(this.p1n_1 === tmp0_other_with_cast.p1n_1))
      return false;
    if (!(this.q1n_1 === tmp0_other_with_cast.q1n_1))
      return false;
    if (!(this.r1n_1 === tmp0_other_with_cast.r1n_1))
      return false;
    if (!equals(this.s1n_1, tmp0_other_with_cast.s1n_1))
      return false;
    return true;
  };
  CommandInfo.$metadata$ = classMeta('CommandInfo', undefined, undefined, {0: $serializer_getInstance_23});
  function $serializer_24() {
    $serializer_instance_24 = this;
    var tmp0_serialDesc = new PluginGeneratedSerialDescriptor('uk.co.nickthecoder.gamescupboard.common.CommandPrototype', this, 5);
    tmp0_serialDesc.g10('label', false);
    tmp0_serialDesc.g10('commandName', false);
    tmp0_serialDesc.g10('parameters', true);
    tmp0_serialDesc.g10('isComplete', true);
    tmp0_serialDesc.g10('objectNames', true);
    this.v1n_1 = tmp0_serialDesc;
  }
  $serializer_24.prototype.bq = function () {
    return this.v1n_1;
  };
  $serializer_24.prototype.x10 = function () {
    var tmp$ret$2;
    // Inline function 'kotlin.arrayOf' call
    var tmp0_arrayOf = [StringSerializer_getInstance(), StringSerializer_getInstance(), new ArrayListSerializer(StringSerializer_getInstance()), BooleanSerializer_getInstance(), new ArrayListSerializer(StringSerializer_getInstance())];
    var tmp$ret$1;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$0;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$0 = tmp0_arrayOf;
    tmp$ret$1 = tmp$ret$0;
    tmp$ret$2 = tmp$ret$1;
    return tmp$ret$2;
  };
  $serializer_24.prototype.dq = function (decoder) {
    var tmp0_desc = this.v1n_1;
    var tmp1_flag = true;
    var tmp2_index = 0;
    var tmp3_bitMask0 = 0;
    var tmp4_local0 = null;
    var tmp5_local1 = null;
    var tmp6_local2 = null;
    var tmp7_local3 = false;
    var tmp8_local4 = null;
    var tmp9_input = decoder.it(tmp0_desc);
    if (tmp9_input.wt()) {
      tmp4_local0 = tmp9_input.st(tmp0_desc, 0);
      tmp3_bitMask0 = tmp3_bitMask0 | 1;
      tmp5_local1 = tmp9_input.st(tmp0_desc, 1);
      tmp3_bitMask0 = tmp3_bitMask0 | 2;
      tmp6_local2 = tmp9_input.tt(tmp0_desc, 2, new ArrayListSerializer(StringSerializer_getInstance()), tmp6_local2);
      tmp3_bitMask0 = tmp3_bitMask0 | 4;
      tmp7_local3 = tmp9_input.kt(tmp0_desc, 3);
      tmp3_bitMask0 = tmp3_bitMask0 | 8;
      tmp8_local4 = tmp9_input.tt(tmp0_desc, 4, new ArrayListSerializer(StringSerializer_getInstance()), tmp8_local4);
      tmp3_bitMask0 = tmp3_bitMask0 | 16;
    } else
      while (tmp1_flag) {
        tmp2_index = tmp9_input.xt(tmp0_desc);
        switch (tmp2_index) {
          case -1:
            tmp1_flag = false;
            break;
          case 0:
            tmp4_local0 = tmp9_input.st(tmp0_desc, 0);
            tmp3_bitMask0 = tmp3_bitMask0 | 1;
            break;
          case 1:
            tmp5_local1 = tmp9_input.st(tmp0_desc, 1);
            tmp3_bitMask0 = tmp3_bitMask0 | 2;
            break;
          case 2:
            tmp6_local2 = tmp9_input.tt(tmp0_desc, 2, new ArrayListSerializer(StringSerializer_getInstance()), tmp6_local2);
            tmp3_bitMask0 = tmp3_bitMask0 | 4;
            break;
          case 3:
            tmp7_local3 = tmp9_input.kt(tmp0_desc, 3);
            tmp3_bitMask0 = tmp3_bitMask0 | 8;
            break;
          case 4:
            tmp8_local4 = tmp9_input.tt(tmp0_desc, 4, new ArrayListSerializer(StringSerializer_getInstance()), tmp8_local4);
            tmp3_bitMask0 = tmp3_bitMask0 | 16;
            break;
          default:
            throw UnknownFieldException_init_$Create$(tmp2_index);
        }
      }
    tmp9_input.jt(tmp0_desc);
    return CommandPrototype_init_$Create$(tmp3_bitMask0, tmp4_local0, tmp5_local1, tmp6_local2, tmp7_local3, tmp8_local4, null);
  };
  $serializer_24.prototype.w1n = function (encoder, value) {
    var tmp0_desc = this.v1n_1;
    var tmp1_output = encoder.it(tmp0_desc);
    tmp1_output.vu(tmp0_desc, 0, value.x1n_1);
    tmp1_output.vu(tmp0_desc, 1, value.y1n_1);
    if (tmp1_output.cv(tmp0_desc, 2) ? true : !equals(value.z1n_1, emptyList())) {
      tmp1_output.wu(tmp0_desc, 2, new ArrayListSerializer(StringSerializer_getInstance()), value.z1n_1);
    }
    if (tmp1_output.cv(tmp0_desc, 3) ? true : !(value.a1o_1 === false)) {
      tmp1_output.nu(tmp0_desc, 3, value.a1o_1);
    }
    if (tmp1_output.cv(tmp0_desc, 4) ? true : !equals(value.b1o_1, emptyList())) {
      tmp1_output.wu(tmp0_desc, 4, new ArrayListSerializer(StringSerializer_getInstance()), value.b1o_1);
    }
    tmp1_output.jt(tmp0_desc);
  };
  $serializer_24.prototype.cq = function (encoder, value) {
    return this.w1n(encoder, value instanceof CommandPrototype ? value : THROW_CCE());
  };
  $serializer_24.$metadata$ = objectMeta('$serializer', [GeneratedSerializer]);
  var $serializer_instance_24;
  function $serializer_getInstance_24() {
    if ($serializer_instance_24 == null)
      new $serializer_24();
    return $serializer_instance_24;
  }
  function CommandPrototype_init_$Init$(seen1, label, commandName, parameters, isComplete, objectNames, serializationConstructorMarker, $this) {
    if (!(3 === (3 & seen1))) {
      throwMissingFieldException(seen1, 3, $serializer_getInstance_24().v1n_1);
    }
    $this.x1n_1 = label;
    $this.y1n_1 = commandName;
    if (0 === (seen1 & 4))
      $this.z1n_1 = emptyList();
    else
      $this.z1n_1 = parameters;
    if (0 === (seen1 & 8))
      $this.a1o_1 = false;
    else
      $this.a1o_1 = isComplete;
    if (0 === (seen1 & 16))
      $this.b1o_1 = emptyList();
    else
      $this.b1o_1 = objectNames;
    return $this;
  }
  function CommandPrototype_init_$Create$(seen1, label, commandName, parameters, isComplete, objectNames, serializationConstructorMarker) {
    return CommandPrototype_init_$Init$(seen1, label, commandName, parameters, isComplete, objectNames, serializationConstructorMarker, Object.create(CommandPrototype.prototype));
  }
  function CommandPrototype() {
  }
  CommandPrototype.prototype.toString = function () {
    return 'CommandPrototype(label=' + this.x1n_1 + ', commandName=' + this.y1n_1 + ', parameters=' + this.z1n_1 + ', isComplete=' + this.a1o_1 + ', objectNames=' + this.b1o_1 + ')';
  };
  CommandPrototype.prototype.hashCode = function () {
    var result = getStringHashCode(this.x1n_1);
    result = imul(result, 31) + getStringHashCode(this.y1n_1) | 0;
    result = imul(result, 31) + hashCode(this.z1n_1) | 0;
    result = imul(result, 31) + (this.a1o_1 | 0) | 0;
    result = imul(result, 31) + hashCode(this.b1o_1) | 0;
    return result;
  };
  CommandPrototype.prototype.equals = function (other) {
    if (this === other)
      return true;
    if (!(other instanceof CommandPrototype))
      return false;
    var tmp0_other_with_cast = other instanceof CommandPrototype ? other : THROW_CCE();
    if (!(this.x1n_1 === tmp0_other_with_cast.x1n_1))
      return false;
    if (!(this.y1n_1 === tmp0_other_with_cast.y1n_1))
      return false;
    if (!equals(this.z1n_1, tmp0_other_with_cast.z1n_1))
      return false;
    if (!(this.a1o_1 === tmp0_other_with_cast.a1o_1))
      return false;
    if (!equals(this.b1o_1, tmp0_other_with_cast.b1o_1))
      return false;
    return true;
  };
  CommandPrototype.$metadata$ = classMeta('CommandPrototype', undefined, undefined, {0: $serializer_getInstance_24});
  function Companion_23() {
    Companion_instance_23 = this;
  }
  Companion_23.$metadata$ = objectMeta('Companion');
  var Companion_instance_23;
  function Companion_getInstance_24() {
    if (Companion_instance_23 == null)
      new Companion_23();
    return Companion_instance_23;
  }
  function $serializer_25() {
    $serializer_instance_25 = this;
    var tmp0_serialDesc = new PluginGeneratedSerialDescriptor('uk.co.nickthecoder.gamescupboard.common.FlippableImageObject', this, 15);
    tmp0_serialDesc.g10('id', false);
    tmp0_serialDesc.g10('x', false);
    tmp0_serialDesc.g10('y', false);
    tmp0_serialDesc.g10('name', true);
    tmp0_serialDesc.g10('draggable', true);
    tmp0_serialDesc.g10('grid', false);
    tmp0_serialDesc.g10('gx', false);
    tmp0_serialDesc.g10('gy', false);
    tmp0_serialDesc.g10('altX', true);
    tmp0_serialDesc.g10('altY', true);
    tmp0_serialDesc.g10('isFaceUp', false);
    tmp0_serialDesc.g10('draggingByPlayerId', true);
    tmp0_serialDesc.g10('privateToPlayerId', true);
    tmp0_serialDesc.g10('regen', true);
    tmp0_serialDesc.g10('isCopy', true);
    this.c1o_1 = tmp0_serialDesc;
  }
  $serializer_25.prototype.bq = function () {
    return this.c1o_1;
  };
  $serializer_25.prototype.x10 = function () {
    var tmp$ret$2;
    // Inline function 'kotlin.arrayOf' call
    var tmp0_arrayOf = [IntSerializer_getInstance(), IntSerializer_getInstance(), IntSerializer_getInstance(), StringSerializer_getInstance(), BooleanSerializer_getInstance(), $serializer_getInstance_26(), IntSerializer_getInstance(), IntSerializer_getInstance(), IntSerializer_getInstance(), IntSerializer_getInstance(), BooleanSerializer_getInstance(), get_nullable(IntSerializer_getInstance()), get_nullable(IntSerializer_getInstance()), BooleanSerializer_getInstance(), BooleanSerializer_getInstance()];
    var tmp$ret$1;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$0;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$0 = tmp0_arrayOf;
    tmp$ret$1 = tmp$ret$0;
    tmp$ret$2 = tmp$ret$1;
    return tmp$ret$2;
  };
  $serializer_25.prototype.dq = function (decoder) {
    var tmp0_desc = this.c1o_1;
    var tmp1_flag = true;
    var tmp2_index = 0;
    var tmp3_bitMask0 = 0;
    var tmp4_local0 = 0;
    var tmp5_local1 = 0;
    var tmp6_local2 = 0;
    var tmp7_local3 = null;
    var tmp8_local4 = false;
    var tmp9_local5 = null;
    var tmp10_local6 = 0;
    var tmp11_local7 = 0;
    var tmp12_local8 = 0;
    var tmp13_local9 = 0;
    var tmp14_local10 = false;
    var tmp15_local11 = null;
    var tmp16_local12 = null;
    var tmp17_local13 = false;
    var tmp18_local14 = false;
    var tmp19_input = decoder.it(tmp0_desc);
    if (tmp19_input.wt()) {
      tmp4_local0 = tmp19_input.nt(tmp0_desc, 0);
      tmp3_bitMask0 = tmp3_bitMask0 | 1;
      tmp5_local1 = tmp19_input.nt(tmp0_desc, 1);
      tmp3_bitMask0 = tmp3_bitMask0 | 2;
      tmp6_local2 = tmp19_input.nt(tmp0_desc, 2);
      tmp3_bitMask0 = tmp3_bitMask0 | 4;
      tmp7_local3 = tmp19_input.st(tmp0_desc, 3);
      tmp3_bitMask0 = tmp3_bitMask0 | 8;
      tmp8_local4 = tmp19_input.kt(tmp0_desc, 4);
      tmp3_bitMask0 = tmp3_bitMask0 | 16;
      tmp9_local5 = tmp19_input.tt(tmp0_desc, 5, $serializer_getInstance_26(), tmp9_local5);
      tmp3_bitMask0 = tmp3_bitMask0 | 32;
      tmp10_local6 = tmp19_input.nt(tmp0_desc, 6);
      tmp3_bitMask0 = tmp3_bitMask0 | 64;
      tmp11_local7 = tmp19_input.nt(tmp0_desc, 7);
      tmp3_bitMask0 = tmp3_bitMask0 | 128;
      tmp12_local8 = tmp19_input.nt(tmp0_desc, 8);
      tmp3_bitMask0 = tmp3_bitMask0 | 256;
      tmp13_local9 = tmp19_input.nt(tmp0_desc, 9);
      tmp3_bitMask0 = tmp3_bitMask0 | 512;
      tmp14_local10 = tmp19_input.kt(tmp0_desc, 10);
      tmp3_bitMask0 = tmp3_bitMask0 | 1024;
      tmp15_local11 = tmp19_input.vt(tmp0_desc, 11, IntSerializer_getInstance(), tmp15_local11);
      tmp3_bitMask0 = tmp3_bitMask0 | 2048;
      tmp16_local12 = tmp19_input.vt(tmp0_desc, 12, IntSerializer_getInstance(), tmp16_local12);
      tmp3_bitMask0 = tmp3_bitMask0 | 4096;
      tmp17_local13 = tmp19_input.kt(tmp0_desc, 13);
      tmp3_bitMask0 = tmp3_bitMask0 | 8192;
      tmp18_local14 = tmp19_input.kt(tmp0_desc, 14);
      tmp3_bitMask0 = tmp3_bitMask0 | 16384;
    } else
      while (tmp1_flag) {
        tmp2_index = tmp19_input.xt(tmp0_desc);
        switch (tmp2_index) {
          case -1:
            tmp1_flag = false;
            break;
          case 0:
            tmp4_local0 = tmp19_input.nt(tmp0_desc, 0);
            tmp3_bitMask0 = tmp3_bitMask0 | 1;
            break;
          case 1:
            tmp5_local1 = tmp19_input.nt(tmp0_desc, 1);
            tmp3_bitMask0 = tmp3_bitMask0 | 2;
            break;
          case 2:
            tmp6_local2 = tmp19_input.nt(tmp0_desc, 2);
            tmp3_bitMask0 = tmp3_bitMask0 | 4;
            break;
          case 3:
            tmp7_local3 = tmp19_input.st(tmp0_desc, 3);
            tmp3_bitMask0 = tmp3_bitMask0 | 8;
            break;
          case 4:
            tmp8_local4 = tmp19_input.kt(tmp0_desc, 4);
            tmp3_bitMask0 = tmp3_bitMask0 | 16;
            break;
          case 5:
            tmp9_local5 = tmp19_input.tt(tmp0_desc, 5, $serializer_getInstance_26(), tmp9_local5);
            tmp3_bitMask0 = tmp3_bitMask0 | 32;
            break;
          case 6:
            tmp10_local6 = tmp19_input.nt(tmp0_desc, 6);
            tmp3_bitMask0 = tmp3_bitMask0 | 64;
            break;
          case 7:
            tmp11_local7 = tmp19_input.nt(tmp0_desc, 7);
            tmp3_bitMask0 = tmp3_bitMask0 | 128;
            break;
          case 8:
            tmp12_local8 = tmp19_input.nt(tmp0_desc, 8);
            tmp3_bitMask0 = tmp3_bitMask0 | 256;
            break;
          case 9:
            tmp13_local9 = tmp19_input.nt(tmp0_desc, 9);
            tmp3_bitMask0 = tmp3_bitMask0 | 512;
            break;
          case 10:
            tmp14_local10 = tmp19_input.kt(tmp0_desc, 10);
            tmp3_bitMask0 = tmp3_bitMask0 | 1024;
            break;
          case 11:
            tmp15_local11 = tmp19_input.vt(tmp0_desc, 11, IntSerializer_getInstance(), tmp15_local11);
            tmp3_bitMask0 = tmp3_bitMask0 | 2048;
            break;
          case 12:
            tmp16_local12 = tmp19_input.vt(tmp0_desc, 12, IntSerializer_getInstance(), tmp16_local12);
            tmp3_bitMask0 = tmp3_bitMask0 | 4096;
            break;
          case 13:
            tmp17_local13 = tmp19_input.kt(tmp0_desc, 13);
            tmp3_bitMask0 = tmp3_bitMask0 | 8192;
            break;
          case 14:
            tmp18_local14 = tmp19_input.kt(tmp0_desc, 14);
            tmp3_bitMask0 = tmp3_bitMask0 | 16384;
            break;
          default:
            throw UnknownFieldException_init_$Create$(tmp2_index);
        }
      }
    tmp19_input.jt(tmp0_desc);
    return FlippableImageObject_init_$Create$(tmp3_bitMask0, tmp4_local0, tmp5_local1, tmp6_local2, tmp7_local3, tmp8_local4, tmp9_local5, tmp10_local6, tmp11_local7, tmp12_local8, tmp13_local9, tmp14_local10, tmp15_local11, tmp16_local12, tmp17_local13, tmp18_local14, null);
  };
  $serializer_25.prototype.d1o = function (encoder, value) {
    var tmp0_desc = this.c1o_1;
    var tmp1_output = encoder.it(tmp0_desc);
    tmp1_output.qu(tmp0_desc, 0, value.e1o_1);
    tmp1_output.qu(tmp0_desc, 1, value.f1o_1);
    tmp1_output.qu(tmp0_desc, 2, value.g1o_1);
    if (tmp1_output.cv(tmp0_desc, 3) ? true : !(value.h1o_1 === '')) {
      tmp1_output.vu(tmp0_desc, 3, value.h1o_1);
    }
    if (tmp1_output.cv(tmp0_desc, 4) ? true : !(value.i1o_1 === true)) {
      tmp1_output.nu(tmp0_desc, 4, value.i1o_1);
    }
    tmp1_output.wu(tmp0_desc, 5, $serializer_getInstance_26(), value.j1o_1);
    tmp1_output.qu(tmp0_desc, 6, value.k1o_1);
    tmp1_output.qu(tmp0_desc, 7, value.l1o_1);
    if (tmp1_output.cv(tmp0_desc, 8) ? true : !(value.m1o_1 === value.k1o_1)) {
      tmp1_output.qu(tmp0_desc, 8, value.m1o_1);
    }
    if (tmp1_output.cv(tmp0_desc, 9) ? true : !(value.n1o_1 === value.l1o_1)) {
      tmp1_output.qu(tmp0_desc, 9, value.n1o_1);
    }
    tmp1_output.nu(tmp0_desc, 10, value.o1o_1);
    if (tmp1_output.cv(tmp0_desc, 11) ? true : !(value.p1o_1 == null)) {
      tmp1_output.yu(tmp0_desc, 11, IntSerializer_getInstance(), value.p1o_1);
    }
    if (tmp1_output.cv(tmp0_desc, 12) ? true : !(value.q1o_1 == null)) {
      tmp1_output.yu(tmp0_desc, 12, IntSerializer_getInstance(), value.q1o_1);
    }
    if (tmp1_output.cv(tmp0_desc, 13) ? true : !(value.r1o_1 === false)) {
      tmp1_output.nu(tmp0_desc, 13, value.r1o_1);
    }
    if (tmp1_output.cv(tmp0_desc, 14) ? true : !(value.s1o_1 === false)) {
      tmp1_output.nu(tmp0_desc, 14, value.s1o_1);
    }
    tmp1_output.jt(tmp0_desc);
  };
  $serializer_25.prototype.cq = function (encoder, value) {
    return this.d1o(encoder, value instanceof FlippableImageObject ? value : THROW_CCE());
  };
  $serializer_25.$metadata$ = objectMeta('$serializer', [GeneratedSerializer]);
  var $serializer_instance_25;
  function $serializer_getInstance_25() {
    if ($serializer_instance_25 == null)
      new $serializer_25();
    return $serializer_instance_25;
  }
  function FlippableImageObject_init_$Init$(seen1, id, x, y, name, draggable, grid, gx, gy, altX, altY, isFaceUp, draggingByPlayerId, privateToPlayerId, regen, isCopy, serializationConstructorMarker, $this) {
    if (!(1255 === (1255 & seen1))) {
      throwMissingFieldException(seen1, 1255, $serializer_getInstance_25().c1o_1);
    }
    $this.e1o_1 = id;
    $this.f1o_1 = x;
    $this.g1o_1 = y;
    if (0 === (seen1 & 8))
      $this.h1o_1 = '';
    else
      $this.h1o_1 = name;
    if (0 === (seen1 & 16))
      $this.i1o_1 = true;
    else
      $this.i1o_1 = draggable;
    $this.j1o_1 = grid;
    $this.k1o_1 = gx;
    $this.l1o_1 = gy;
    if (0 === (seen1 & 256))
      $this.m1o_1 = $this.k1o_1;
    else
      $this.m1o_1 = altX;
    if (0 === (seen1 & 512))
      $this.n1o_1 = $this.l1o_1;
    else
      $this.n1o_1 = altY;
    $this.o1o_1 = isFaceUp;
    if (0 === (seen1 & 2048))
      $this.p1o_1 = null;
    else
      $this.p1o_1 = draggingByPlayerId;
    if (0 === (seen1 & 4096))
      $this.q1o_1 = null;
    else
      $this.q1o_1 = privateToPlayerId;
    if (0 === (seen1 & 8192))
      $this.r1o_1 = false;
    else
      $this.r1o_1 = regen;
    if (0 === (seen1 & 16384))
      $this.s1o_1 = false;
    else
      $this.s1o_1 = isCopy;
    return $this;
  }
  function FlippableImageObject_init_$Create$(seen1, id, x, y, name, draggable, grid, gx, gy, altX, altY, isFaceUp, draggingByPlayerId, privateToPlayerId, regen, isCopy, serializationConstructorMarker) {
    return FlippableImageObject_init_$Init$(seen1, id, x, y, name, draggable, grid, gx, gy, altX, altY, isFaceUp, draggingByPlayerId, privateToPlayerId, regen, isCopy, serializationConstructorMarker, Object.create(FlippableImageObject.prototype));
  }
  function FlippableImageObject(id, x, y, name, draggable, grid, gx, gy, altX, altY, isFaceUp) {
    Companion_getInstance_24();
    this.e1o_1 = id;
    this.f1o_1 = x;
    this.g1o_1 = y;
    this.h1o_1 = name;
    this.i1o_1 = draggable;
    this.j1o_1 = grid;
    this.k1o_1 = gx;
    this.l1o_1 = gy;
    this.m1o_1 = altX;
    this.n1o_1 = altY;
    this.o1o_1 = isFaceUp;
    this.p1o_1 = null;
    this.q1o_1 = null;
    this.r1o_1 = false;
    this.s1o_1 = false;
  }
  FlippableImageObject.prototype.c1n = function () {
    return this.e1o_1;
  };
  FlippableImageObject.prototype.d1n = function () {
    return this.f1o_1;
  };
  FlippableImageObject.prototype.e1n = function () {
    return this.g1o_1;
  };
  FlippableImageObject.prototype.t2 = function () {
    return this.h1o_1;
  };
  FlippableImageObject.prototype.f1n = function () {
    return this.i1o_1;
  };
  FlippableImageObject.prototype.g1l = function () {
    return this.q1o_1;
  };
  FlippableImageObject.prototype.t1o = function () {
    return this.r1o_1;
  };
  FlippableImageObject.prototype.toString = function () {
    return 'FlippableImage#' + this.e1o_1 + " : '" + this.j1o_1.v1o_1 + "' @ " + this.f1o_1 + ',' + this.g1o_1;
  };
  FlippableImageObject.$metadata$ = classMeta('FlippableImageObject', [GameObject, RegenGameObject], undefined, {0: $serializer_getInstance_25});
  function Companion_24() {
    Companion_instance_24 = this;
  }
  Companion_24.prototype.i19 = function () {
    var tmp = getKClass(GameObject);
    var tmp$ret$2;
    // Inline function 'kotlin.arrayOf' call
    var tmp0_arrayOf = [getKClass(Avatar), getKClass(FlippableImageObject), getKClass(GridImageObject), getKClass(ImageObject), getKClass(MultipleGridImageObject), getKClass(PieceAtPointCounter), getKClass(FlippableImageObject), getKClass(ImageObject), getKClass(TextObject)];
    var tmp$ret$1;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$0;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$0 = tmp0_arrayOf;
    tmp$ret$1 = tmp$ret$0;
    tmp$ret$2 = tmp$ret$1;
    var tmp_0 = tmp$ret$2;
    var tmp$ret$5;
    // Inline function 'kotlin.arrayOf' call
    var tmp1_arrayOf = [$serializer_getInstance_21(), $serializer_getInstance_25(), $serializer_getInstance_27(), $serializer_getInstance_28(), $serializer_getInstance_29(), $serializer_getInstance_30(), $serializer_getInstance_25(), $serializer_getInstance_28(), $serializer_getInstance_37()];
    var tmp$ret$4;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$3;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$3 = tmp1_arrayOf;
    tmp$ret$4 = tmp$ret$3;
    tmp$ret$5 = tmp$ret$4;
    var tmp_1 = tmp$ret$5;
    var tmp$ret$8;
    // Inline function 'kotlin.arrayOf' call
    var tmp$ret$7;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$6;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$6 = [];
    tmp$ret$7 = tmp$ret$6;
    tmp$ret$8 = tmp$ret$7;
    return SealedClassSerializer_init_$Create$('uk.co.nickthecoder.gamescupboard.common.GameObject', tmp, tmp_0, tmp_1, tmp$ret$8);
  };
  Companion_24.prototype.f11 = function (typeParamsSerializers) {
    return this.i19();
  };
  Companion_24.$metadata$ = objectMeta('Companion', [SerializerFactory]);
  var Companion_instance_24;
  function Companion_getInstance_25() {
    if (Companion_instance_24 == null)
      new Companion_24();
    return Companion_instance_24;
  }
  function GameObject() {
    Companion_getInstance_25();
  }
  GameObject.$metadata$ = interfaceMeta('GameObject', undefined, undefined, {0: Companion_getInstance_25});
  function RegenGameObject() {
  }
  RegenGameObject.$metadata$ = interfaceMeta('RegenGameObject', [GameObject]);
  function $serializer_26() {
    $serializer_instance_26 = this;
    var tmp0_serialDesc = new PluginGeneratedSerialDescriptor('uk.co.nickthecoder.gamescupboard.common.Grid', this, 6);
    tmp0_serialDesc.g10('name', false);
    tmp0_serialDesc.g10('path', false);
    tmp0_serialDesc.g10('across', false);
    tmp0_serialDesc.g10('down', false);
    tmp0_serialDesc.g10('itemWidth', false);
    tmp0_serialDesc.g10('itemHeight', false);
    this.a1p_1 = tmp0_serialDesc;
  }
  $serializer_26.prototype.bq = function () {
    return this.a1p_1;
  };
  $serializer_26.prototype.x10 = function () {
    var tmp$ret$2;
    // Inline function 'kotlin.arrayOf' call
    var tmp0_arrayOf = [StringSerializer_getInstance(), StringSerializer_getInstance(), IntSerializer_getInstance(), IntSerializer_getInstance(), IntSerializer_getInstance(), IntSerializer_getInstance()];
    var tmp$ret$1;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$0;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$0 = tmp0_arrayOf;
    tmp$ret$1 = tmp$ret$0;
    tmp$ret$2 = tmp$ret$1;
    return tmp$ret$2;
  };
  $serializer_26.prototype.dq = function (decoder) {
    var tmp0_desc = this.a1p_1;
    var tmp1_flag = true;
    var tmp2_index = 0;
    var tmp3_bitMask0 = 0;
    var tmp4_local0 = null;
    var tmp5_local1 = null;
    var tmp6_local2 = 0;
    var tmp7_local3 = 0;
    var tmp8_local4 = 0;
    var tmp9_local5 = 0;
    var tmp10_input = decoder.it(tmp0_desc);
    if (tmp10_input.wt()) {
      tmp4_local0 = tmp10_input.st(tmp0_desc, 0);
      tmp3_bitMask0 = tmp3_bitMask0 | 1;
      tmp5_local1 = tmp10_input.st(tmp0_desc, 1);
      tmp3_bitMask0 = tmp3_bitMask0 | 2;
      tmp6_local2 = tmp10_input.nt(tmp0_desc, 2);
      tmp3_bitMask0 = tmp3_bitMask0 | 4;
      tmp7_local3 = tmp10_input.nt(tmp0_desc, 3);
      tmp3_bitMask0 = tmp3_bitMask0 | 8;
      tmp8_local4 = tmp10_input.nt(tmp0_desc, 4);
      tmp3_bitMask0 = tmp3_bitMask0 | 16;
      tmp9_local5 = tmp10_input.nt(tmp0_desc, 5);
      tmp3_bitMask0 = tmp3_bitMask0 | 32;
    } else
      while (tmp1_flag) {
        tmp2_index = tmp10_input.xt(tmp0_desc);
        switch (tmp2_index) {
          case -1:
            tmp1_flag = false;
            break;
          case 0:
            tmp4_local0 = tmp10_input.st(tmp0_desc, 0);
            tmp3_bitMask0 = tmp3_bitMask0 | 1;
            break;
          case 1:
            tmp5_local1 = tmp10_input.st(tmp0_desc, 1);
            tmp3_bitMask0 = tmp3_bitMask0 | 2;
            break;
          case 2:
            tmp6_local2 = tmp10_input.nt(tmp0_desc, 2);
            tmp3_bitMask0 = tmp3_bitMask0 | 4;
            break;
          case 3:
            tmp7_local3 = tmp10_input.nt(tmp0_desc, 3);
            tmp3_bitMask0 = tmp3_bitMask0 | 8;
            break;
          case 4:
            tmp8_local4 = tmp10_input.nt(tmp0_desc, 4);
            tmp3_bitMask0 = tmp3_bitMask0 | 16;
            break;
          case 5:
            tmp9_local5 = tmp10_input.nt(tmp0_desc, 5);
            tmp3_bitMask0 = tmp3_bitMask0 | 32;
            break;
          default:
            throw UnknownFieldException_init_$Create$(tmp2_index);
        }
      }
    tmp10_input.jt(tmp0_desc);
    return Grid_init_$Create$(tmp3_bitMask0, tmp4_local0, tmp5_local1, tmp6_local2, tmp7_local3, tmp8_local4, tmp9_local5, null);
  };
  $serializer_26.prototype.b1p = function (encoder, value) {
    var tmp0_desc = this.a1p_1;
    var tmp1_output = encoder.it(tmp0_desc);
    tmp1_output.vu(tmp0_desc, 0, value.u1o_1);
    tmp1_output.vu(tmp0_desc, 1, value.v1o_1);
    tmp1_output.qu(tmp0_desc, 2, value.w1o_1);
    tmp1_output.qu(tmp0_desc, 3, value.x1o_1);
    tmp1_output.qu(tmp0_desc, 4, value.y1o_1);
    tmp1_output.qu(tmp0_desc, 5, value.z1o_1);
    tmp1_output.jt(tmp0_desc);
  };
  $serializer_26.prototype.cq = function (encoder, value) {
    return this.b1p(encoder, value instanceof Grid ? value : THROW_CCE());
  };
  $serializer_26.$metadata$ = objectMeta('$serializer', [GeneratedSerializer]);
  var $serializer_instance_26;
  function $serializer_getInstance_26() {
    if ($serializer_instance_26 == null)
      new $serializer_26();
    return $serializer_instance_26;
  }
  function Grid_init_$Init$(seen1, name, path, across, down, itemWidth, itemHeight, serializationConstructorMarker, $this) {
    if (!(63 === (63 & seen1))) {
      throwMissingFieldException(seen1, 63, $serializer_getInstance_26().a1p_1);
    }
    $this.u1o_1 = name;
    $this.v1o_1 = path;
    $this.w1o_1 = across;
    $this.x1o_1 = down;
    $this.y1o_1 = itemWidth;
    $this.z1o_1 = itemHeight;
    return $this;
  }
  function Grid_init_$Create$(seen1, name, path, across, down, itemWidth, itemHeight, serializationConstructorMarker) {
    return Grid_init_$Init$(seen1, name, path, across, down, itemWidth, itemHeight, serializationConstructorMarker, Object.create(Grid.prototype));
  }
  function Grid() {
  }
  Grid.prototype.toString = function () {
    return 'Grid(name=' + this.u1o_1 + ', path=' + this.v1o_1 + ', across=' + this.w1o_1 + ', down=' + this.x1o_1 + ', itemWidth=' + this.y1o_1 + ', itemHeight=' + this.z1o_1 + ')';
  };
  Grid.prototype.hashCode = function () {
    var result = getStringHashCode(this.u1o_1);
    result = imul(result, 31) + getStringHashCode(this.v1o_1) | 0;
    result = imul(result, 31) + this.w1o_1 | 0;
    result = imul(result, 31) + this.x1o_1 | 0;
    result = imul(result, 31) + this.y1o_1 | 0;
    result = imul(result, 31) + this.z1o_1 | 0;
    return result;
  };
  Grid.prototype.equals = function (other) {
    if (this === other)
      return true;
    if (!(other instanceof Grid))
      return false;
    var tmp0_other_with_cast = other instanceof Grid ? other : THROW_CCE();
    if (!(this.u1o_1 === tmp0_other_with_cast.u1o_1))
      return false;
    if (!(this.v1o_1 === tmp0_other_with_cast.v1o_1))
      return false;
    if (!(this.w1o_1 === tmp0_other_with_cast.w1o_1))
      return false;
    if (!(this.x1o_1 === tmp0_other_with_cast.x1o_1))
      return false;
    if (!(this.y1o_1 === tmp0_other_with_cast.y1o_1))
      return false;
    if (!(this.z1o_1 === tmp0_other_with_cast.z1o_1))
      return false;
    return true;
  };
  Grid.$metadata$ = classMeta('Grid', undefined, undefined, {0: $serializer_getInstance_26});
  function Companion_25() {
    Companion_instance_25 = this;
  }
  Companion_25.$metadata$ = objectMeta('Companion');
  var Companion_instance_25;
  function Companion_getInstance_26() {
    if (Companion_instance_25 == null)
      new Companion_25();
    return Companion_instance_25;
  }
  function $serializer_27() {
    $serializer_instance_27 = this;
    var tmp0_serialDesc = new PluginGeneratedSerialDescriptor('uk.co.nickthecoder.gamescupboard.common.GridImageObject', this, 10);
    tmp0_serialDesc.g10('id', false);
    tmp0_serialDesc.g10('x', false);
    tmp0_serialDesc.g10('y', false);
    tmp0_serialDesc.g10('name', true);
    tmp0_serialDesc.g10('draggable', true);
    tmp0_serialDesc.g10('grid', false);
    tmp0_serialDesc.g10('gx', false);
    tmp0_serialDesc.g10('gy', false);
    tmp0_serialDesc.g10('draggingByPlayerId', true);
    tmp0_serialDesc.g10('privateToPlayerId', true);
    this.c1p_1 = tmp0_serialDesc;
  }
  $serializer_27.prototype.bq = function () {
    return this.c1p_1;
  };
  $serializer_27.prototype.x10 = function () {
    var tmp$ret$2;
    // Inline function 'kotlin.arrayOf' call
    var tmp0_arrayOf = [IntSerializer_getInstance(), IntSerializer_getInstance(), IntSerializer_getInstance(), StringSerializer_getInstance(), BooleanSerializer_getInstance(), $serializer_getInstance_26(), IntSerializer_getInstance(), IntSerializer_getInstance(), get_nullable(IntSerializer_getInstance()), get_nullable(IntSerializer_getInstance())];
    var tmp$ret$1;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$0;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$0 = tmp0_arrayOf;
    tmp$ret$1 = tmp$ret$0;
    tmp$ret$2 = tmp$ret$1;
    return tmp$ret$2;
  };
  $serializer_27.prototype.dq = function (decoder) {
    var tmp0_desc = this.c1p_1;
    var tmp1_flag = true;
    var tmp2_index = 0;
    var tmp3_bitMask0 = 0;
    var tmp4_local0 = 0;
    var tmp5_local1 = 0;
    var tmp6_local2 = 0;
    var tmp7_local3 = null;
    var tmp8_local4 = false;
    var tmp9_local5 = null;
    var tmp10_local6 = 0;
    var tmp11_local7 = 0;
    var tmp12_local8 = null;
    var tmp13_local9 = null;
    var tmp14_input = decoder.it(tmp0_desc);
    if (tmp14_input.wt()) {
      tmp4_local0 = tmp14_input.nt(tmp0_desc, 0);
      tmp3_bitMask0 = tmp3_bitMask0 | 1;
      tmp5_local1 = tmp14_input.nt(tmp0_desc, 1);
      tmp3_bitMask0 = tmp3_bitMask0 | 2;
      tmp6_local2 = tmp14_input.nt(tmp0_desc, 2);
      tmp3_bitMask0 = tmp3_bitMask0 | 4;
      tmp7_local3 = tmp14_input.st(tmp0_desc, 3);
      tmp3_bitMask0 = tmp3_bitMask0 | 8;
      tmp8_local4 = tmp14_input.kt(tmp0_desc, 4);
      tmp3_bitMask0 = tmp3_bitMask0 | 16;
      tmp9_local5 = tmp14_input.tt(tmp0_desc, 5, $serializer_getInstance_26(), tmp9_local5);
      tmp3_bitMask0 = tmp3_bitMask0 | 32;
      tmp10_local6 = tmp14_input.nt(tmp0_desc, 6);
      tmp3_bitMask0 = tmp3_bitMask0 | 64;
      tmp11_local7 = tmp14_input.nt(tmp0_desc, 7);
      tmp3_bitMask0 = tmp3_bitMask0 | 128;
      tmp12_local8 = tmp14_input.vt(tmp0_desc, 8, IntSerializer_getInstance(), tmp12_local8);
      tmp3_bitMask0 = tmp3_bitMask0 | 256;
      tmp13_local9 = tmp14_input.vt(tmp0_desc, 9, IntSerializer_getInstance(), tmp13_local9);
      tmp3_bitMask0 = tmp3_bitMask0 | 512;
    } else
      while (tmp1_flag) {
        tmp2_index = tmp14_input.xt(tmp0_desc);
        switch (tmp2_index) {
          case -1:
            tmp1_flag = false;
            break;
          case 0:
            tmp4_local0 = tmp14_input.nt(tmp0_desc, 0);
            tmp3_bitMask0 = tmp3_bitMask0 | 1;
            break;
          case 1:
            tmp5_local1 = tmp14_input.nt(tmp0_desc, 1);
            tmp3_bitMask0 = tmp3_bitMask0 | 2;
            break;
          case 2:
            tmp6_local2 = tmp14_input.nt(tmp0_desc, 2);
            tmp3_bitMask0 = tmp3_bitMask0 | 4;
            break;
          case 3:
            tmp7_local3 = tmp14_input.st(tmp0_desc, 3);
            tmp3_bitMask0 = tmp3_bitMask0 | 8;
            break;
          case 4:
            tmp8_local4 = tmp14_input.kt(tmp0_desc, 4);
            tmp3_bitMask0 = tmp3_bitMask0 | 16;
            break;
          case 5:
            tmp9_local5 = tmp14_input.tt(tmp0_desc, 5, $serializer_getInstance_26(), tmp9_local5);
            tmp3_bitMask0 = tmp3_bitMask0 | 32;
            break;
          case 6:
            tmp10_local6 = tmp14_input.nt(tmp0_desc, 6);
            tmp3_bitMask0 = tmp3_bitMask0 | 64;
            break;
          case 7:
            tmp11_local7 = tmp14_input.nt(tmp0_desc, 7);
            tmp3_bitMask0 = tmp3_bitMask0 | 128;
            break;
          case 8:
            tmp12_local8 = tmp14_input.vt(tmp0_desc, 8, IntSerializer_getInstance(), tmp12_local8);
            tmp3_bitMask0 = tmp3_bitMask0 | 256;
            break;
          case 9:
            tmp13_local9 = tmp14_input.vt(tmp0_desc, 9, IntSerializer_getInstance(), tmp13_local9);
            tmp3_bitMask0 = tmp3_bitMask0 | 512;
            break;
          default:
            throw UnknownFieldException_init_$Create$(tmp2_index);
        }
      }
    tmp14_input.jt(tmp0_desc);
    return GridImageObject_init_$Create$(tmp3_bitMask0, tmp4_local0, tmp5_local1, tmp6_local2, tmp7_local3, tmp8_local4, tmp9_local5, tmp10_local6, tmp11_local7, tmp12_local8, tmp13_local9, null);
  };
  $serializer_27.prototype.d1p = function (encoder, value) {
    var tmp0_desc = this.c1p_1;
    var tmp1_output = encoder.it(tmp0_desc);
    tmp1_output.qu(tmp0_desc, 0, value.e1p_1);
    tmp1_output.qu(tmp0_desc, 1, value.f1p_1);
    tmp1_output.qu(tmp0_desc, 2, value.g1p_1);
    if (tmp1_output.cv(tmp0_desc, 3) ? true : !(value.h1p_1 === '')) {
      tmp1_output.vu(tmp0_desc, 3, value.h1p_1);
    }
    if (tmp1_output.cv(tmp0_desc, 4) ? true : !(value.i1p_1 === true)) {
      tmp1_output.nu(tmp0_desc, 4, value.i1p_1);
    }
    tmp1_output.wu(tmp0_desc, 5, $serializer_getInstance_26(), value.j1p_1);
    tmp1_output.qu(tmp0_desc, 6, value.k1p_1);
    tmp1_output.qu(tmp0_desc, 7, value.l1p_1);
    if (tmp1_output.cv(tmp0_desc, 8) ? true : !(value.m1p_1 == null)) {
      tmp1_output.yu(tmp0_desc, 8, IntSerializer_getInstance(), value.m1p_1);
    }
    if (tmp1_output.cv(tmp0_desc, 9) ? true : !(value.n1p_1 == null)) {
      tmp1_output.yu(tmp0_desc, 9, IntSerializer_getInstance(), value.n1p_1);
    }
    tmp1_output.jt(tmp0_desc);
  };
  $serializer_27.prototype.cq = function (encoder, value) {
    return this.d1p(encoder, value instanceof GridImageObject ? value : THROW_CCE());
  };
  $serializer_27.$metadata$ = objectMeta('$serializer', [GeneratedSerializer]);
  var $serializer_instance_27;
  function $serializer_getInstance_27() {
    if ($serializer_instance_27 == null)
      new $serializer_27();
    return $serializer_instance_27;
  }
  function GridImageObject_init_$Init$(seen1, id, x, y, name, draggable, grid, gx, gy, draggingByPlayerId, privateToPlayerId, serializationConstructorMarker, $this) {
    if (!(231 === (231 & seen1))) {
      throwMissingFieldException(seen1, 231, $serializer_getInstance_27().c1p_1);
    }
    $this.e1p_1 = id;
    $this.f1p_1 = x;
    $this.g1p_1 = y;
    if (0 === (seen1 & 8))
      $this.h1p_1 = '';
    else
      $this.h1p_1 = name;
    if (0 === (seen1 & 16))
      $this.i1p_1 = true;
    else
      $this.i1p_1 = draggable;
    $this.j1p_1 = grid;
    $this.k1p_1 = gx;
    $this.l1p_1 = gy;
    if (0 === (seen1 & 256))
      $this.m1p_1 = null;
    else
      $this.m1p_1 = draggingByPlayerId;
    if (0 === (seen1 & 512))
      $this.n1p_1 = null;
    else
      $this.n1p_1 = privateToPlayerId;
    return $this;
  }
  function GridImageObject_init_$Create$(seen1, id, x, y, name, draggable, grid, gx, gy, draggingByPlayerId, privateToPlayerId, serializationConstructorMarker) {
    return GridImageObject_init_$Init$(seen1, id, x, y, name, draggable, grid, gx, gy, draggingByPlayerId, privateToPlayerId, serializationConstructorMarker, Object.create(GridImageObject.prototype));
  }
  function GridImageObject(id, x, y, name, draggable, grid, gx, gy) {
    Companion_getInstance_26();
    this.e1p_1 = id;
    this.f1p_1 = x;
    this.g1p_1 = y;
    this.h1p_1 = name;
    this.i1p_1 = draggable;
    this.j1p_1 = grid;
    this.k1p_1 = gx;
    this.l1p_1 = gy;
    this.m1p_1 = null;
    this.n1p_1 = null;
  }
  GridImageObject.prototype.c1n = function () {
    return this.e1p_1;
  };
  GridImageObject.prototype.d1n = function () {
    return this.f1p_1;
  };
  GridImageObject.prototype.e1n = function () {
    return this.g1p_1;
  };
  GridImageObject.prototype.t2 = function () {
    return this.h1p_1;
  };
  GridImageObject.prototype.f1n = function () {
    return this.i1p_1;
  };
  GridImageObject.prototype.g1l = function () {
    return this.n1p_1;
  };
  GridImageObject.prototype.toString = function () {
    return 'GridImage#' + this.e1p_1 + ' : ' + this.h1p_1 + ' @ ' + this.f1p_1 + ',' + this.g1p_1;
  };
  GridImageObject.$metadata$ = classMeta('GridImageObject', [GameObject], undefined, {0: $serializer_getInstance_27});
  function Companion_26() {
    Companion_instance_26 = this;
  }
  Companion_26.$metadata$ = objectMeta('Companion');
  var Companion_instance_26;
  function Companion_getInstance_27() {
    if (Companion_instance_26 == null)
      new Companion_26();
    return Companion_instance_26;
  }
  function $serializer_28() {
    $serializer_instance_28 = this;
    var tmp0_serialDesc = new PluginGeneratedSerialDescriptor('uk.co.nickthecoder.gamescupboard.common.ImageObject', this, 14);
    tmp0_serialDesc.g10('id', false);
    tmp0_serialDesc.g10('x', false);
    tmp0_serialDesc.g10('y', false);
    tmp0_serialDesc.g10('name', true);
    tmp0_serialDesc.g10('draggable', true);
    tmp0_serialDesc.g10('path', false);
    tmp0_serialDesc.g10('mirrorX', true);
    tmp0_serialDesc.g10('mirrorY', true);
    tmp0_serialDesc.g10('scale', true);
    tmp0_serialDesc.g10('regen', true);
    tmp0_serialDesc.g10('isCopy', true);
    tmp0_serialDesc.g10('draggingByPlayerId', true);
    tmp0_serialDesc.g10('privateToPlayerId', true);
    tmp0_serialDesc.g10('isScalable', true);
    this.o1p_1 = tmp0_serialDesc;
  }
  $serializer_28.prototype.bq = function () {
    return this.o1p_1;
  };
  $serializer_28.prototype.x10 = function () {
    var tmp$ret$2;
    // Inline function 'kotlin.arrayOf' call
    var tmp0_arrayOf = [IntSerializer_getInstance(), IntSerializer_getInstance(), IntSerializer_getInstance(), StringSerializer_getInstance(), BooleanSerializer_getInstance(), StringSerializer_getInstance(), BooleanSerializer_getInstance(), BooleanSerializer_getInstance(), DoubleSerializer_getInstance(), BooleanSerializer_getInstance(), BooleanSerializer_getInstance(), get_nullable(IntSerializer_getInstance()), get_nullable(IntSerializer_getInstance()), BooleanSerializer_getInstance()];
    var tmp$ret$1;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$0;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$0 = tmp0_arrayOf;
    tmp$ret$1 = tmp$ret$0;
    tmp$ret$2 = tmp$ret$1;
    return tmp$ret$2;
  };
  $serializer_28.prototype.dq = function (decoder) {
    var tmp0_desc = this.o1p_1;
    var tmp1_flag = true;
    var tmp2_index = 0;
    var tmp3_bitMask0 = 0;
    var tmp4_local0 = 0;
    var tmp5_local1 = 0;
    var tmp6_local2 = 0;
    var tmp7_local3 = null;
    var tmp8_local4 = false;
    var tmp9_local5 = null;
    var tmp10_local6 = false;
    var tmp11_local7 = false;
    var tmp12_local8 = 0.0;
    var tmp13_local9 = false;
    var tmp14_local10 = false;
    var tmp15_local11 = null;
    var tmp16_local12 = null;
    var tmp17_local13 = false;
    var tmp18_input = decoder.it(tmp0_desc);
    if (tmp18_input.wt()) {
      tmp4_local0 = tmp18_input.nt(tmp0_desc, 0);
      tmp3_bitMask0 = tmp3_bitMask0 | 1;
      tmp5_local1 = tmp18_input.nt(tmp0_desc, 1);
      tmp3_bitMask0 = tmp3_bitMask0 | 2;
      tmp6_local2 = tmp18_input.nt(tmp0_desc, 2);
      tmp3_bitMask0 = tmp3_bitMask0 | 4;
      tmp7_local3 = tmp18_input.st(tmp0_desc, 3);
      tmp3_bitMask0 = tmp3_bitMask0 | 8;
      tmp8_local4 = tmp18_input.kt(tmp0_desc, 4);
      tmp3_bitMask0 = tmp3_bitMask0 | 16;
      tmp9_local5 = tmp18_input.st(tmp0_desc, 5);
      tmp3_bitMask0 = tmp3_bitMask0 | 32;
      tmp10_local6 = tmp18_input.kt(tmp0_desc, 6);
      tmp3_bitMask0 = tmp3_bitMask0 | 64;
      tmp11_local7 = tmp18_input.kt(tmp0_desc, 7);
      tmp3_bitMask0 = tmp3_bitMask0 | 128;
      tmp12_local8 = tmp18_input.qt(tmp0_desc, 8);
      tmp3_bitMask0 = tmp3_bitMask0 | 256;
      tmp13_local9 = tmp18_input.kt(tmp0_desc, 9);
      tmp3_bitMask0 = tmp3_bitMask0 | 512;
      tmp14_local10 = tmp18_input.kt(tmp0_desc, 10);
      tmp3_bitMask0 = tmp3_bitMask0 | 1024;
      tmp15_local11 = tmp18_input.vt(tmp0_desc, 11, IntSerializer_getInstance(), tmp15_local11);
      tmp3_bitMask0 = tmp3_bitMask0 | 2048;
      tmp16_local12 = tmp18_input.vt(tmp0_desc, 12, IntSerializer_getInstance(), tmp16_local12);
      tmp3_bitMask0 = tmp3_bitMask0 | 4096;
      tmp17_local13 = tmp18_input.kt(tmp0_desc, 13);
      tmp3_bitMask0 = tmp3_bitMask0 | 8192;
    } else
      while (tmp1_flag) {
        tmp2_index = tmp18_input.xt(tmp0_desc);
        switch (tmp2_index) {
          case -1:
            tmp1_flag = false;
            break;
          case 0:
            tmp4_local0 = tmp18_input.nt(tmp0_desc, 0);
            tmp3_bitMask0 = tmp3_bitMask0 | 1;
            break;
          case 1:
            tmp5_local1 = tmp18_input.nt(tmp0_desc, 1);
            tmp3_bitMask0 = tmp3_bitMask0 | 2;
            break;
          case 2:
            tmp6_local2 = tmp18_input.nt(tmp0_desc, 2);
            tmp3_bitMask0 = tmp3_bitMask0 | 4;
            break;
          case 3:
            tmp7_local3 = tmp18_input.st(tmp0_desc, 3);
            tmp3_bitMask0 = tmp3_bitMask0 | 8;
            break;
          case 4:
            tmp8_local4 = tmp18_input.kt(tmp0_desc, 4);
            tmp3_bitMask0 = tmp3_bitMask0 | 16;
            break;
          case 5:
            tmp9_local5 = tmp18_input.st(tmp0_desc, 5);
            tmp3_bitMask0 = tmp3_bitMask0 | 32;
            break;
          case 6:
            tmp10_local6 = tmp18_input.kt(tmp0_desc, 6);
            tmp3_bitMask0 = tmp3_bitMask0 | 64;
            break;
          case 7:
            tmp11_local7 = tmp18_input.kt(tmp0_desc, 7);
            tmp3_bitMask0 = tmp3_bitMask0 | 128;
            break;
          case 8:
            tmp12_local8 = tmp18_input.qt(tmp0_desc, 8);
            tmp3_bitMask0 = tmp3_bitMask0 | 256;
            break;
          case 9:
            tmp13_local9 = tmp18_input.kt(tmp0_desc, 9);
            tmp3_bitMask0 = tmp3_bitMask0 | 512;
            break;
          case 10:
            tmp14_local10 = tmp18_input.kt(tmp0_desc, 10);
            tmp3_bitMask0 = tmp3_bitMask0 | 1024;
            break;
          case 11:
            tmp15_local11 = tmp18_input.vt(tmp0_desc, 11, IntSerializer_getInstance(), tmp15_local11);
            tmp3_bitMask0 = tmp3_bitMask0 | 2048;
            break;
          case 12:
            tmp16_local12 = tmp18_input.vt(tmp0_desc, 12, IntSerializer_getInstance(), tmp16_local12);
            tmp3_bitMask0 = tmp3_bitMask0 | 4096;
            break;
          case 13:
            tmp17_local13 = tmp18_input.kt(tmp0_desc, 13);
            tmp3_bitMask0 = tmp3_bitMask0 | 8192;
            break;
          default:
            throw UnknownFieldException_init_$Create$(tmp2_index);
        }
      }
    tmp18_input.jt(tmp0_desc);
    return ImageObject_init_$Create$(tmp3_bitMask0, tmp4_local0, tmp5_local1, tmp6_local2, tmp7_local3, tmp8_local4, tmp9_local5, tmp10_local6, tmp11_local7, tmp12_local8, tmp13_local9, tmp14_local10, tmp15_local11, tmp16_local12, tmp17_local13, null);
  };
  $serializer_28.prototype.p1p = function (encoder, value) {
    var tmp0_desc = this.o1p_1;
    var tmp1_output = encoder.it(tmp0_desc);
    tmp1_output.qu(tmp0_desc, 0, value.c1n());
    tmp1_output.qu(tmp0_desc, 1, value.d1n());
    tmp1_output.qu(tmp0_desc, 2, value.e1n());
    if (tmp1_output.cv(tmp0_desc, 3) ? true : !(value.t2() === '')) {
      tmp1_output.vu(tmp0_desc, 3, value.t2());
    }
    if (tmp1_output.cv(tmp0_desc, 4) ? true : !(value.f1n() === true)) {
      tmp1_output.nu(tmp0_desc, 4, value.f1n());
    }
    tmp1_output.vu(tmp0_desc, 5, value.v1p_1);
    if (tmp1_output.cv(tmp0_desc, 6) ? true : !(value.w1p_1 === false)) {
      tmp1_output.nu(tmp0_desc, 6, value.w1p_1);
    }
    if (tmp1_output.cv(tmp0_desc, 7) ? true : !(value.x1p_1 === false)) {
      tmp1_output.nu(tmp0_desc, 7, value.x1p_1);
    }
    if (tmp1_output.cv(tmp0_desc, 8) ? true : !equals(value.y1p_1, 1.0)) {
      tmp1_output.tu(tmp0_desc, 8, value.y1p_1);
    }
    if (tmp1_output.cv(tmp0_desc, 9) ? true : !(value.t1o() === false)) {
      tmp1_output.nu(tmp0_desc, 9, value.t1o());
    }
    if (tmp1_output.cv(tmp0_desc, 10) ? true : !(value.e1q() === false)) {
      tmp1_output.nu(tmp0_desc, 10, value.e1q());
    }
    if (tmp1_output.cv(tmp0_desc, 11) ? true : !(value.f1q() == null)) {
      tmp1_output.yu(tmp0_desc, 11, IntSerializer_getInstance(), value.f1q());
    }
    if (tmp1_output.cv(tmp0_desc, 12) ? true : !(value.g1l() == null)) {
      tmp1_output.yu(tmp0_desc, 12, IntSerializer_getInstance(), value.g1l());
    }
    if (tmp1_output.cv(tmp0_desc, 13) ? true : !(value.d1q_1 === false)) {
      tmp1_output.nu(tmp0_desc, 13, value.d1q_1);
    }
    tmp1_output.jt(tmp0_desc);
  };
  $serializer_28.prototype.cq = function (encoder, value) {
    return this.p1p(encoder, value instanceof ImageObject ? value : THROW_CCE());
  };
  $serializer_28.$metadata$ = objectMeta('$serializer', [GeneratedSerializer]);
  var $serializer_instance_28;
  function $serializer_getInstance_28() {
    if ($serializer_instance_28 == null)
      new $serializer_28();
    return $serializer_instance_28;
  }
  function ImageObject_init_$Init$(seen1, id, x, y, name, draggable, path, mirrorX, mirrorY, scale, regen, isCopy, draggingByPlayerId, privateToPlayerId, isScalable, serializationConstructorMarker, $this) {
    if (!(39 === (39 & seen1))) {
      throwMissingFieldException(seen1, 39, $serializer_getInstance_28().o1p_1);
    }
    $this.q1p_1 = id;
    $this.r1p_1 = x;
    $this.s1p_1 = y;
    if (0 === (seen1 & 8))
      $this.t1p_1 = '';
    else
      $this.t1p_1 = name;
    if (0 === (seen1 & 16))
      $this.u1p_1 = true;
    else
      $this.u1p_1 = draggable;
    $this.v1p_1 = path;
    if (0 === (seen1 & 64))
      $this.w1p_1 = false;
    else
      $this.w1p_1 = mirrorX;
    if (0 === (seen1 & 128))
      $this.x1p_1 = false;
    else
      $this.x1p_1 = mirrorY;
    if (0 === (seen1 & 256))
      $this.y1p_1 = 1.0;
    else
      $this.y1p_1 = scale;
    if (0 === (seen1 & 512))
      $this.z1p_1 = false;
    else
      $this.z1p_1 = regen;
    if (0 === (seen1 & 1024))
      $this.a1q_1 = false;
    else
      $this.a1q_1 = isCopy;
    if (0 === (seen1 & 2048))
      $this.b1q_1 = null;
    else
      $this.b1q_1 = draggingByPlayerId;
    if (0 === (seen1 & 4096))
      $this.c1q_1 = null;
    else
      $this.c1q_1 = privateToPlayerId;
    if (0 === (seen1 & 8192))
      $this.d1q_1 = false;
    else
      $this.d1q_1 = isScalable;
    return $this;
  }
  function ImageObject_init_$Create$(seen1, id, x, y, name, draggable, path, mirrorX, mirrorY, scale, regen, isCopy, draggingByPlayerId, privateToPlayerId, isScalable, serializationConstructorMarker) {
    return ImageObject_init_$Init$(seen1, id, x, y, name, draggable, path, mirrorX, mirrorY, scale, regen, isCopy, draggingByPlayerId, privateToPlayerId, isScalable, serializationConstructorMarker, Object.create(ImageObject.prototype));
  }
  function ImageObject(id, x, y, name, draggable, path, mirrorX, mirrorY) {
    Companion_getInstance_27();
    this.q1p_1 = id;
    this.r1p_1 = x;
    this.s1p_1 = y;
    this.t1p_1 = name;
    this.u1p_1 = draggable;
    this.v1p_1 = path;
    this.w1p_1 = mirrorX;
    this.x1p_1 = mirrorY;
    this.y1p_1 = 1.0;
    this.z1p_1 = false;
    this.a1q_1 = false;
    this.b1q_1 = null;
    this.c1q_1 = null;
    this.d1q_1 = false;
  }
  ImageObject.prototype.c1n = function () {
    return this.q1p_1;
  };
  ImageObject.prototype.d1n = function () {
    return this.r1p_1;
  };
  ImageObject.prototype.e1n = function () {
    return this.s1p_1;
  };
  ImageObject.prototype.t2 = function () {
    return this.t1p_1;
  };
  ImageObject.prototype.f1n = function () {
    return this.u1p_1;
  };
  ImageObject.prototype.t1o = function () {
    return this.z1p_1;
  };
  ImageObject.prototype.e1q = function () {
    return this.a1q_1;
  };
  ImageObject.prototype.f1q = function () {
    return this.b1q_1;
  };
  ImageObject.prototype.g1l = function () {
    return this.c1q_1;
  };
  ImageObject.prototype.toString = function () {
    return 'Image#' + this.c1n() + " : '" + this.v1p_1 + "' @ " + this.d1n() + ',' + this.e1n();
  };
  ImageObject.$metadata$ = classMeta('ImageObject', [GameObject, RegenGameObject], undefined, {0: $serializer_getInstance_28});
  function Companion_27() {
    Companion_instance_27 = this;
  }
  Companion_27.$metadata$ = objectMeta('Companion');
  var Companion_instance_27;
  function Companion_getInstance_28() {
    if (Companion_instance_27 == null)
      new Companion_27();
    return Companion_instance_27;
  }
  function $serializer_29() {
    $serializer_instance_29 = this;
    var tmp0_serialDesc = new PluginGeneratedSerialDescriptor('uk.co.nickthecoder.gamescupboard.common.MultipleGridImageObject', this, 13);
    tmp0_serialDesc.g10('id', false);
    tmp0_serialDesc.g10('x', false);
    tmp0_serialDesc.g10('y', false);
    tmp0_serialDesc.g10('name', true);
    tmp0_serialDesc.g10('draggable', true);
    tmp0_serialDesc.g10('grid', false);
    tmp0_serialDesc.g10('fromGX', false);
    tmp0_serialDesc.g10('toGX', false);
    tmp0_serialDesc.g10('fromGY', false);
    tmp0_serialDesc.g10('toGY', true);
    tmp0_serialDesc.g10('imageNumber', true);
    tmp0_serialDesc.g10('draggingByPlayerId', true);
    tmp0_serialDesc.g10('privateToPlayerId', true);
    this.g1q_1 = tmp0_serialDesc;
  }
  $serializer_29.prototype.bq = function () {
    return this.g1q_1;
  };
  $serializer_29.prototype.x10 = function () {
    var tmp$ret$2;
    // Inline function 'kotlin.arrayOf' call
    var tmp0_arrayOf = [IntSerializer_getInstance(), IntSerializer_getInstance(), IntSerializer_getInstance(), StringSerializer_getInstance(), BooleanSerializer_getInstance(), $serializer_getInstance_26(), IntSerializer_getInstance(), IntSerializer_getInstance(), IntSerializer_getInstance(), IntSerializer_getInstance(), IntSerializer_getInstance(), get_nullable(IntSerializer_getInstance()), get_nullable(IntSerializer_getInstance())];
    var tmp$ret$1;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$0;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$0 = tmp0_arrayOf;
    tmp$ret$1 = tmp$ret$0;
    tmp$ret$2 = tmp$ret$1;
    return tmp$ret$2;
  };
  $serializer_29.prototype.dq = function (decoder) {
    var tmp0_desc = this.g1q_1;
    var tmp1_flag = true;
    var tmp2_index = 0;
    var tmp3_bitMask0 = 0;
    var tmp4_local0 = 0;
    var tmp5_local1 = 0;
    var tmp6_local2 = 0;
    var tmp7_local3 = null;
    var tmp8_local4 = false;
    var tmp9_local5 = null;
    var tmp10_local6 = 0;
    var tmp11_local7 = 0;
    var tmp12_local8 = 0;
    var tmp13_local9 = 0;
    var tmp14_local10 = 0;
    var tmp15_local11 = null;
    var tmp16_local12 = null;
    var tmp17_input = decoder.it(tmp0_desc);
    if (tmp17_input.wt()) {
      tmp4_local0 = tmp17_input.nt(tmp0_desc, 0);
      tmp3_bitMask0 = tmp3_bitMask0 | 1;
      tmp5_local1 = tmp17_input.nt(tmp0_desc, 1);
      tmp3_bitMask0 = tmp3_bitMask0 | 2;
      tmp6_local2 = tmp17_input.nt(tmp0_desc, 2);
      tmp3_bitMask0 = tmp3_bitMask0 | 4;
      tmp7_local3 = tmp17_input.st(tmp0_desc, 3);
      tmp3_bitMask0 = tmp3_bitMask0 | 8;
      tmp8_local4 = tmp17_input.kt(tmp0_desc, 4);
      tmp3_bitMask0 = tmp3_bitMask0 | 16;
      tmp9_local5 = tmp17_input.tt(tmp0_desc, 5, $serializer_getInstance_26(), tmp9_local5);
      tmp3_bitMask0 = tmp3_bitMask0 | 32;
      tmp10_local6 = tmp17_input.nt(tmp0_desc, 6);
      tmp3_bitMask0 = tmp3_bitMask0 | 64;
      tmp11_local7 = tmp17_input.nt(tmp0_desc, 7);
      tmp3_bitMask0 = tmp3_bitMask0 | 128;
      tmp12_local8 = tmp17_input.nt(tmp0_desc, 8);
      tmp3_bitMask0 = tmp3_bitMask0 | 256;
      tmp13_local9 = tmp17_input.nt(tmp0_desc, 9);
      tmp3_bitMask0 = tmp3_bitMask0 | 512;
      tmp14_local10 = tmp17_input.nt(tmp0_desc, 10);
      tmp3_bitMask0 = tmp3_bitMask0 | 1024;
      tmp15_local11 = tmp17_input.vt(tmp0_desc, 11, IntSerializer_getInstance(), tmp15_local11);
      tmp3_bitMask0 = tmp3_bitMask0 | 2048;
      tmp16_local12 = tmp17_input.vt(tmp0_desc, 12, IntSerializer_getInstance(), tmp16_local12);
      tmp3_bitMask0 = tmp3_bitMask0 | 4096;
    } else
      while (tmp1_flag) {
        tmp2_index = tmp17_input.xt(tmp0_desc);
        switch (tmp2_index) {
          case -1:
            tmp1_flag = false;
            break;
          case 0:
            tmp4_local0 = tmp17_input.nt(tmp0_desc, 0);
            tmp3_bitMask0 = tmp3_bitMask0 | 1;
            break;
          case 1:
            tmp5_local1 = tmp17_input.nt(tmp0_desc, 1);
            tmp3_bitMask0 = tmp3_bitMask0 | 2;
            break;
          case 2:
            tmp6_local2 = tmp17_input.nt(tmp0_desc, 2);
            tmp3_bitMask0 = tmp3_bitMask0 | 4;
            break;
          case 3:
            tmp7_local3 = tmp17_input.st(tmp0_desc, 3);
            tmp3_bitMask0 = tmp3_bitMask0 | 8;
            break;
          case 4:
            tmp8_local4 = tmp17_input.kt(tmp0_desc, 4);
            tmp3_bitMask0 = tmp3_bitMask0 | 16;
            break;
          case 5:
            tmp9_local5 = tmp17_input.tt(tmp0_desc, 5, $serializer_getInstance_26(), tmp9_local5);
            tmp3_bitMask0 = tmp3_bitMask0 | 32;
            break;
          case 6:
            tmp10_local6 = tmp17_input.nt(tmp0_desc, 6);
            tmp3_bitMask0 = tmp3_bitMask0 | 64;
            break;
          case 7:
            tmp11_local7 = tmp17_input.nt(tmp0_desc, 7);
            tmp3_bitMask0 = tmp3_bitMask0 | 128;
            break;
          case 8:
            tmp12_local8 = tmp17_input.nt(tmp0_desc, 8);
            tmp3_bitMask0 = tmp3_bitMask0 | 256;
            break;
          case 9:
            tmp13_local9 = tmp17_input.nt(tmp0_desc, 9);
            tmp3_bitMask0 = tmp3_bitMask0 | 512;
            break;
          case 10:
            tmp14_local10 = tmp17_input.nt(tmp0_desc, 10);
            tmp3_bitMask0 = tmp3_bitMask0 | 1024;
            break;
          case 11:
            tmp15_local11 = tmp17_input.vt(tmp0_desc, 11, IntSerializer_getInstance(), tmp15_local11);
            tmp3_bitMask0 = tmp3_bitMask0 | 2048;
            break;
          case 12:
            tmp16_local12 = tmp17_input.vt(tmp0_desc, 12, IntSerializer_getInstance(), tmp16_local12);
            tmp3_bitMask0 = tmp3_bitMask0 | 4096;
            break;
          default:
            throw UnknownFieldException_init_$Create$(tmp2_index);
        }
      }
    tmp17_input.jt(tmp0_desc);
    return MultipleGridImageObject_init_$Create$(tmp3_bitMask0, tmp4_local0, tmp5_local1, tmp6_local2, tmp7_local3, tmp8_local4, tmp9_local5, tmp10_local6, tmp11_local7, tmp12_local8, tmp13_local9, tmp14_local10, tmp15_local11, tmp16_local12, null);
  };
  $serializer_29.prototype.h1q = function (encoder, value) {
    var tmp0_desc = this.g1q_1;
    var tmp1_output = encoder.it(tmp0_desc);
    tmp1_output.qu(tmp0_desc, 0, value.i1q_1);
    tmp1_output.qu(tmp0_desc, 1, value.j1q_1);
    tmp1_output.qu(tmp0_desc, 2, value.k1q_1);
    if (tmp1_output.cv(tmp0_desc, 3) ? true : !(value.l1q_1 === '')) {
      tmp1_output.vu(tmp0_desc, 3, value.l1q_1);
    }
    if (tmp1_output.cv(tmp0_desc, 4) ? true : !(value.m1q_1 === true)) {
      tmp1_output.nu(tmp0_desc, 4, value.m1q_1);
    }
    tmp1_output.wu(tmp0_desc, 5, $serializer_getInstance_26(), value.n1q_1);
    tmp1_output.qu(tmp0_desc, 6, value.o1q_1);
    tmp1_output.qu(tmp0_desc, 7, value.p1q_1);
    tmp1_output.qu(tmp0_desc, 8, value.q1q_1);
    if (tmp1_output.cv(tmp0_desc, 9) ? true : !(value.r1q_1 === value.q1q_1)) {
      tmp1_output.qu(tmp0_desc, 9, value.r1q_1);
    }
    if (tmp1_output.cv(tmp0_desc, 10) ? true : !(value.s1q_1 === 0)) {
      tmp1_output.qu(tmp0_desc, 10, value.s1q_1);
    }
    if (tmp1_output.cv(tmp0_desc, 11) ? true : !(value.t1q_1 == null)) {
      tmp1_output.yu(tmp0_desc, 11, IntSerializer_getInstance(), value.t1q_1);
    }
    if (tmp1_output.cv(tmp0_desc, 12) ? true : !(value.u1q_1 == null)) {
      tmp1_output.yu(tmp0_desc, 12, IntSerializer_getInstance(), value.u1q_1);
    }
    tmp1_output.jt(tmp0_desc);
  };
  $serializer_29.prototype.cq = function (encoder, value) {
    return this.h1q(encoder, value instanceof MultipleGridImageObject ? value : THROW_CCE());
  };
  $serializer_29.$metadata$ = objectMeta('$serializer', [GeneratedSerializer]);
  var $serializer_instance_29;
  function $serializer_getInstance_29() {
    if ($serializer_instance_29 == null)
      new $serializer_29();
    return $serializer_instance_29;
  }
  function MultipleGridImageObject_init_$Init$(seen1, id, x, y, name, draggable, grid, fromGX, toGX, fromGY, toGY, imageNumber, draggingByPlayerId, privateToPlayerId, serializationConstructorMarker, $this) {
    if (!(487 === (487 & seen1))) {
      throwMissingFieldException(seen1, 487, $serializer_getInstance_29().g1q_1);
    }
    $this.i1q_1 = id;
    $this.j1q_1 = x;
    $this.k1q_1 = y;
    if (0 === (seen1 & 8))
      $this.l1q_1 = '';
    else
      $this.l1q_1 = name;
    if (0 === (seen1 & 16))
      $this.m1q_1 = true;
    else
      $this.m1q_1 = draggable;
    $this.n1q_1 = grid;
    $this.o1q_1 = fromGX;
    $this.p1q_1 = toGX;
    $this.q1q_1 = fromGY;
    if (0 === (seen1 & 512))
      $this.r1q_1 = $this.q1q_1;
    else
      $this.r1q_1 = toGY;
    if (0 === (seen1 & 1024))
      $this.s1q_1 = 0;
    else
      $this.s1q_1 = imageNumber;
    if (0 === (seen1 & 2048))
      $this.t1q_1 = null;
    else
      $this.t1q_1 = draggingByPlayerId;
    if (0 === (seen1 & 4096))
      $this.u1q_1 = null;
    else
      $this.u1q_1 = privateToPlayerId;
    return $this;
  }
  function MultipleGridImageObject_init_$Create$(seen1, id, x, y, name, draggable, grid, fromGX, toGX, fromGY, toGY, imageNumber, draggingByPlayerId, privateToPlayerId, serializationConstructorMarker) {
    return MultipleGridImageObject_init_$Init$(seen1, id, x, y, name, draggable, grid, fromGX, toGX, fromGY, toGY, imageNumber, draggingByPlayerId, privateToPlayerId, serializationConstructorMarker, Object.create(MultipleGridImageObject.prototype));
  }
  function MultipleGridImageObject(id, x, y, name, draggable, grid, fromGX, toGX, fromGY, toGY, imageNumber) {
    Companion_getInstance_28();
    this.i1q_1 = id;
    this.j1q_1 = x;
    this.k1q_1 = y;
    this.l1q_1 = name;
    this.m1q_1 = draggable;
    this.n1q_1 = grid;
    this.o1q_1 = fromGX;
    this.p1q_1 = toGX;
    this.q1q_1 = fromGY;
    this.r1q_1 = toGY;
    this.s1q_1 = imageNumber;
    this.t1q_1 = null;
    this.u1q_1 = null;
  }
  MultipleGridImageObject.prototype.c1n = function () {
    return this.i1q_1;
  };
  MultipleGridImageObject.prototype.d1n = function () {
    return this.j1q_1;
  };
  MultipleGridImageObject.prototype.e1n = function () {
    return this.k1q_1;
  };
  MultipleGridImageObject.prototype.t2 = function () {
    return this.l1q_1;
  };
  MultipleGridImageObject.prototype.f1n = function () {
    return this.m1q_1;
  };
  MultipleGridImageObject.prototype.g1l = function () {
    return this.u1q_1;
  };
  MultipleGridImageObject.prototype.toString = function () {
    return 'MultipleGridImage#' + this.i1q_1 + " : '" + this.n1q_1.v1o_1 + "' @ " + this.j1q_1 + ',' + this.k1q_1;
  };
  MultipleGridImageObject.$metadata$ = classMeta('MultipleGridImageObject', [GameObject], undefined, {0: $serializer_getInstance_29});
  function Companion_28() {
    Companion_instance_28 = this;
  }
  Companion_28.$metadata$ = objectMeta('Companion');
  var Companion_instance_28;
  function Companion_getInstance_29() {
    if (Companion_instance_28 == null)
      new Companion_28();
    return Companion_instance_28;
  }
  function $serializer_30() {
    $serializer_instance_30 = this;
    var tmp0_serialDesc = new PluginGeneratedSerialDescriptor('uk.co.nickthecoder.gamescupboard.common.PieceAtPointCounter', this, 5);
    tmp0_serialDesc.g10('id', false);
    tmp0_serialDesc.g10('x', false);
    tmp0_serialDesc.g10('y', false);
    tmp0_serialDesc.g10('specialPointName', false);
    tmp0_serialDesc.g10('name', true);
    this.v1q_1 = tmp0_serialDesc;
  }
  $serializer_30.prototype.bq = function () {
    return this.v1q_1;
  };
  $serializer_30.prototype.x10 = function () {
    var tmp$ret$2;
    // Inline function 'kotlin.arrayOf' call
    var tmp0_arrayOf = [IntSerializer_getInstance(), IntSerializer_getInstance(), IntSerializer_getInstance(), StringSerializer_getInstance(), StringSerializer_getInstance()];
    var tmp$ret$1;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$0;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$0 = tmp0_arrayOf;
    tmp$ret$1 = tmp$ret$0;
    tmp$ret$2 = tmp$ret$1;
    return tmp$ret$2;
  };
  $serializer_30.prototype.dq = function (decoder) {
    var tmp0_desc = this.v1q_1;
    var tmp1_flag = true;
    var tmp2_index = 0;
    var tmp3_bitMask0 = 0;
    var tmp4_local0 = 0;
    var tmp5_local1 = 0;
    var tmp6_local2 = 0;
    var tmp7_local3 = null;
    var tmp8_local4 = null;
    var tmp9_input = decoder.it(tmp0_desc);
    if (tmp9_input.wt()) {
      tmp4_local0 = tmp9_input.nt(tmp0_desc, 0);
      tmp3_bitMask0 = tmp3_bitMask0 | 1;
      tmp5_local1 = tmp9_input.nt(tmp0_desc, 1);
      tmp3_bitMask0 = tmp3_bitMask0 | 2;
      tmp6_local2 = tmp9_input.nt(tmp0_desc, 2);
      tmp3_bitMask0 = tmp3_bitMask0 | 4;
      tmp7_local3 = tmp9_input.st(tmp0_desc, 3);
      tmp3_bitMask0 = tmp3_bitMask0 | 8;
      tmp8_local4 = tmp9_input.st(tmp0_desc, 4);
      tmp3_bitMask0 = tmp3_bitMask0 | 16;
    } else
      while (tmp1_flag) {
        tmp2_index = tmp9_input.xt(tmp0_desc);
        switch (tmp2_index) {
          case -1:
            tmp1_flag = false;
            break;
          case 0:
            tmp4_local0 = tmp9_input.nt(tmp0_desc, 0);
            tmp3_bitMask0 = tmp3_bitMask0 | 1;
            break;
          case 1:
            tmp5_local1 = tmp9_input.nt(tmp0_desc, 1);
            tmp3_bitMask0 = tmp3_bitMask0 | 2;
            break;
          case 2:
            tmp6_local2 = tmp9_input.nt(tmp0_desc, 2);
            tmp3_bitMask0 = tmp3_bitMask0 | 4;
            break;
          case 3:
            tmp7_local3 = tmp9_input.st(tmp0_desc, 3);
            tmp3_bitMask0 = tmp3_bitMask0 | 8;
            break;
          case 4:
            tmp8_local4 = tmp9_input.st(tmp0_desc, 4);
            tmp3_bitMask0 = tmp3_bitMask0 | 16;
            break;
          default:
            throw UnknownFieldException_init_$Create$(tmp2_index);
        }
      }
    tmp9_input.jt(tmp0_desc);
    return PieceAtPointCounter_init_$Create$(tmp3_bitMask0, tmp4_local0, tmp5_local1, tmp6_local2, tmp7_local3, tmp8_local4, null);
  };
  $serializer_30.prototype.w1q = function (encoder, value) {
    var tmp0_desc = this.v1q_1;
    var tmp1_output = encoder.it(tmp0_desc);
    tmp1_output.qu(tmp0_desc, 0, value.x1q_1);
    tmp1_output.qu(tmp0_desc, 1, value.y1q_1);
    tmp1_output.qu(tmp0_desc, 2, value.z1q_1);
    tmp1_output.vu(tmp0_desc, 3, value.a1r_1);
    if (tmp1_output.cv(tmp0_desc, 4) ? true : !(value.b1r_1 === value.a1r_1 + '_counter')) {
      tmp1_output.vu(tmp0_desc, 4, value.b1r_1);
    }
    tmp1_output.jt(tmp0_desc);
  };
  $serializer_30.prototype.cq = function (encoder, value) {
    return this.w1q(encoder, value instanceof PieceAtPointCounter ? value : THROW_CCE());
  };
  $serializer_30.$metadata$ = objectMeta('$serializer', [GeneratedSerializer]);
  var $serializer_instance_30;
  function $serializer_getInstance_30() {
    if ($serializer_instance_30 == null)
      new $serializer_30();
    return $serializer_instance_30;
  }
  function PieceAtPointCounter_init_$Init$(seen1, id, x, y, specialPointName, name, serializationConstructorMarker, $this) {
    if (!(15 === (15 & seen1))) {
      throwMissingFieldException(seen1, 15, $serializer_getInstance_30().v1q_1);
    }
    $this.x1q_1 = id;
    $this.y1q_1 = x;
    $this.z1q_1 = y;
    $this.a1r_1 = specialPointName;
    if (0 === (seen1 & 16))
      $this.b1r_1 = $this.a1r_1 + '_counter';
    else
      $this.b1r_1 = name;
    return $this;
  }
  function PieceAtPointCounter_init_$Create$(seen1, id, x, y, specialPointName, name, serializationConstructorMarker) {
    return PieceAtPointCounter_init_$Init$(seen1, id, x, y, specialPointName, name, serializationConstructorMarker, Object.create(PieceAtPointCounter.prototype));
  }
  function PieceAtPointCounter(id, x, y, specialPointName) {
    Companion_getInstance_29();
    this.x1q_1 = id;
    this.y1q_1 = x;
    this.z1q_1 = y;
    this.a1r_1 = specialPointName;
    this.b1r_1 = this.a1r_1 + '_counter';
  }
  PieceAtPointCounter.prototype.c1n = function () {
    return this.x1q_1;
  };
  PieceAtPointCounter.prototype.d1n = function () {
    return this.y1q_1;
  };
  PieceAtPointCounter.prototype.e1n = function () {
    return this.z1q_1;
  };
  PieceAtPointCounter.prototype.f1n = function () {
    return false;
  };
  PieceAtPointCounter.prototype.g1l = function () {
    return null;
  };
  PieceAtPointCounter.prototype.t2 = function () {
    return this.b1r_1;
  };
  PieceAtPointCounter.prototype.toString = function () {
    return "PieceCounter : '" + this.a1r_1 + "' @ " + this.y1q_1 + ',' + this.z1q_1;
  };
  PieceAtPointCounter.$metadata$ = classMeta('PieceAtPointCounter', [GameObject], undefined, {0: $serializer_getInstance_30});
  function $serializer_31() {
    $serializer_instance_31 = this;
    var tmp0_serialDesc = new PluginGeneratedSerialDescriptor('uk.co.nickthecoder.gamescupboard.common.Player', this, 4);
    tmp0_serialDesc.g10('id', false);
    tmp0_serialDesc.g10('name', false);
    tmp0_serialDesc.g10('color', false);
    tmp0_serialDesc.g10('isSpectator', false);
    this.c1r_1 = tmp0_serialDesc;
  }
  $serializer_31.prototype.bq = function () {
    return this.c1r_1;
  };
  $serializer_31.prototype.x10 = function () {
    var tmp$ret$2;
    // Inline function 'kotlin.arrayOf' call
    var tmp0_arrayOf = [IntSerializer_getInstance(), StringSerializer_getInstance(), StringSerializer_getInstance(), BooleanSerializer_getInstance()];
    var tmp$ret$1;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$0;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$0 = tmp0_arrayOf;
    tmp$ret$1 = tmp$ret$0;
    tmp$ret$2 = tmp$ret$1;
    return tmp$ret$2;
  };
  $serializer_31.prototype.dq = function (decoder) {
    var tmp0_desc = this.c1r_1;
    var tmp1_flag = true;
    var tmp2_index = 0;
    var tmp3_bitMask0 = 0;
    var tmp4_local0 = 0;
    var tmp5_local1 = null;
    var tmp6_local2 = null;
    var tmp7_local3 = false;
    var tmp8_input = decoder.it(tmp0_desc);
    if (tmp8_input.wt()) {
      tmp4_local0 = tmp8_input.nt(tmp0_desc, 0);
      tmp3_bitMask0 = tmp3_bitMask0 | 1;
      tmp5_local1 = tmp8_input.st(tmp0_desc, 1);
      tmp3_bitMask0 = tmp3_bitMask0 | 2;
      tmp6_local2 = tmp8_input.st(tmp0_desc, 2);
      tmp3_bitMask0 = tmp3_bitMask0 | 4;
      tmp7_local3 = tmp8_input.kt(tmp0_desc, 3);
      tmp3_bitMask0 = tmp3_bitMask0 | 8;
    } else
      while (tmp1_flag) {
        tmp2_index = tmp8_input.xt(tmp0_desc);
        switch (tmp2_index) {
          case -1:
            tmp1_flag = false;
            break;
          case 0:
            tmp4_local0 = tmp8_input.nt(tmp0_desc, 0);
            tmp3_bitMask0 = tmp3_bitMask0 | 1;
            break;
          case 1:
            tmp5_local1 = tmp8_input.st(tmp0_desc, 1);
            tmp3_bitMask0 = tmp3_bitMask0 | 2;
            break;
          case 2:
            tmp6_local2 = tmp8_input.st(tmp0_desc, 2);
            tmp3_bitMask0 = tmp3_bitMask0 | 4;
            break;
          case 3:
            tmp7_local3 = tmp8_input.kt(tmp0_desc, 3);
            tmp3_bitMask0 = tmp3_bitMask0 | 8;
            break;
          default:
            throw UnknownFieldException_init_$Create$(tmp2_index);
        }
      }
    tmp8_input.jt(tmp0_desc);
    return Player_init_$Create$(tmp3_bitMask0, tmp4_local0, tmp5_local1, tmp6_local2, tmp7_local3, null);
  };
  $serializer_31.prototype.d1r = function (encoder, value) {
    var tmp0_desc = this.c1r_1;
    var tmp1_output = encoder.it(tmp0_desc);
    tmp1_output.qu(tmp0_desc, 0, value.e1r_1);
    tmp1_output.vu(tmp0_desc, 1, value.f1r_1);
    tmp1_output.vu(tmp0_desc, 2, value.g1r_1);
    tmp1_output.nu(tmp0_desc, 3, value.h1r_1);
    tmp1_output.jt(tmp0_desc);
  };
  $serializer_31.prototype.cq = function (encoder, value) {
    return this.d1r(encoder, value instanceof Player ? value : THROW_CCE());
  };
  $serializer_31.$metadata$ = objectMeta('$serializer', [GeneratedSerializer]);
  var $serializer_instance_31;
  function $serializer_getInstance_31() {
    if ($serializer_instance_31 == null)
      new $serializer_31();
    return $serializer_instance_31;
  }
  function Player_init_$Init$(seen1, id, name, color, isSpectator, serializationConstructorMarker, $this) {
    if (!(15 === (15 & seen1))) {
      throwMissingFieldException(seen1, 15, $serializer_getInstance_31().c1r_1);
    }
    $this.e1r_1 = id;
    $this.f1r_1 = name;
    $this.g1r_1 = color;
    $this.h1r_1 = isSpectator;
    return $this;
  }
  function Player_init_$Create$(seen1, id, name, color, isSpectator, serializationConstructorMarker) {
    return Player_init_$Init$(seen1, id, name, color, isSpectator, serializationConstructorMarker, Object.create(Player.prototype));
  }
  function Player() {
  }
  Player.prototype.c1n = function () {
    return this.e1r_1;
  };
  Player.prototype.t2 = function () {
    return this.f1r_1;
  };
  Player.prototype.i1r = function () {
    return this.h1r_1;
  };
  Player.prototype.toString = function () {
    return "Player '" + this.f1r_1 + "' #" + this.e1r_1 + ' (' + this.g1r_1 + ')';
  };
  Player.$metadata$ = classMeta('Player', undefined, undefined, {0: $serializer_getInstance_31});
  function SnapToGrid$Companion$$cachedSerializer$delegate$_anonymous__gqa7ez() {
    var tmp = getKClass(SnapToGrid);
    var tmp$ret$2;
    // Inline function 'kotlin.arrayOf' call
    var tmp0_arrayOf = [getKClass(HexSnap), getKClass(RectangularSnapToGrid)];
    var tmp$ret$1;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$0;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$0 = tmp0_arrayOf;
    tmp$ret$1 = tmp$ret$0;
    tmp$ret$2 = tmp$ret$1;
    var tmp_0 = tmp$ret$2;
    var tmp$ret$5;
    // Inline function 'kotlin.arrayOf' call
    var tmp1_arrayOf = [$serializer_getInstance_32(), $serializer_getInstance_33()];
    var tmp$ret$4;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$3;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$3 = tmp1_arrayOf;
    tmp$ret$4 = tmp$ret$3;
    tmp$ret$5 = tmp$ret$4;
    var tmp_1 = tmp$ret$5;
    var tmp$ret$8;
    // Inline function 'kotlin.arrayOf' call
    var tmp$ret$7;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$6;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$6 = [];
    tmp$ret$7 = tmp$ret$6;
    tmp$ret$8 = tmp$ret$7;
    return SealedClassSerializer_init_$Create$('uk.co.nickthecoder.gamescupboard.common.SnapToGrid', tmp, tmp_0, tmp_1, tmp$ret$8);
  }
  function Companion_29() {
    Companion_instance_29 = this;
    var tmp = this;
    var tmp_0 = LazyThreadSafetyMode_PUBLICATION_getInstance();
    tmp.j1r_1 = lazy(tmp_0, SnapToGrid$Companion$$cachedSerializer$delegate$_anonymous__gqa7ez);
  }
  Companion_29.prototype.i19 = function () {
    return this.j1r_1.l1();
  };
  Companion_29.prototype.f11 = function (typeParamsSerializers) {
    return this.i19();
  };
  Companion_29.$metadata$ = objectMeta('Companion', [SerializerFactory]);
  var Companion_instance_29;
  function Companion_getInstance_30() {
    if (Companion_instance_29 == null)
      new Companion_29();
    return Companion_instance_29;
  }
  function SnapToGrid_init_$Init$(seen1, serializationConstructorMarker, $this) {
    return $this;
  }
  function SnapToGrid() {
    Companion_getInstance_30();
  }
  SnapToGrid.$metadata$ = classMeta('SnapToGrid', undefined, undefined, {0: Companion_getInstance_30});
  function Companion_30() {
    Companion_instance_30 = this;
  }
  Companion_30.$metadata$ = objectMeta('Companion');
  var Companion_instance_30;
  function Companion_getInstance_31() {
    if (Companion_instance_30 == null)
      new Companion_30();
    return Companion_instance_30;
  }
  function $serializer_32() {
    $serializer_instance_32 = this;
    var tmp0_serialDesc = new PluginGeneratedSerialDescriptor('uk.co.nickthecoder.gamescupboard.common.HexSnap', this, 2);
    tmp0_serialDesc.g10('dx', false);
    tmp0_serialDesc.g10('dy', false);
    this.l1r_1 = tmp0_serialDesc;
  }
  $serializer_32.prototype.bq = function () {
    return this.l1r_1;
  };
  $serializer_32.prototype.x10 = function () {
    var tmp$ret$2;
    // Inline function 'kotlin.arrayOf' call
    var tmp0_arrayOf = [DoubleSerializer_getInstance(), DoubleSerializer_getInstance()];
    var tmp$ret$1;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$0;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$0 = tmp0_arrayOf;
    tmp$ret$1 = tmp$ret$0;
    tmp$ret$2 = tmp$ret$1;
    return tmp$ret$2;
  };
  $serializer_32.prototype.dq = function (decoder) {
    var tmp0_desc = this.l1r_1;
    var tmp1_flag = true;
    var tmp2_index = 0;
    var tmp3_bitMask0 = 0;
    var tmp4_local0 = 0.0;
    var tmp5_local1 = 0.0;
    var tmp6_input = decoder.it(tmp0_desc);
    if (tmp6_input.wt()) {
      tmp4_local0 = tmp6_input.qt(tmp0_desc, 0);
      tmp3_bitMask0 = tmp3_bitMask0 | 1;
      tmp5_local1 = tmp6_input.qt(tmp0_desc, 1);
      tmp3_bitMask0 = tmp3_bitMask0 | 2;
    } else
      while (tmp1_flag) {
        tmp2_index = tmp6_input.xt(tmp0_desc);
        switch (tmp2_index) {
          case -1:
            tmp1_flag = false;
            break;
          case 0:
            tmp4_local0 = tmp6_input.qt(tmp0_desc, 0);
            tmp3_bitMask0 = tmp3_bitMask0 | 1;
            break;
          case 1:
            tmp5_local1 = tmp6_input.qt(tmp0_desc, 1);
            tmp3_bitMask0 = tmp3_bitMask0 | 2;
            break;
          default:
            throw UnknownFieldException_init_$Create$(tmp2_index);
        }
      }
    tmp6_input.jt(tmp0_desc);
    return HexSnap_init_$Create$(tmp3_bitMask0, tmp4_local0, tmp5_local1, null);
  };
  $serializer_32.prototype.m1r = function (encoder, value) {
    var tmp0_desc = this.l1r_1;
    var tmp1_output = encoder.it(tmp0_desc);
    tmp1_output.tu(tmp0_desc, 0, value.n1r_1);
    tmp1_output.tu(tmp0_desc, 1, value.o1r_1);
    tmp1_output.jt(tmp0_desc);
  };
  $serializer_32.prototype.cq = function (encoder, value) {
    return this.m1r(encoder, value instanceof HexSnap ? value : THROW_CCE());
  };
  $serializer_32.$metadata$ = objectMeta('$serializer', [GeneratedSerializer]);
  var $serializer_instance_32;
  function $serializer_getInstance_32() {
    if ($serializer_instance_32 == null)
      new $serializer_32();
    return $serializer_instance_32;
  }
  function HexSnap_init_$Init$(seen1, dx, dy, serializationConstructorMarker, $this) {
    if (!(3 === (3 & seen1))) {
      throwMissingFieldException(seen1, 3, $serializer_getInstance_32().l1r_1);
    }
    SnapToGrid_init_$Init$(seen1, serializationConstructorMarker, $this);
    $this.n1r_1 = dx;
    $this.o1r_1 = dy;
    return $this;
  }
  function HexSnap_init_$Create$(seen1, dx, dy, serializationConstructorMarker) {
    return HexSnap_init_$Init$(seen1, dx, dy, serializationConstructorMarker, Object.create(HexSnap.prototype));
  }
  function HexSnap(dx, dy) {
    Companion_getInstance_31();
    SnapToGrid.call(this);
    this.n1r_1 = dx;
    this.o1r_1 = dy;
  }
  HexSnap.prototype.k1r = function (x, y) {
    var gy = numberToInt(y / this.o1r_1);
    var gx = numberToInt((x - gy * this.n1r_1 / 2) / this.n1r_1);
    var tmp;
    if (((gx < 0 ? true : gy < 0) ? true : gx >= 11) ? true : gy >= 11) {
      tmp = new Pair(x, y);
    } else {
      tmp = new Pair(numberToInt(this.n1r_1 / 2 + gx * this.n1r_1 + gy * this.n1r_1 / 2), numberToInt(this.o1r_1 / 2 + gy * this.o1r_1));
    }
    return tmp;
  };
  HexSnap.$metadata$ = classMeta('HexSnap', undefined, undefined, {0: $serializer_getInstance_32}, undefined, SnapToGrid.prototype);
  function Companion_31() {
    Companion_instance_31 = this;
  }
  Companion_31.$metadata$ = objectMeta('Companion');
  var Companion_instance_31;
  function Companion_getInstance_32() {
    if (Companion_instance_31 == null)
      new Companion_31();
    return Companion_instance_31;
  }
  function $serializer_33() {
    $serializer_instance_33 = this;
    var tmp0_serialDesc = new PluginGeneratedSerialDescriptor('uk.co.nickthecoder.gamescupboard.common.RectangularSnapToGrid', this, 2);
    tmp0_serialDesc.g10('dx', false);
    tmp0_serialDesc.g10('dy', false);
    this.p1r_1 = tmp0_serialDesc;
  }
  $serializer_33.prototype.bq = function () {
    return this.p1r_1;
  };
  $serializer_33.prototype.x10 = function () {
    var tmp$ret$2;
    // Inline function 'kotlin.arrayOf' call
    var tmp0_arrayOf = [IntSerializer_getInstance(), IntSerializer_getInstance()];
    var tmp$ret$1;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$0;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$0 = tmp0_arrayOf;
    tmp$ret$1 = tmp$ret$0;
    tmp$ret$2 = tmp$ret$1;
    return tmp$ret$2;
  };
  $serializer_33.prototype.dq = function (decoder) {
    var tmp0_desc = this.p1r_1;
    var tmp1_flag = true;
    var tmp2_index = 0;
    var tmp3_bitMask0 = 0;
    var tmp4_local0 = 0;
    var tmp5_local1 = 0;
    var tmp6_input = decoder.it(tmp0_desc);
    if (tmp6_input.wt()) {
      tmp4_local0 = tmp6_input.nt(tmp0_desc, 0);
      tmp3_bitMask0 = tmp3_bitMask0 | 1;
      tmp5_local1 = tmp6_input.nt(tmp0_desc, 1);
      tmp3_bitMask0 = tmp3_bitMask0 | 2;
    } else
      while (tmp1_flag) {
        tmp2_index = tmp6_input.xt(tmp0_desc);
        switch (tmp2_index) {
          case -1:
            tmp1_flag = false;
            break;
          case 0:
            tmp4_local0 = tmp6_input.nt(tmp0_desc, 0);
            tmp3_bitMask0 = tmp3_bitMask0 | 1;
            break;
          case 1:
            tmp5_local1 = tmp6_input.nt(tmp0_desc, 1);
            tmp3_bitMask0 = tmp3_bitMask0 | 2;
            break;
          default:
            throw UnknownFieldException_init_$Create$(tmp2_index);
        }
      }
    tmp6_input.jt(tmp0_desc);
    return RectangularSnapToGrid_init_$Create$(tmp3_bitMask0, tmp4_local0, tmp5_local1, null);
  };
  $serializer_33.prototype.q1r = function (encoder, value) {
    var tmp0_desc = this.p1r_1;
    var tmp1_output = encoder.it(tmp0_desc);
    tmp1_output.qu(tmp0_desc, 0, value.r1r_1);
    tmp1_output.qu(tmp0_desc, 1, value.s1r_1);
    tmp1_output.jt(tmp0_desc);
  };
  $serializer_33.prototype.cq = function (encoder, value) {
    return this.q1r(encoder, value instanceof RectangularSnapToGrid ? value : THROW_CCE());
  };
  $serializer_33.$metadata$ = objectMeta('$serializer', [GeneratedSerializer]);
  var $serializer_instance_33;
  function $serializer_getInstance_33() {
    if ($serializer_instance_33 == null)
      new $serializer_33();
    return $serializer_instance_33;
  }
  function RectangularSnapToGrid_init_$Init$(seen1, dx, dy, serializationConstructorMarker, $this) {
    if (!(3 === (3 & seen1))) {
      throwMissingFieldException(seen1, 3, $serializer_getInstance_33().p1r_1);
    }
    SnapToGrid_init_$Init$(seen1, serializationConstructorMarker, $this);
    $this.r1r_1 = dx;
    $this.s1r_1 = dy;
    return $this;
  }
  function RectangularSnapToGrid_init_$Create$(seen1, dx, dy, serializationConstructorMarker) {
    return RectangularSnapToGrid_init_$Init$(seen1, dx, dy, serializationConstructorMarker, Object.create(RectangularSnapToGrid.prototype));
  }
  function RectangularSnapToGrid(dx, dy) {
    Companion_getInstance_32();
    SnapToGrid.call(this);
    this.r1r_1 = dx;
    this.s1r_1 = dy;
  }
  RectangularSnapToGrid.prototype.k1r = function (x, y) {
    return new Pair(imul(x / this.r1r_1 | 0, this.r1r_1) + (this.r1r_1 / 2 | 0) | 0, imul(y / this.s1r_1 | 0, this.s1r_1) + (this.s1r_1 / 2 | 0) | 0);
  };
  RectangularSnapToGrid.$metadata$ = classMeta('RectangularSnapToGrid', undefined, undefined, {0: $serializer_getInstance_33}, undefined, SnapToGrid.prototype);
  function $serializer_34() {
    $serializer_instance_34 = this;
    var tmp0_serialDesc = new PluginGeneratedSerialDescriptor('uk.co.nickthecoder.gamescupboard.common.SpecialArea', this, 11);
    tmp0_serialDesc.g10('name', false);
    tmp0_serialDesc.g10('areaType', false);
    tmp0_serialDesc.g10('x', false);
    tmp0_serialDesc.g10('y', false);
    tmp0_serialDesc.g10('width', false);
    tmp0_serialDesc.g10('height', false);
    tmp0_serialDesc.g10('snap', true);
    tmp0_serialDesc.g10('changeZOrder', true);
    tmp0_serialDesc.g10('warnUsingTint', true);
    tmp0_serialDesc.g10('pieceCount', true);
    tmp0_serialDesc.g10('pieceCountByOwner', true);
    this.t1r_1 = tmp0_serialDesc;
  }
  $serializer_34.prototype.bq = function () {
    return this.t1r_1;
  };
  $serializer_34.prototype.x10 = function () {
    var tmp$ret$2;
    // Inline function 'kotlin.arrayOf' call
    var tmp0_arrayOf = [StringSerializer_getInstance(), $serializer_getInstance_35(), IntSerializer_getInstance(), IntSerializer_getInstance(), IntSerializer_getInstance(), IntSerializer_getInstance(), get_nullable(Companion_getInstance_30().i19()), $serializer_getInstance_19(), BooleanSerializer_getInstance(), IntSerializer_getInstance(), new LinkedHashMapSerializer(IntSerializer_getInstance(), IntSerializer_getInstance())];
    var tmp$ret$1;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$0;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$0 = tmp0_arrayOf;
    tmp$ret$1 = tmp$ret$0;
    tmp$ret$2 = tmp$ret$1;
    return tmp$ret$2;
  };
  $serializer_34.prototype.dq = function (decoder) {
    var tmp0_desc = this.t1r_1;
    var tmp1_flag = true;
    var tmp2_index = 0;
    var tmp3_bitMask0 = 0;
    var tmp4_local0 = null;
    var tmp5_local1 = null;
    var tmp6_local2 = 0;
    var tmp7_local3 = 0;
    var tmp8_local4 = 0;
    var tmp9_local5 = 0;
    var tmp10_local6 = null;
    var tmp11_local7 = null;
    var tmp12_local8 = false;
    var tmp13_local9 = 0;
    var tmp14_local10 = null;
    var tmp15_input = decoder.it(tmp0_desc);
    if (tmp15_input.wt()) {
      tmp4_local0 = tmp15_input.st(tmp0_desc, 0);
      tmp3_bitMask0 = tmp3_bitMask0 | 1;
      tmp5_local1 = tmp15_input.tt(tmp0_desc, 1, $serializer_getInstance_35(), tmp5_local1);
      tmp3_bitMask0 = tmp3_bitMask0 | 2;
      tmp6_local2 = tmp15_input.nt(tmp0_desc, 2);
      tmp3_bitMask0 = tmp3_bitMask0 | 4;
      tmp7_local3 = tmp15_input.nt(tmp0_desc, 3);
      tmp3_bitMask0 = tmp3_bitMask0 | 8;
      tmp8_local4 = tmp15_input.nt(tmp0_desc, 4);
      tmp3_bitMask0 = tmp3_bitMask0 | 16;
      tmp9_local5 = tmp15_input.nt(tmp0_desc, 5);
      tmp3_bitMask0 = tmp3_bitMask0 | 32;
      tmp10_local6 = tmp15_input.vt(tmp0_desc, 6, Companion_getInstance_30().i19(), tmp10_local6);
      tmp3_bitMask0 = tmp3_bitMask0 | 64;
      tmp11_local7 = tmp15_input.tt(tmp0_desc, 7, $serializer_getInstance_19(), tmp11_local7);
      tmp3_bitMask0 = tmp3_bitMask0 | 128;
      tmp12_local8 = tmp15_input.kt(tmp0_desc, 8);
      tmp3_bitMask0 = tmp3_bitMask0 | 256;
      tmp13_local9 = tmp15_input.nt(tmp0_desc, 9);
      tmp3_bitMask0 = tmp3_bitMask0 | 512;
      tmp14_local10 = tmp15_input.tt(tmp0_desc, 10, new LinkedHashMapSerializer(IntSerializer_getInstance(), IntSerializer_getInstance()), tmp14_local10);
      tmp3_bitMask0 = tmp3_bitMask0 | 1024;
    } else
      while (tmp1_flag) {
        tmp2_index = tmp15_input.xt(tmp0_desc);
        switch (tmp2_index) {
          case -1:
            tmp1_flag = false;
            break;
          case 0:
            tmp4_local0 = tmp15_input.st(tmp0_desc, 0);
            tmp3_bitMask0 = tmp3_bitMask0 | 1;
            break;
          case 1:
            tmp5_local1 = tmp15_input.tt(tmp0_desc, 1, $serializer_getInstance_35(), tmp5_local1);
            tmp3_bitMask0 = tmp3_bitMask0 | 2;
            break;
          case 2:
            tmp6_local2 = tmp15_input.nt(tmp0_desc, 2);
            tmp3_bitMask0 = tmp3_bitMask0 | 4;
            break;
          case 3:
            tmp7_local3 = tmp15_input.nt(tmp0_desc, 3);
            tmp3_bitMask0 = tmp3_bitMask0 | 8;
            break;
          case 4:
            tmp8_local4 = tmp15_input.nt(tmp0_desc, 4);
            tmp3_bitMask0 = tmp3_bitMask0 | 16;
            break;
          case 5:
            tmp9_local5 = tmp15_input.nt(tmp0_desc, 5);
            tmp3_bitMask0 = tmp3_bitMask0 | 32;
            break;
          case 6:
            tmp10_local6 = tmp15_input.vt(tmp0_desc, 6, Companion_getInstance_30().i19(), tmp10_local6);
            tmp3_bitMask0 = tmp3_bitMask0 | 64;
            break;
          case 7:
            tmp11_local7 = tmp15_input.tt(tmp0_desc, 7, $serializer_getInstance_19(), tmp11_local7);
            tmp3_bitMask0 = tmp3_bitMask0 | 128;
            break;
          case 8:
            tmp12_local8 = tmp15_input.kt(tmp0_desc, 8);
            tmp3_bitMask0 = tmp3_bitMask0 | 256;
            break;
          case 9:
            tmp13_local9 = tmp15_input.nt(tmp0_desc, 9);
            tmp3_bitMask0 = tmp3_bitMask0 | 512;
            break;
          case 10:
            tmp14_local10 = tmp15_input.tt(tmp0_desc, 10, new LinkedHashMapSerializer(IntSerializer_getInstance(), IntSerializer_getInstance()), tmp14_local10);
            tmp3_bitMask0 = tmp3_bitMask0 | 1024;
            break;
          default:
            throw UnknownFieldException_init_$Create$(tmp2_index);
        }
      }
    tmp15_input.jt(tmp0_desc);
    return SpecialArea_init_$Create$(tmp3_bitMask0, tmp4_local0, tmp5_local1, tmp6_local2, tmp7_local3, tmp8_local4, tmp9_local5, tmp10_local6, tmp11_local7, tmp12_local8, tmp13_local9, tmp14_local10, null);
  };
  $serializer_34.prototype.u1r = function (encoder, value) {
    var tmp0_desc = this.t1r_1;
    var tmp1_output = encoder.it(tmp0_desc);
    tmp1_output.vu(tmp0_desc, 0, value.v1r_1);
    tmp1_output.wu(tmp0_desc, 1, $serializer_getInstance_35(), value.w1r_1);
    tmp1_output.qu(tmp0_desc, 2, value.x1r_1);
    tmp1_output.qu(tmp0_desc, 3, value.y1r_1);
    tmp1_output.qu(tmp0_desc, 4, value.z1r_1);
    tmp1_output.qu(tmp0_desc, 5, value.a1s_1);
    if (tmp1_output.cv(tmp0_desc, 6) ? true : !(value.b1s_1 == null)) {
      tmp1_output.yu(tmp0_desc, 6, Companion_getInstance_30().i19(), value.b1s_1);
    }
    if (tmp1_output.cv(tmp0_desc, 7) ? true : !value.c1s_1.equals(ChangeZOrder_NO_CHANGE_getInstance())) {
      tmp1_output.wu(tmp0_desc, 7, $serializer_getInstance_19(), value.c1s_1);
    }
    if (tmp1_output.cv(tmp0_desc, 8) ? true : !(value.d1s_1 === true)) {
      tmp1_output.nu(tmp0_desc, 8, value.d1s_1);
    }
    if (tmp1_output.cv(tmp0_desc, 9) ? true : !(value.e1s_1 === 0)) {
      tmp1_output.qu(tmp0_desc, 9, value.e1s_1);
    }
    var tmp;
    if (tmp1_output.cv(tmp0_desc, 10)) {
      tmp = true;
    } else {
      var tmp_0 = value.f1s_1;
      var tmp$ret$0;
      // Inline function 'kotlin.collections.mutableMapOf' call
      tmp$ret$0 = LinkedHashMap_init_$Create$();
      tmp = !equals(tmp_0, tmp$ret$0);
    }
    if (tmp) {
      tmp1_output.wu(tmp0_desc, 10, new LinkedHashMapSerializer(IntSerializer_getInstance(), IntSerializer_getInstance()), value.f1s_1);
    }
    tmp1_output.jt(tmp0_desc);
  };
  $serializer_34.prototype.cq = function (encoder, value) {
    return this.u1r(encoder, value instanceof SpecialArea ? value : THROW_CCE());
  };
  $serializer_34.$metadata$ = objectMeta('$serializer', [GeneratedSerializer]);
  var $serializer_instance_34;
  function $serializer_getInstance_34() {
    if ($serializer_instance_34 == null)
      new $serializer_34();
    return $serializer_instance_34;
  }
  function SpecialArea_init_$Init$(seen1, name, areaType, x, y, width, height, snap, changeZOrder, warnUsingTint, pieceCount, pieceCountByOwner, serializationConstructorMarker, $this) {
    if (!(63 === (63 & seen1))) {
      throwMissingFieldException(seen1, 63, $serializer_getInstance_34().t1r_1);
    }
    $this.v1r_1 = name;
    $this.w1r_1 = areaType;
    $this.x1r_1 = x;
    $this.y1r_1 = y;
    $this.z1r_1 = width;
    $this.a1s_1 = height;
    if (0 === (seen1 & 64))
      $this.b1s_1 = null;
    else
      $this.b1s_1 = snap;
    if (0 === (seen1 & 128))
      $this.c1s_1 = ChangeZOrder_NO_CHANGE_getInstance();
    else
      $this.c1s_1 = changeZOrder;
    if (0 === (seen1 & 256))
      $this.d1s_1 = true;
    else
      $this.d1s_1 = warnUsingTint;
    if (0 === (seen1 & 512))
      $this.e1s_1 = 0;
    else
      $this.e1s_1 = pieceCount;
    if (0 === (seen1 & 1024)) {
      var tmp = $this;
      var tmp$ret$0;
      // Inline function 'kotlin.collections.mutableMapOf' call
      tmp$ret$0 = LinkedHashMap_init_$Create$();
      tmp.f1s_1 = tmp$ret$0;
    } else
      $this.f1s_1 = pieceCountByOwner;
    return $this;
  }
  function SpecialArea_init_$Create$(seen1, name, areaType, x, y, width, height, snap, changeZOrder, warnUsingTint, pieceCount, pieceCountByOwner, serializationConstructorMarker) {
    return SpecialArea_init_$Init$(seen1, name, areaType, x, y, width, height, snap, changeZOrder, warnUsingTint, pieceCount, pieceCountByOwner, serializationConstructorMarker, Object.create(SpecialArea.prototype));
  }
  function SpecialArea() {
  }
  SpecialArea.prototype.d1n = function () {
    return this.x1r_1;
  };
  SpecialArea.prototype.e1n = function () {
    return this.y1r_1;
  };
  SpecialArea.prototype.g1s = function () {
    return this.c1s_1;
  };
  SpecialArea.prototype.h1s = function (x, y) {
    return ((x >= this.x1r_1 ? y >= this.y1r_1 : false) ? x < (this.x1r_1 + this.z1r_1 | 0) : false) ? y < (this.y1r_1 + this.a1s_1 | 0) : false;
  };
  SpecialArea.prototype.toString = function () {
    return 'SpecialArea(name=' + this.v1r_1 + ', areaType=' + this.w1r_1 + ', x=' + this.x1r_1 + ', y=' + this.y1r_1 + ', width=' + this.z1r_1 + ', height=' + this.a1s_1 + ', snap=' + this.b1s_1 + ', changeZOrder=' + this.c1s_1 + ', warnUsingTint=' + this.d1s_1 + ')';
  };
  SpecialArea.prototype.hashCode = function () {
    var result = getStringHashCode(this.v1r_1);
    result = imul(result, 31) + this.w1r_1.hashCode() | 0;
    result = imul(result, 31) + this.x1r_1 | 0;
    result = imul(result, 31) + this.y1r_1 | 0;
    result = imul(result, 31) + this.z1r_1 | 0;
    result = imul(result, 31) + this.a1s_1 | 0;
    result = imul(result, 31) + (this.b1s_1 == null ? 0 : hashCode(this.b1s_1)) | 0;
    result = imul(result, 31) + this.c1s_1.hashCode() | 0;
    result = imul(result, 31) + (this.d1s_1 | 0) | 0;
    return result;
  };
  SpecialArea.prototype.equals = function (other) {
    if (this === other)
      return true;
    if (!(other instanceof SpecialArea))
      return false;
    var tmp0_other_with_cast = other instanceof SpecialArea ? other : THROW_CCE();
    if (!(this.v1r_1 === tmp0_other_with_cast.v1r_1))
      return false;
    if (!this.w1r_1.equals(tmp0_other_with_cast.w1r_1))
      return false;
    if (!(this.x1r_1 === tmp0_other_with_cast.x1r_1))
      return false;
    if (!(this.y1r_1 === tmp0_other_with_cast.y1r_1))
      return false;
    if (!(this.z1r_1 === tmp0_other_with_cast.z1r_1))
      return false;
    if (!(this.a1s_1 === tmp0_other_with_cast.a1s_1))
      return false;
    if (!equals(this.b1s_1, tmp0_other_with_cast.b1s_1))
      return false;
    if (!this.c1s_1.equals(tmp0_other_with_cast.c1s_1))
      return false;
    if (!(this.d1s_1 === tmp0_other_with_cast.d1s_1))
      return false;
    return true;
  };
  SpecialArea.$metadata$ = classMeta('SpecialArea', undefined, undefined, {0: $serializer_getInstance_34});
  function AreaType$Companion$$cachedSerializer$delegate$_anonymous__7qc6b3() {
    return $serializer_getInstance_35();
  }
  var AreaType_PRIVATE_instance;
  var AreaType_PUBLIC_instance;
  function Companion_32() {
    Companion_instance_32 = this;
    var tmp = this;
    var tmp_0 = LazyThreadSafetyMode_PUBLICATION_getInstance();
    tmp.i1s_1 = lazy(tmp_0, AreaType$Companion$$cachedSerializer$delegate$_anonymous__7qc6b3);
  }
  Companion_32.prototype.i19 = function () {
    return this.i1s_1.l1();
  };
  Companion_32.prototype.f11 = function (typeParamsSerializers) {
    return this.i19();
  };
  Companion_32.$metadata$ = objectMeta('Companion', [SerializerFactory]);
  var Companion_instance_32;
  function Companion_getInstance_33() {
    AreaType_initEntries();
    if (Companion_instance_32 == null)
      new Companion_32();
    return Companion_instance_32;
  }
  function $serializer_35() {
    $serializer_instance_35 = this;
    var tmp0_serialDesc = new EnumDescriptor('uk.co.nickthecoder.gamescupboard.common.AreaType', 2);
    tmp0_serialDesc.g10('PRIVATE', false);
    tmp0_serialDesc.g10('PUBLIC', false);
    this.j1s_1 = tmp0_serialDesc;
  }
  $serializer_35.prototype.bq = function () {
    return this.j1s_1;
  };
  $serializer_35.prototype.x10 = function () {
    var tmp$ret$2;
    // Inline function 'kotlin.arrayOf' call
    var tmp$ret$1;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$0;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$0 = [];
    tmp$ret$1 = tmp$ret$0;
    tmp$ret$2 = tmp$ret$1;
    return tmp$ret$2;
  };
  $serializer_35.prototype.dq = function (decoder) {
    return values_0()[decoder.et(this.j1s_1)];
  };
  $serializer_35.prototype.k1s = function (encoder, value) {
    encoder.lu(this.j1s_1, value.q2_1);
  };
  $serializer_35.prototype.cq = function (encoder, value) {
    return this.k1s(encoder, value instanceof AreaType ? value : THROW_CCE());
  };
  $serializer_35.$metadata$ = objectMeta('$serializer', [GeneratedSerializer]);
  var $serializer_instance_35;
  function $serializer_getInstance_35() {
    AreaType_initEntries();
    if ($serializer_instance_35 == null)
      new $serializer_35();
    return $serializer_instance_35;
  }
  function values_0() {
    return [AreaType_PRIVATE_getInstance(), AreaType_PUBLIC_getInstance()];
  }
  var AreaType_entriesInitialized;
  function AreaType_initEntries() {
    if (AreaType_entriesInitialized)
      return Unit_getInstance();
    AreaType_entriesInitialized = true;
    AreaType_PRIVATE_instance = new AreaType('PRIVATE', 0);
    AreaType_PUBLIC_instance = new AreaType('PUBLIC', 1);
    Companion_getInstance_33();
  }
  function AreaType(name, ordinal) {
    Enum.call(this, name, ordinal);
  }
  AreaType.$metadata$ = classMeta('AreaType', undefined, undefined, {0: $serializer_getInstance_35}, undefined, Enum.prototype);
  function isPrivate(_this__u8e3s4) {
    var tmp0_safe_receiver = _this__u8e3s4;
    return equals(tmp0_safe_receiver == null ? null : tmp0_safe_receiver.w1r_1, AreaType_PRIVATE_getInstance());
  }
  function isPublicOrNull(_this__u8e3s4) {
    return _this__u8e3s4 == null ? true : _this__u8e3s4.w1r_1.equals(AreaType_PUBLIC_getInstance());
  }
  function isPublic(_this__u8e3s4) {
    var tmp0_safe_receiver = _this__u8e3s4;
    return equals(tmp0_safe_receiver == null ? null : tmp0_safe_receiver.w1r_1, AreaType_PUBLIC_getInstance());
  }
  function AreaType_PRIVATE_getInstance() {
    AreaType_initEntries();
    return AreaType_PRIVATE_instance;
  }
  function AreaType_PUBLIC_getInstance() {
    AreaType_initEntries();
    return AreaType_PUBLIC_instance;
  }
  function $serializer_36() {
    $serializer_instance_36 = this;
    var tmp0_serialDesc = new PluginGeneratedSerialDescriptor('uk.co.nickthecoder.gamescupboard.common.SpecialPoint', this, 7);
    tmp0_serialDesc.g10('name', false);
    tmp0_serialDesc.g10('x', false);
    tmp0_serialDesc.g10('y', false);
    tmp0_serialDesc.g10('isFaceUp', true);
    tmp0_serialDesc.g10('changeZOrder', true);
    tmp0_serialDesc.g10('snapDistance', true);
    tmp0_serialDesc.g10('pieceCount', true);
    this.l1s_1 = tmp0_serialDesc;
  }
  $serializer_36.prototype.bq = function () {
    return this.l1s_1;
  };
  $serializer_36.prototype.x10 = function () {
    var tmp$ret$2;
    // Inline function 'kotlin.arrayOf' call
    var tmp0_arrayOf = [StringSerializer_getInstance(), IntSerializer_getInstance(), IntSerializer_getInstance(), BooleanSerializer_getInstance(), $serializer_getInstance_19(), IntSerializer_getInstance(), IntSerializer_getInstance()];
    var tmp$ret$1;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$0;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$0 = tmp0_arrayOf;
    tmp$ret$1 = tmp$ret$0;
    tmp$ret$2 = tmp$ret$1;
    return tmp$ret$2;
  };
  $serializer_36.prototype.dq = function (decoder) {
    var tmp0_desc = this.l1s_1;
    var tmp1_flag = true;
    var tmp2_index = 0;
    var tmp3_bitMask0 = 0;
    var tmp4_local0 = null;
    var tmp5_local1 = 0;
    var tmp6_local2 = 0;
    var tmp7_local3 = false;
    var tmp8_local4 = null;
    var tmp9_local5 = 0;
    var tmp10_local6 = 0;
    var tmp11_input = decoder.it(tmp0_desc);
    if (tmp11_input.wt()) {
      tmp4_local0 = tmp11_input.st(tmp0_desc, 0);
      tmp3_bitMask0 = tmp3_bitMask0 | 1;
      tmp5_local1 = tmp11_input.nt(tmp0_desc, 1);
      tmp3_bitMask0 = tmp3_bitMask0 | 2;
      tmp6_local2 = tmp11_input.nt(tmp0_desc, 2);
      tmp3_bitMask0 = tmp3_bitMask0 | 4;
      tmp7_local3 = tmp11_input.kt(tmp0_desc, 3);
      tmp3_bitMask0 = tmp3_bitMask0 | 8;
      tmp8_local4 = tmp11_input.tt(tmp0_desc, 4, $serializer_getInstance_19(), tmp8_local4);
      tmp3_bitMask0 = tmp3_bitMask0 | 16;
      tmp9_local5 = tmp11_input.nt(tmp0_desc, 5);
      tmp3_bitMask0 = tmp3_bitMask0 | 32;
      tmp10_local6 = tmp11_input.nt(tmp0_desc, 6);
      tmp3_bitMask0 = tmp3_bitMask0 | 64;
    } else
      while (tmp1_flag) {
        tmp2_index = tmp11_input.xt(tmp0_desc);
        switch (tmp2_index) {
          case -1:
            tmp1_flag = false;
            break;
          case 0:
            tmp4_local0 = tmp11_input.st(tmp0_desc, 0);
            tmp3_bitMask0 = tmp3_bitMask0 | 1;
            break;
          case 1:
            tmp5_local1 = tmp11_input.nt(tmp0_desc, 1);
            tmp3_bitMask0 = tmp3_bitMask0 | 2;
            break;
          case 2:
            tmp6_local2 = tmp11_input.nt(tmp0_desc, 2);
            tmp3_bitMask0 = tmp3_bitMask0 | 4;
            break;
          case 3:
            tmp7_local3 = tmp11_input.kt(tmp0_desc, 3);
            tmp3_bitMask0 = tmp3_bitMask0 | 8;
            break;
          case 4:
            tmp8_local4 = tmp11_input.tt(tmp0_desc, 4, $serializer_getInstance_19(), tmp8_local4);
            tmp3_bitMask0 = tmp3_bitMask0 | 16;
            break;
          case 5:
            tmp9_local5 = tmp11_input.nt(tmp0_desc, 5);
            tmp3_bitMask0 = tmp3_bitMask0 | 32;
            break;
          case 6:
            tmp10_local6 = tmp11_input.nt(tmp0_desc, 6);
            tmp3_bitMask0 = tmp3_bitMask0 | 64;
            break;
          default:
            throw UnknownFieldException_init_$Create$(tmp2_index);
        }
      }
    tmp11_input.jt(tmp0_desc);
    return SpecialPoint_init_$Create$(tmp3_bitMask0, tmp4_local0, tmp5_local1, tmp6_local2, tmp7_local3, tmp8_local4, tmp9_local5, tmp10_local6, null);
  };
  $serializer_36.prototype.m1s = function (encoder, value) {
    var tmp0_desc = this.l1s_1;
    var tmp1_output = encoder.it(tmp0_desc);
    tmp1_output.vu(tmp0_desc, 0, value.n1s_1);
    tmp1_output.qu(tmp0_desc, 1, value.o1s_1);
    tmp1_output.qu(tmp0_desc, 2, value.p1s_1);
    if (tmp1_output.cv(tmp0_desc, 3) ? true : !(value.q1s_1 === false)) {
      tmp1_output.nu(tmp0_desc, 3, value.q1s_1);
    }
    if (tmp1_output.cv(tmp0_desc, 4) ? true : !value.r1s_1.equals(ChangeZOrder_NO_CHANGE_getInstance())) {
      tmp1_output.wu(tmp0_desc, 4, $serializer_getInstance_19(), value.r1s_1);
    }
    if (tmp1_output.cv(tmp0_desc, 5) ? true : !(value.s1s_1 === 30)) {
      tmp1_output.qu(tmp0_desc, 5, value.s1s_1);
    }
    if (tmp1_output.cv(tmp0_desc, 6) ? true : !(value.t1s_1 === 0)) {
      tmp1_output.qu(tmp0_desc, 6, value.t1s_1);
    }
    tmp1_output.jt(tmp0_desc);
  };
  $serializer_36.prototype.cq = function (encoder, value) {
    return this.m1s(encoder, value instanceof SpecialPoint ? value : THROW_CCE());
  };
  $serializer_36.$metadata$ = objectMeta('$serializer', [GeneratedSerializer]);
  var $serializer_instance_36;
  function $serializer_getInstance_36() {
    if ($serializer_instance_36 == null)
      new $serializer_36();
    return $serializer_instance_36;
  }
  function SpecialPoint_init_$Init$(seen1, name, x, y, isFaceUp, changeZOrder, snapDistance, pieceCount, serializationConstructorMarker, $this) {
    if (!(7 === (7 & seen1))) {
      throwMissingFieldException(seen1, 7, $serializer_getInstance_36().l1s_1);
    }
    $this.n1s_1 = name;
    $this.o1s_1 = x;
    $this.p1s_1 = y;
    if (0 === (seen1 & 8))
      $this.q1s_1 = false;
    else
      $this.q1s_1 = isFaceUp;
    if (0 === (seen1 & 16))
      $this.r1s_1 = ChangeZOrder_NO_CHANGE_getInstance();
    else
      $this.r1s_1 = changeZOrder;
    if (0 === (seen1 & 32))
      $this.s1s_1 = 30;
    else
      $this.s1s_1 = snapDistance;
    if (0 === (seen1 & 64))
      $this.t1s_1 = 0;
    else
      $this.t1s_1 = pieceCount;
    return $this;
  }
  function SpecialPoint_init_$Create$(seen1, name, x, y, isFaceUp, changeZOrder, snapDistance, pieceCount, serializationConstructorMarker) {
    return SpecialPoint_init_$Init$(seen1, name, x, y, isFaceUp, changeZOrder, snapDistance, pieceCount, serializationConstructorMarker, Object.create(SpecialPoint.prototype));
  }
  function SpecialPoint() {
  }
  SpecialPoint.prototype.d1n = function () {
    return this.o1s_1;
  };
  SpecialPoint.prototype.e1n = function () {
    return this.p1s_1;
  };
  SpecialPoint.prototype.u1s = function () {
    return this.q1s_1;
  };
  SpecialPoint.prototype.g1s = function () {
    return this.r1s_1;
  };
  SpecialPoint.prototype.v1s = function (_set____db54di) {
    this.t1s_1 = _set____db54di;
  };
  SpecialPoint.prototype.w1s = function () {
    return this.t1s_1;
  };
  SpecialPoint.prototype.h1s = function (x, y) {
    return ((x >= (this.o1s_1 - this.s1s_1 | 0) ? y >= (this.p1s_1 - this.s1s_1 | 0) : false) ? x < (this.o1s_1 + this.s1s_1 | 0) : false) ? y < (this.p1s_1 + this.s1s_1 | 0) : false;
  };
  SpecialPoint.prototype.toString = function () {
    return 'SpecialPoint(name=' + this.n1s_1 + ', x=' + this.o1s_1 + ', y=' + this.p1s_1 + ', isFaceUp=' + this.q1s_1 + ', changeZOrder=' + this.r1s_1 + ', snapDistance=' + this.s1s_1 + ')';
  };
  SpecialPoint.prototype.hashCode = function () {
    var result = getStringHashCode(this.n1s_1);
    result = imul(result, 31) + this.o1s_1 | 0;
    result = imul(result, 31) + this.p1s_1 | 0;
    result = imul(result, 31) + (this.q1s_1 | 0) | 0;
    result = imul(result, 31) + this.r1s_1.hashCode() | 0;
    result = imul(result, 31) + this.s1s_1 | 0;
    return result;
  };
  SpecialPoint.prototype.equals = function (other) {
    if (this === other)
      return true;
    if (!(other instanceof SpecialPoint))
      return false;
    var tmp0_other_with_cast = other instanceof SpecialPoint ? other : THROW_CCE();
    if (!(this.n1s_1 === tmp0_other_with_cast.n1s_1))
      return false;
    if (!(this.o1s_1 === tmp0_other_with_cast.o1s_1))
      return false;
    if (!(this.p1s_1 === tmp0_other_with_cast.p1s_1))
      return false;
    if (!(this.q1s_1 === tmp0_other_with_cast.q1s_1))
      return false;
    if (!this.r1s_1.equals(tmp0_other_with_cast.r1s_1))
      return false;
    if (!(this.s1s_1 === tmp0_other_with_cast.s1s_1))
      return false;
    return true;
  };
  SpecialPoint.$metadata$ = classMeta('SpecialPoint', undefined, undefined, {0: $serializer_getInstance_36});
  function Companion_33() {
    Companion_instance_33 = this;
  }
  Companion_33.$metadata$ = objectMeta('Companion');
  var Companion_instance_33;
  function Companion_getInstance_34() {
    if (Companion_instance_33 == null)
      new Companion_33();
    return Companion_instance_33;
  }
  function $serializer_37() {
    $serializer_instance_37 = this;
    var tmp0_serialDesc = new PluginGeneratedSerialDescriptor('uk.co.nickthecoder.gamescupboard.common.TextObject', this, 11);
    tmp0_serialDesc.g10('id', false);
    tmp0_serialDesc.g10('x', false);
    tmp0_serialDesc.g10('y', false);
    tmp0_serialDesc.g10('name', true);
    tmp0_serialDesc.g10('draggable', true);
    tmp0_serialDesc.g10('text', false);
    tmp0_serialDesc.g10('style', true);
    tmp0_serialDesc.g10('privateToPlayerId', true);
    tmp0_serialDesc.g10('draggingByPlayerId', true);
    tmp0_serialDesc.g10('cyclicText', true);
    tmp0_serialDesc.g10('cyclicIndex', true);
    this.x1s_1 = tmp0_serialDesc;
  }
  $serializer_37.prototype.bq = function () {
    return this.x1s_1;
  };
  $serializer_37.prototype.x10 = function () {
    var tmp$ret$2;
    // Inline function 'kotlin.arrayOf' call
    var tmp0_arrayOf = [IntSerializer_getInstance(), IntSerializer_getInstance(), IntSerializer_getInstance(), StringSerializer_getInstance(), BooleanSerializer_getInstance(), StringSerializer_getInstance(), new EnumSerializer('uk.co.nickthecoder.gamescupboard.common.TextStyle', values_1()), get_nullable(IntSerializer_getInstance()), get_nullable(IntSerializer_getInstance()), new ArrayListSerializer(StringSerializer_getInstance()), IntSerializer_getInstance()];
    var tmp$ret$1;
    // Inline function 'kotlin.js.unsafeCast' call
    var tmp$ret$0;
    // Inline function 'kotlin.js.asDynamic' call
    tmp$ret$0 = tmp0_arrayOf;
    tmp$ret$1 = tmp$ret$0;
    tmp$ret$2 = tmp$ret$1;
    return tmp$ret$2;
  };
  $serializer_37.prototype.dq = function (decoder) {
    var tmp0_desc = this.x1s_1;
    var tmp1_flag = true;
    var tmp2_index = 0;
    var tmp3_bitMask0 = 0;
    var tmp4_local0 = 0;
    var tmp5_local1 = 0;
    var tmp6_local2 = 0;
    var tmp7_local3 = null;
    var tmp8_local4 = false;
    var tmp9_local5 = null;
    var tmp10_local6 = null;
    var tmp11_local7 = null;
    var tmp12_local8 = null;
    var tmp13_local9 = null;
    var tmp14_local10 = 0;
    var tmp15_input = decoder.it(tmp0_desc);
    if (tmp15_input.wt()) {
      tmp4_local0 = tmp15_input.nt(tmp0_desc, 0);
      tmp3_bitMask0 = tmp3_bitMask0 | 1;
      tmp5_local1 = tmp15_input.nt(tmp0_desc, 1);
      tmp3_bitMask0 = tmp3_bitMask0 | 2;
      tmp6_local2 = tmp15_input.nt(tmp0_desc, 2);
      tmp3_bitMask0 = tmp3_bitMask0 | 4;
      tmp7_local3 = tmp15_input.st(tmp0_desc, 3);
      tmp3_bitMask0 = tmp3_bitMask0 | 8;
      tmp8_local4 = tmp15_input.kt(tmp0_desc, 4);
      tmp3_bitMask0 = tmp3_bitMask0 | 16;
      tmp9_local5 = tmp15_input.st(tmp0_desc, 5);
      tmp3_bitMask0 = tmp3_bitMask0 | 32;
      tmp10_local6 = tmp15_input.tt(tmp0_desc, 6, new EnumSerializer('uk.co.nickthecoder.gamescupboard.common.TextStyle', values_1()), tmp10_local6);
      tmp3_bitMask0 = tmp3_bitMask0 | 64;
      tmp11_local7 = tmp15_input.vt(tmp0_desc, 7, IntSerializer_getInstance(), tmp11_local7);
      tmp3_bitMask0 = tmp3_bitMask0 | 128;
      tmp12_local8 = tmp15_input.vt(tmp0_desc, 8, IntSerializer_getInstance(), tmp12_local8);
      tmp3_bitMask0 = tmp3_bitMask0 | 256;
      tmp13_local9 = tmp15_input.tt(tmp0_desc, 9, new ArrayListSerializer(StringSerializer_getInstance()), tmp13_local9);
      tmp3_bitMask0 = tmp3_bitMask0 | 512;
      tmp14_local10 = tmp15_input.nt(tmp0_desc, 10);
      tmp3_bitMask0 = tmp3_bitMask0 | 1024;
    } else
      while (tmp1_flag) {
        tmp2_index = tmp15_input.xt(tmp0_desc);
        switch (tmp2_index) {
          case -1:
            tmp1_flag = false;
            break;
          case 0:
            tmp4_local0 = tmp15_input.nt(tmp0_desc, 0);
            tmp3_bitMask0 = tmp3_bitMask0 | 1;
            break;
          case 1:
            tmp5_local1 = tmp15_input.nt(tmp0_desc, 1);
            tmp3_bitMask0 = tmp3_bitMask0 | 2;
            break;
          case 2:
            tmp6_local2 = tmp15_input.nt(tmp0_desc, 2);
            tmp3_bitMask0 = tmp3_bitMask0 | 4;
            break;
          case 3:
            tmp7_local3 = tmp15_input.st(tmp0_desc, 3);
            tmp3_bitMask0 = tmp3_bitMask0 | 8;
            break;
          case 4:
            tmp8_local4 = tmp15_input.kt(tmp0_desc, 4);
            tmp3_bitMask0 = tmp3_bitMask0 | 16;
            break;
          case 5:
            tmp9_local5 = tmp15_input.st(tmp0_desc, 5);
            tmp3_bitMask0 = tmp3_bitMask0 | 32;
            break;
          case 6:
            tmp10_local6 = tmp15_input.tt(tmp0_desc, 6, new EnumSerializer('uk.co.nickthecoder.gamescupboard.common.TextStyle', values_1()), tmp10_local6);
            tmp3_bitMask0 = tmp3_bitMask0 | 64;
            break;
          case 7:
            tmp11_local7 = tmp15_input.vt(tmp0_desc, 7, IntSerializer_getInstance(), tmp11_local7);
            tmp3_bitMask0 = tmp3_bitMask0 | 128;
            break;
          case 8:
            tmp12_local8 = tmp15_input.vt(tmp0_desc, 8, IntSerializer_getInstance(), tmp12_local8);
            tmp3_bitMask0 = tmp3_bitMask0 | 256;
            break;
          case 9:
            tmp13_local9 = tmp15_input.tt(tmp0_desc, 9, new ArrayListSerializer(StringSerializer_getInstance()), tmp13_local9);
            tmp3_bitMask0 = tmp3_bitMask0 | 512;
            break;
          case 10:
            tmp14_local10 = tmp15_input.nt(tmp0_desc, 10);
            tmp3_bitMask0 = tmp3_bitMask0 | 1024;
            break;
          default:
            throw UnknownFieldException_init_$Create$(tmp2_index);
        }
      }
    tmp15_input.jt(tmp0_desc);
    return TextObject_init_$Create$(tmp3_bitMask0, tmp4_local0, tmp5_local1, tmp6_local2, tmp7_local3, tmp8_local4, tmp9_local5, tmp10_local6, tmp11_local7, tmp12_local8, tmp13_local9, tmp14_local10, null);
  };
  $serializer_37.prototype.y1s = function (encoder, value) {
    var tmp0_desc = this.x1s_1;
    var tmp1_output = encoder.it(tmp0_desc);
    tmp1_output.qu(tmp0_desc, 0, value.z1s_1);
    tmp1_output.qu(tmp0_desc, 1, value.a1t_1);
    tmp1_output.qu(tmp0_desc, 2, value.b1t_1);
    if (tmp1_output.cv(tmp0_desc, 3) ? true : !(value.c1t_1 === '')) {
      tmp1_output.vu(tmp0_desc, 3, value.c1t_1);
    }
    if (tmp1_output.cv(tmp0_desc, 4) ? true : !(value.d1t_1 === true)) {
      tmp1_output.nu(tmp0_desc, 4, value.d1t_1);
    }
    tmp1_output.vu(tmp0_desc, 5, value.e1t_1);
    if (tmp1_output.cv(tmp0_desc, 6) ? true : !value.f1t_1.equals(TextStyle_PLAIN_getInstance())) {
      tmp1_output.wu(tmp0_desc, 6, new EnumSerializer('uk.co.nickthecoder.gamescupboard.common.TextStyle', values_1()), value.f1t_1);
    }
    if (tmp1_output.cv(tmp0_desc, 7) ? true : !(value.g1t_1 == null)) {
      tmp1_output.yu(tmp0_desc, 7, IntSerializer_getInstance(), value.g1t_1);
    }
    if (tmp1_output.cv(tmp0_desc, 8) ? true : !(value.h1t_1 == null)) {
      tmp1_output.yu(tmp0_desc, 8, IntSerializer_getInstance(), value.h1t_1);
    }
    var tmp;
    if (tmp1_output.cv(tmp0_desc, 9)) {
      tmp = true;
    } else {
      var tmp$ret$0;
      // Inline function 'kotlin.collections.mutableListOf' call
      tmp$ret$0 = ArrayList_init_$Create$();
      tmp = !equals(value.i1t_1, tmp$ret$0);
    }
    if (tmp) {
      tmp1_output.wu(tmp0_desc, 9, new ArrayListSerializer(StringSerializer_getInstance()), value.i1t_1);
    }
    if (tmp1_output.cv(tmp0_desc, 10) ? true : !(value.j1t_1 === 0)) {
      tmp1_output.qu(tmp0_desc, 10, value.j1t_1);
    }
    tmp1_output.jt(tmp0_desc);
  };
  $serializer_37.prototype.cq = function (encoder, value) {
    return this.y1s(encoder, value instanceof TextObject ? value : THROW_CCE());
  };
  $serializer_37.$metadata$ = objectMeta('$serializer', [GeneratedSerializer]);
  var $serializer_instance_37;
  function $serializer_getInstance_37() {
    if ($serializer_instance_37 == null)
      new $serializer_37();
    return $serializer_instance_37;
  }
  function TextObject_init_$Init$(seen1, id, x, y, name, draggable, text, style, privateToPlayerId, draggingByPlayerId, cyclicText, cyclicIndex, serializationConstructorMarker, $this) {
    if (!(39 === (39 & seen1))) {
      throwMissingFieldException(seen1, 39, $serializer_getInstance_37().x1s_1);
    }
    $this.z1s_1 = id;
    $this.a1t_1 = x;
    $this.b1t_1 = y;
    if (0 === (seen1 & 8))
      $this.c1t_1 = '';
    else
      $this.c1t_1 = name;
    if (0 === (seen1 & 16))
      $this.d1t_1 = true;
    else
      $this.d1t_1 = draggable;
    $this.e1t_1 = text;
    if (0 === (seen1 & 64))
      $this.f1t_1 = TextStyle_PLAIN_getInstance();
    else
      $this.f1t_1 = style;
    if (0 === (seen1 & 128))
      $this.g1t_1 = null;
    else
      $this.g1t_1 = privateToPlayerId;
    if (0 === (seen1 & 256))
      $this.h1t_1 = null;
    else
      $this.h1t_1 = draggingByPlayerId;
    if (0 === (seen1 & 512)) {
      var tmp = $this;
      var tmp$ret$0;
      // Inline function 'kotlin.collections.mutableListOf' call
      tmp$ret$0 = ArrayList_init_$Create$();
      tmp.i1t_1 = tmp$ret$0;
    } else
      $this.i1t_1 = cyclicText;
    if (0 === (seen1 & 1024))
      $this.j1t_1 = 0;
    else
      $this.j1t_1 = cyclicIndex;
    return $this;
  }
  function TextObject_init_$Create$(seen1, id, x, y, name, draggable, text, style, privateToPlayerId, draggingByPlayerId, cyclicText, cyclicIndex, serializationConstructorMarker) {
    return TextObject_init_$Init$(seen1, id, x, y, name, draggable, text, style, privateToPlayerId, draggingByPlayerId, cyclicText, cyclicIndex, serializationConstructorMarker, Object.create(TextObject.prototype));
  }
  function TextObject(id, x, y, name, draggable, text, style) {
    Companion_getInstance_34();
    this.z1s_1 = id;
    this.a1t_1 = x;
    this.b1t_1 = y;
    this.c1t_1 = name;
    this.d1t_1 = draggable;
    this.e1t_1 = text;
    this.f1t_1 = style;
    this.g1t_1 = null;
    this.h1t_1 = null;
    var tmp = this;
    var tmp$ret$0;
    // Inline function 'kotlin.collections.mutableListOf' call
    tmp$ret$0 = ArrayList_init_$Create$();
    tmp.i1t_1 = tmp$ret$0;
    this.j1t_1 = 0;
  }
  TextObject.prototype.c1n = function () {
    return this.z1s_1;
  };
  TextObject.prototype.d1n = function () {
    return this.a1t_1;
  };
  TextObject.prototype.e1n = function () {
    return this.b1t_1;
  };
  TextObject.prototype.t2 = function () {
    return this.c1t_1;
  };
  TextObject.prototype.f1n = function () {
    return this.d1t_1;
  };
  TextObject.prototype.g1l = function () {
    return this.g1t_1;
  };
  TextObject.prototype.toString = function () {
    return 'Text#' + this.z1s_1 + " : '" + this.e1t_1 + "' @ " + this.a1t_1 + ',' + this.b1t_1;
  };
  TextObject.$metadata$ = classMeta('TextObject', [GameObject], undefined, {0: $serializer_getInstance_37});
  var TextStyle_PLAIN_instance;
  var TextStyle_WHITE_BOX_instance;
  var TextStyle_LIGHT_BOX_instance;
  function values_1() {
    return [TextStyle_PLAIN_getInstance(), TextStyle_WHITE_BOX_getInstance(), TextStyle_LIGHT_BOX_getInstance()];
  }
  var TextStyle_entriesInitialized;
  function TextStyle_initEntries() {
    if (TextStyle_entriesInitialized)
      return Unit_getInstance();
    TextStyle_entriesInitialized = true;
    TextStyle_PLAIN_instance = new TextStyle('PLAIN', 0);
    TextStyle_WHITE_BOX_instance = new TextStyle('WHITE_BOX', 1);
    TextStyle_LIGHT_BOX_instance = new TextStyle('LIGHT_BOX', 2);
  }
  function TextStyle(name, ordinal) {
    Enum.call(this, name, ordinal);
  }
  TextStyle.$metadata$ = classMeta('TextStyle', undefined, undefined, undefined, undefined, Enum.prototype);
  function TextStyle_PLAIN_getInstance() {
    TextStyle_initEntries();
    return TextStyle_PLAIN_instance;
  }
  function TextStyle_WHITE_BOX_getInstance() {
    TextStyle_initEntries();
    return TextStyle_WHITE_BOX_instance;
  }
  function TextStyle_LIGHT_BOX_getInstance() {
    TextStyle_initEntries();
    return TextStyle_LIGHT_BOX_instance;
  }
  function get_dockHeight() {
    return dockHeight;
  }
  var dockHeight;
  function get_playingAreaWidth() {
    return playingAreaWidth;
  }
  var playingAreaWidth;
  function get_dockWidth() {
    return dockWidth;
  }
  var dockWidth;
  function get_toolbarHeight() {
    return toolbarHeight;
  }
  var toolbarHeight;
  function get_playingAreaHeight() {
    return playingAreaHeight;
  }
  var playingAreaHeight;
  function get_stageWidth() {
    return stageWidth;
  }
  var stageWidth;
  function get_stageHeight() {
    return stageHeight;
  }
  var stageHeight;
  //region block: post-declaration
  $serializer.prototype.y10 = typeParametersSerializers;
  $serializer_0.prototype.y10 = typeParametersSerializers;
  $serializer_1.prototype.y10 = typeParametersSerializers;
  $serializer_2.prototype.y10 = typeParametersSerializers;
  $serializer_3.prototype.y10 = typeParametersSerializers;
  $serializer_4.prototype.y10 = typeParametersSerializers;
  $serializer_5.prototype.y10 = typeParametersSerializers;
  $serializer_6.prototype.y10 = typeParametersSerializers;
  $serializer_7.prototype.y10 = typeParametersSerializers;
  $serializer_8.prototype.y10 = typeParametersSerializers;
  $serializer_9.prototype.y10 = typeParametersSerializers;
  $serializer_10.prototype.y10 = typeParametersSerializers;
  $serializer_11.prototype.y10 = typeParametersSerializers;
  $serializer_12.prototype.y10 = typeParametersSerializers;
  $serializer_13.prototype.y10 = typeParametersSerializers;
  $serializer_14.prototype.y10 = typeParametersSerializers;
  $serializer_15.prototype.y10 = typeParametersSerializers;
  $serializer_16.prototype.y10 = typeParametersSerializers;
  $serializer_17.prototype.y10 = typeParametersSerializers;
  $serializer_18.prototype.y10 = typeParametersSerializers;
  $serializer_19.prototype.y10 = typeParametersSerializers;
  $serializer_20.prototype.y10 = typeParametersSerializers;
  $serializer_21.prototype.y10 = typeParametersSerializers;
  $serializer_22.prototype.y10 = typeParametersSerializers;
  $serializer_23.prototype.y10 = typeParametersSerializers;
  $serializer_24.prototype.y10 = typeParametersSerializers;
  $serializer_25.prototype.y10 = typeParametersSerializers;
  $serializer_26.prototype.y10 = typeParametersSerializers;
  $serializer_27.prototype.y10 = typeParametersSerializers;
  $serializer_28.prototype.y10 = typeParametersSerializers;
  $serializer_29.prototype.y10 = typeParametersSerializers;
  $serializer_30.prototype.y10 = typeParametersSerializers;
  $serializer_31.prototype.y10 = typeParametersSerializers;
  $serializer_32.prototype.y10 = typeParametersSerializers;
  $serializer_33.prototype.y10 = typeParametersSerializers;
  $serializer_34.prototype.y10 = typeParametersSerializers;
  $serializer_35.prototype.y10 = typeParametersSerializers;
  $serializer_36.prototype.y10 = typeParametersSerializers;
  $serializer_37.prototype.y10 = typeParametersSerializers;
  //endregion
  //region block: init
  dockHeight = 600;
  playingAreaWidth = 800;
  dockWidth = 30.0;
  toolbarHeight = 46;
  playingAreaHeight = 600;
  stageWidth = 830;
  stageHeight = 646;
  //endregion
  //region block: exports
  _.$_$ = _.$_$ || {};
  _.$_$.a = AddBin;
  _.$_$.b = AddObjects;
  _.$_$.c = ChangeImage;
  _.$_$.d = ChangePrivacy;
  _.$_$.e = ChatMessage;
  _.$_$.f = CommandError;
  _.$_$.g = CommandOk;
  _.$_$.h = CycleText;
  _.$_$.i = DragObject;
  _.$_$.j = FaceUpOrDown;
  _.$_$.k = GameInfo;
  _.$_$.l = HighlightMouse;
  _.$_$.m = MoveObject;
  _.$_$.n = NotInvited;
  _.$_$.o = Packet;
  _.$_$.p = PlayerJoined;
  _.$_$.q = PlayerLeft;
  _.$_$.r = RemoveObjects;
  _.$_$.s = RenamePlayer;
  _.$_$.t = ResetGame;
  _.$_$.u = RunCommand;
  _.$_$.v = ScaleObject;
  _.$_$.w = ScoreSheetData;
  _.$_$.x = ChangeZOrder_NO_CHANGE_getInstance;
  _.$_$.y = AreaType_PRIVATE_getInstance;
  _.$_$.z = TextStyle_PLAIN_getInstance;
  _.$_$.a1 = DragObject_init_$Create$;
  _.$_$.b1 = MoveObject_init_$Create$;
  _.$_$.c1 = Packet_init_$Create$;
  _.$_$.d1 = RestoreFromBin_getInstance;
  _.$_$.e1 = Avatar;
  _.$_$.f1 = FlippableImageObject;
  _.$_$.g1 = GridImageObject;
  _.$_$.h1 = ImageObject;
  _.$_$.i1 = MultipleGridImageObject;
  _.$_$.j1 = PieceAtPointCounter;
  _.$_$.k1 = RegenGameObject;
  _.$_$.l1 = TextObject;
  _.$_$.m1 = get_dockHeight;
  _.$_$.n1 = get_dockWidth;
  _.$_$.o1 = isPrivate;
  _.$_$.p1 = isPublicOrNull;
  _.$_$.q1 = isPublic;
  _.$_$.r1 = get_playingAreaHeight;
  _.$_$.s1 = get_playingAreaWidth;
  _.$_$.t1 = get_stageHeight;
  _.$_$.u1 = get_stageWidth;
  _.$_$.v1 = get_toolbarHeight;
  //endregion
  return _;
}));

//# sourceMappingURL=GamesCupboard-gamescupboard-common-js-ir.js.map